i've pushed my modest dns fixes to sources in contrib quanstro/ndb. this code has been running on my machine for a while, and i'm just experimenting with it in more production environments.
in addition to the changes outlined before, i added some code to terminate queries when no namserver is available. this prevents an O(n²) lookup, where n is the number of name servers. (example ndb/dnsdebug www.tridentaudio.co.uk; get some popcorn.) i have specificly not addressed the database corruption problems. these would seem at least partially to be a result of rrcopy() being a shallow copy, and not doing anything about refcounting subordinate or ->next records. (thus more locking would seem not the answer.) nor have i addressed the bio problem. making the buffer in <ndb.h> 8k does sidestep the issue. i hope this is useful, at least as a stopgap! - erik