These are known issues that will not be fixed in Deadwood 3.0: * When a query with multiple inflights is finished, the entry is cached multiple times (behavior used by "truncated" hack) * "Truncated hack": When a truncated entry is received, it is cached and then immediately flushed from the cache. It was done this way so I wouldn't have to rewrite any TCP code to correctly handle truncated packets. * dw_put_u8 does not correctly work with 1-byte-long strings * While CNAME referrals are cached as CNAME referrals, these cached entries are not used to speed up the resolution of records where we only have a CNAME referral. For example, if we got the A record for kabah.example.com, which pointed to www.example.org, then ask for the AAAA record for kabah.example.com, we will use the example.com name servers for kabah.example.com before following the CNAME to www.example.org. * Multiple inflight query merging is not used for child queries (queries used to resolve glueless NS records or incomplete CNAME referrals). The code for doing this has been written but disabled because it would increase the number of potential bugs. * When resolving glueless NS records, an A (IPv4) query is sent out. This can be changed by setting "ns_glueless_type" to the numeric value for ANY, 255 (or even AAAA, 28), but ns_glueless_type has not been tested. Indeed, I have not had the resources to test Deadwood on an IPv6 network. * Deadwood does not support DNSSEC. I would need a 6-month paid sabbatical to have the time to implement it (6 months may not be enough, but it would be a good start) * Deadwood, on systems with a 32-bit time_t, will no longer have usable timestamps starting around Thu Jun 13 04:21:53 2143 GMT (it will be a minute or two sooner because of leap seconds). Note that timestamps in the cache can go past this cutoff (Deadwood uses 64-bit timestamps); the only issue is that Deadwood will think we're in 2007 after 2143 and all entries in the cache will not expire, since their expiration date will be far in the future. This can be resolved by either having a system with a 64-bit time_t (considering that even the $75 netbook Intel Atom N450/N455 has full 64-bit support here in 2010, and that 64-bit Linux has a 64-bit time_t, this should not be an unreasonable request) or by changing the value of DW_MINTIME in DwSys.h and the routine set_time() in DwSys.c. * Deadwood is optimized to be used for web surfing, not as a DNS server for a mail hub. In particular, the IPs for MX records are removed from Deadwood's replies and Deadwood needs to perform additional DNS queries to get the IPs corresponding to MX records, and Deadwood's testing is more geared for web surfing (almost 100% A record lookup) and not mail delivery (extensive MX record lookup). This in mind, MX queries are, by default, rejected by Deadwood.