[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [leafnode-list] Re: Broken overview reply sometimes? (Leafnode 2)



Michael Mauch schrieb am 2003-07-07:

> Matthias Andree schrieb:
> 
> > Michael Mauch schrieb am 2003-07-06:
> > 
> > > sometimes when I enter a group which seems to have articles, these
> > > articles do not appear when I enter that group. The debug log says:
> > 
> > What newsreader do you use? 
> 
> tin 1.5.19 release 20030616 (it's alpha/beta, so perhaps it might be
> tin's fault?).

It looks as though leafnode's LISTGROUPS command were hosed and didn't
work unless you sent GROUP first.

Does the patch I am enclosing fix the problem? No promises that it
applies to leafnode versions older than 20030621a, this the -b version
and 20030706b should be fine.

leafnode-1.9.42 seems to be unaffected by this bug.

Index: nntpd.c
===================================================================
RCS file: /var/CVS/leafnode-2/nntpd.c,v
retrieving revision 1.117
diff -u -r1.117 nntpd.c
--- nntpd.c	21 Jun 2003 10:25:40 -0000	1.117
+++ nntpd.c	7 Jul 2003 01:00:01 -0000
@@ -777,6 +777,29 @@
     return 0;
 }
 
+static struct newsgroup *
+opengroup(struct newsgroup *g)
+{
+    freexover();
+    xovergroup = NULL;
+    /* If this group is interesting and requested, update the time stamp
+       so it remains interesting even without articles */
+    if (is_interesting(g->name))
+	markinterest(g->name);
+    if (chdirgroup(g->name, FALSE)) {
+	maybegetxover(g);
+	if (g->count == 0) {
+	    if (getwatermarks(&g->first, &g->last, &g->count)) {
+		nntpprintf("503 Cannot get group article count.");
+		return NULL;
+	    }
+	}
+    }
+    return g;
+}
+
+
+
 /* change to group - note no checks on group name */
 static /*@null@*/ /*@dependent@*/ struct newsgroup *
 dogroup(struct newsgroup *group, const char *arg, unsigned long *artno)
@@ -787,21 +810,7 @@
     rereadactive();
     g = findgroup(arg, active, -1);
     if (g) {
-	freexover();
-	xovergroup = NULL;
-	/* If this group is interesting and requested, update the time stamp
-	   so it remains interesting even without articles */
-	if (is_interesting(g->name))
-	    markinterest(g->name);
-	if (chdirgroup(g->name, FALSE)) {
-	    maybegetxover(g);
-	    if (g->count == 0) {
-		if (getwatermarks(&g->first, &g->last, &g->count)) {
-		    nntpprintf("503 Cannot get group article count.");
-		    return NULL;
-		}
-	    }
-	}
+	opengroup(g);
 
 	if (is_pseudogroup(g->name))
 	    count = 1;
@@ -2077,6 +2086,7 @@
 	    nntpprintf("411 No such group: %s", arg);
 	    return group;
 	} else {
+	    opengroup(g);
 	    *artno = g->first;
 	}
     } else if (group) {

-- 
leafnode-list@xxxxxxxxxxxxxxxxxxxxxxxxxxxx -- mailing list for leafnode
To unsubscribe, send mail with "unsubscribe" in the subject to the list