$Id: TODO,v 1.11 2003/05/29 07:04:47 mjt Exp $

TODO list for rbldnsd, in no particular order.

 * review logging.  It should be possible to specify which packets
   (qtype, rcode, bad etc) to log in addition to filtering by client's IP.
   Probably not needed as logfile may be FIFO now.

 * review all names to be consistent (partially done)

 * maybe multi-children environment.  Seems to be unnecessary.

 * implement TCP mode (in separate process, to reduce number of syscalls)
   probably never.

 * implement AXFR query - stupid idea but AXFR is widely used.
   probably never.

 * 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)

 * on reloads, fork a child with current in-memory zones, to
   serve requests while reloading?  With "supervised" variant,
   that may be two different childs: fork new child for new
   data, wait when it will be ready and kill old child.  Requires
   twice more memory.

 * allow 127.0.0.1/255.255.255.0 form?  Seems to be redundrand
   (CIDR exists), and it's not obvious how to handle masks like
   255.0.255.0 (what a mess)

 * 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.
