TODO list for rbldnsd, in no particular order.
* implement TCP mode (in separate process, to reduce number of syscalls)
* implement AXFR query - stupid idea but AXFR is widely used.
* control socket for reloads (so that reload may be triggered by
writing something to a socket). This may be done in a separate
process which will listen for requests on control socket and
send signal to it's child. This will also give us an ability
to monitor and restart failed child (ala supervise)
* add `fnmatch' (or dnpat) type, to handle shell-style wildcards
(no regexps please).
* It would be nice if queries to name-based datasets will be
resolved in one lookup instead of several (by query dn labels)
as now. How?
* two last TODO entries may be done by implementing sort of lex-like
thing (DFA/NFA), in runtime. Probably too much for such simple (?)
program, unless someone will write good multi-regex-matching library
(many applications will benefit from it). I have no expirience
with all those DFA/NFA things - at all.
* document plugins/extensions internals (-x option). For now, the
only "reference" is a stub plugin in hooks.c.
* implement 'noip' "dataset", to match queries made for IP-based blocklist
(which expects an IP number as a query) which are NOT of IP numbers, ie,
to detect wrong usage (as RHSBL, or just stupid) of a DNSBL. Too many
systems uses DNSBLs in various incorrect ways (improperly written software,
querying for rDNS name in an IP-based list, wrong setup like using some
additional suffixes and so on), generating extra unnecessary traffic and
never noticying their queries does not help.