groupbaseexpiry and ovmethod_expiregroup

Heath Kehoe hakehoe at norand.com
Mon Jan 24 21:23:22 UTC 2000


I'm looking at recent changes to buffindexed.c and ov3.c, in the
_expiregroup functions, where in the loop:

while(search(...)) {
    if ((ah = SMretrieve(token, RETR_STAT)) == NULL)
	continue;
    if (innconf->groupbaseexpiry && OVgroupbasedexpire(token, group, data, len, arrived, expires))
	continue;
    addrec(...);
}

the first if() was changed to:

    if (SMprobe(SELFEXPIRE, &token, NULL) && (ah = SMretrieve(token, RETR_STAT)) == NULL)
	continue;

With this change, if you have groupbaseexpiry off and are using
non-self-expiring storage, overview data will never get removed, because
neither of the if()s will ever evaluate to true for non-self-expiring
tokens.

It seems to me that the first if() should look like this instead:

    if ( (!innconf->groupbaseexpiry || SMprobe(SELFEXPIRE, &token, NULL))
	    && (ah = SMretrieve(token, RETR_STAT)) == NULL)
	continue;

Am I right, or did I miss something?

-h




More information about the inn-workers mailing list