- Implement a reference counter to ensure that newly entered records are not
  purged immediately (really needed?)
- Perhaps do a two-step form of recursive query: first query those servers we
  have got cached, then (if unsuccessful) look the others up and query again.
  The impact of this optimisation may not be very big, because all sane servers
  give A records for NS records if possible.
- Test for compatibility on other Unix-like Systems other than the BSDs and
  Linux; rewrite the functions in netdev.c and icmp.c for those OSs if
  necessary. Also try to get compatibility for other compilers than gcc.
- Write an install rule for the Slackware start-up script.
- Update the FAQ.
- Implement DNSSEC support. Since version 1.2.9, pdnsd is able to cache the RR
  types necessary for DNSSEC, but the resolver is not yet security aware.
- Implement a lookup table (hash table) for queries in progress. This would
  enable a thread that is resolving a query that is already being handled by
  another thread to wait for that other thread to finish and copy its result
  rather than independently query remote servers. It is very common for
  resolvers to resend UDP queries if they don't get a reply within a timeout
  period and if the answer is not yet cached, this will result in multiple
  threads duplicating each others work in the current implementation.