[rbldnsd] $TIMESTAMP - is per dataset expiry possible?
Michael Tokarev
mjt at tls.msk.ru
Wed Apr 26 23:16:14 MSD 2006
Paul McClure wrote:
>>From a recent thread:
>
> "The $TIMESTAMP directive works per-datafile, not per-dataset or per-zone."
This is not exactly correct. See below.
> Would it be possible to make this work per dataset, or at least the option to
> do so?
The thing is. If *any* part of a *zone* is expired/invalid/unavailable,
the *whole* zone becomes unavailable. Yes I can think of situations where
partially loaded zone is useful (if it only contains "blacklisted" entries),
but I'd better not to risk (with additional confusing options etc) to reject
some valid email (as primary role for rbldnsd is to be used together with a
mailserver) instead of letting some spam in.
Right now rbldnsd does not know what's the role of the data it is missing,
whenever it's used as a black- or white-list, whenever it has some "exclusions"
etc. In case of data expiration, it knows at least whenever there was some
exclusions, but still does not know whenever it's a white- or black-list or
something entirely different. May be it is possible to specify all this, but
it becomes way too clumsy and non-deterministic, I'm afraid. BTW, the whole
this 'timestamp' options already is too clumsy because of possible local clock
differences.
So I prefer to keep the logic simple: any part of data is unavailable, for
whatever reason => so is all the zones where this data is used, and rbldnsd
starts returning SERVFAIL to all queries to those zones. Simple and clear,
and with a reason.
And referring to the above "not entirely correct" statement - as you see,
expire time is really "per zone", with smallest timestamp choosen, not per
dataset or datafile or...
> I want to leverage off of rbldnsd for a greylisting method in qmail/rblsmtpd.
> I won't provide details, but my problem is solved if I can use $TIMESTAMP per
> dataset within the same datafile (using "combined" dataset type, obviously).
Ahh.. this is about "SUBdataset", not "normal dataset". Quite strange setup
I'd say, -- looks like you're trying to solve the wrong problem using the wrong
methods... ;) To be fair, this combination (subdataset expiration) is something
I didn't think of, and at a first glance it looks like it might be a useful feature...
But I'd not do it still. You can expire a "subzone" by pulling it off the
combined dataset. Depending on your usage scenario ofcourse... ;)
But either way, maybe better to look at modifying the client software (for
rbldnsd, rblsmtpd is a client, right? :) to do all the calculations internally,
based on the data returned by rbldnsd? Or even drop rbldnsd entirely and use
some eg mysql backend to store the data... I dunno...
/mjt
More information about the rbldnsd
mailing list