[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