To Do list for Net::DNS ======================= * Work on Resolver.pm: - Show more info about the query when $res->debug(1). - Work on a way to use the same socket for background queries. - Document $res->errorstring messages. - Work on efficiency of IO::Socket handling. - Implement AAONLY queries. Here's a code fragment to set the nameserver list to the hosts returned in the authority section: $res->nameservers(map { $_->nsdname } grep { $_->type eq "NS" } $ans->authority); - IPv6 Support (Coming Soon!) * Get rid of .* in AAAA.pm; write more tests for AAAA.pm. * Allow Net::DNS::RR::LOC->latlon to set the lat/lon. * Work on the dynamic update code. Some things remaining to do: - Append the default zone in update packets if the name doesn't contain a dot. Does this break people's code? - Do sanity checking on user-created RR objects. Update the BUGS section in RR.pm when this is complete. - Allow yxrrset & friends to take an RR object as an argument. - Do more sanity checking on yxrrset & friends. - Add an "update" method to the resolver class to send the update packet to the zone's authoritative nameservers (see also RFC 2136, Section 4). * Improve the error handling and reporting. Some things to do: - Make sure empty RDATA sections don't cause the program to print the obnoxious "no such method" warning. - Check for invalid RR types or classes. - Set a more descriptive error if a zone transfer fails, especially if the nameserver isn't authoritative (current code returns NOERROR if the nameserver answered but wasn't authoritative). - Consider documenting the use of "eval" to avoid a fatal error in certain places. Idea by Dirk Herr-Hoyman. * Restructure some of the code. Some things to look at: - Net::DNS::Resolver->send (needs to be broken into smaller pieces). * Add more RR types. Currently unimplemented are: MD RFC 1035 (obsolete) MF RFC 1035 (obsolete) WKS RFC 1035 NSAP_PTR RFC 1348 (deprecated) GPOS RFC 1712 (withdrawn) ATMA ??? * Check the EID, NIMLOC, and NULL RR handling. * Add test cases for NULL, EID, and NIMLOC to private zone data. NULL isn't allowed in master files per RFC 1035, Section 3.3.10; BIND 8.1-REL doesn't appear to implement EID or NIMLOC (perhaps via dynamic update?). * Write some front-end methods to do CNAME translations automagically. * Work on demo scripts: - Add a copyright notice to the demo scripts. - Work on demo/axfr: * Add a print statement to tell whether the zone info comes from a file or a zone transfer. - Work on demo/srv (not included with the distribution). Remaining to do: * Documentation. Don't forget to add a reference to it in the other demo scripts. * Consider adding "sub srv" to DNS.pm. * Add to the Changes file. - Work on nsupdate.pl (not included with the distribution) and add it to the demo directory. Remaining to do: * Write documentation. * Make it more robust. - Work on dns.cgi (not included with the distribution) and add it to the demo directory. Some things remaining to do: * Check for HTTP_USER_AGENT in zone transfers. * Add a way to change resolver settings. Edit do_axfr and remove the query for the zone's nameservers when this is finished. * Add support for dynamic updates. * Do more study of resolver behavior as recommended in RFCs 1035, 1123, and 2136. * Add some text- and html-specific sections to the manual pages. * Check code for conformance to the guidelines listed in The Perl 5 Module List. Check style & efficiency according to the perlstyle manpage and the Camel. * Consider providing an .xs file for those who wish to link against libresolv or libbind instead of using the entirely-Perl resolver. * Consider rewriting the packet-parsing code in C for increased speed, or possibly going back to using Dave Shield's resparse library. --- $Id: TODO,v 2.102 2004/01/08 05:47:01 ctriv Exp $