nnrp answer to listgroup of empty group
Russ Allbery
rra at stanford.edu
Mon Mar 20 02:31:17 UTC 2006
Jeffrey M Vinocur <jeff at litech.org> writes:
> That certainly strikes me like a bug.
> The relevant code in nnrpd/group.c is:
> if (!OVgroupstats(group, &ARTlow, &ARThigh, &count, NULL)) {
> Reply("%s %s\r\n", NOSUCHGROUP, group);
> free(group);
> return;
> }
> [...]
> if ((handle = OVopensearch(group, ARTlow, ARThigh)) != NULL) {
> if (count == 0)
> Reply("%d 0 0 0 %s\r\n", NNTP_GROUPOK_VAL, group);
> else
> Reply("%d %d %ld %ld %s\r\n", NNTP_GROUPOK_VAL, count,
> ARTlow, ARThigh, group);
> while (OVsearch(handle, &i, NULL, NULL, &token, NULL)) {
> [...]
> } else {
> Reply("%s %s\r\n", NOSUCHGROUP, group);
> }
> And I think we should pull the count==0 test outside of the surrounding
> if block. Except that makes it difficult to deal with a true error (not
> just empty group) returned from OVopensearch. Ho hum. I think I see
> how to rearrange it, but I don't seem to be able to compile INN at the
> moment so I can't test.
I've committed a patch to just skip the OVopensearch if count == 0. It
seems to work correctly in some quick testing. Please do feel free to
take a crack at a better solution, though, if one came to mind.
--
Russ Allbery (rra at stanford.edu) <http://www.eyrie.org/~eagle/>
Please send questions to the list rather than mailing me directly.
<http://www.eyrie.org/~eagle/faqs/questions.html> explains why.
More information about the inn-workers
mailing list