Revision history for Net::DNS ============================= *** 0.10 12 Jun 1997 Added an index and some more information to README. Documented the rdlength method and added the rdata method to the Net::DNS::RR base class. Added a check for packet size to Net::DNS::Resolver->send. Net::DNS currently supports only UDP queries, which have a packet size limit of 512 octets (RFC 1035, Section 2.3.4). Added lines to Net::DNS::Resolver->send to ignore any packets whose query response code isn't set to 1, or whose query ID doesn't match the one we sent in our request packet. Added the "string" method to the Resolver, Packet, Header, and Question classes. Added code to Net::DNS::Question->new to check if the caller reversed the type and class arguments. Inspired by a question from Robert Yoder. Added support for dynamic updates (RFC 2136); see README and the Net::DNS::Update manual page for more information and an example. Here are some of the changes: * Added the push method to the Net::DNS::Packet class. * Wrote the Net::DNS::Update module as a front-end to Net::DNS::Packet for creating dynamic update packets. * Changed Net::DNS::RR->new to allow the programmer to create RR objects. * Added test cases for creating RRs and pushing them into the various packet sections. * Changed Net::DNS::RR->AUTOLOAD to allow the programmer to change the value of an RR's fields. * Wrote Net::DNS::Packet->dn_comp to compress domain names (opposite of dn_expand). * Changed Net::DNS::Question->data to require a packet object and an offset as arguments. We need this information to handle compressed domain names. * Added the rr_rdata method to RR subclasses to provide a binary representation of the RRs RDATA section. Added support for the following RR types: AAAA EID MB NIMLOC NSAP NULL PX Checked for the existence of $ENV{"HOME"} in Resolver.pm -- previous behavior caused a "Use of uninitialized value" error to appear in HTTP server log files if Net::DNS was being used in a CGI program and HOME wasn't defined. *** 0.09 29 May 1997 Net::DNS is now being developed under Perl 5.004. I'll try to keep it compatible with earlier versions of Perl, at least for a while. Got rid of an eval in RR.pm and replaced unpack with substr in several places. After all other changes in this version, a simple benchmark of a zone transfer showed the new code using about 25% less CPU time than the old code. Mileage will vary based on the program, of course, and programmers probably shouldn't expect to see much improvement. Debugging is now printed during packet parsing instead of after the entire packet has been parsed. This can be useful for examining corrupt packets. Added support for NAPTR RRs. Thanks to Ryan Moats for contributing the necessary code. Wrote demo/axfr to demonstrate how to save a zone transfer to a disk file and read it back later. Requires the Storable module. BUG FIX: If no "nameserver" lines are found in the resolver config files, queries should go to the nameserver running on the local host. Previous behavior left the nameserver list empty, causing all queries to fail with the error "no nameservers". Problem noted by Dr Eberhard W Lisse. BUG FIX: Added checks for missing data in packets - this should eliminate the "@ outside of string" errors that can happen if the packet is corrupt. In these cases, queries will return undef and an explanation of the error (e.g., "answer section incomplete") will be present in $res->errorstring. Problem noted by Martin Lichtin and Stephen Hebditch. *** 0.08 13 May 1997 Added support for LOC RRs. Thanks to Christopher Davis for his help and contributing some of the code. *** 0.07 19 Apr 1997 Added an empty DESTROY method to Header.pm, Question.pm, Resolver.pm, and RR.pm. A couple of users have reported that Net::DNS dies because AUTOLOAD gets called for DESTROY methods but doesn't handle them. I haven't been able to reproduce this problem under Perl 5.003. Changed Net::DNS::Resolver->nameservers to accept unqualified hostnames. *** 0.06 2 Apr 1997 Fixed Net::DNS::Resolver->nameservers to accept CNAME RRs if the corresponding A RR is found in the answer section. This should eliminate some of the "address: no such method" errors that have been reported. Added the "string" method to Net::DNS::RR. Added a more descriptive error to Net::DNS::RR::AUTOLOAD. This error is printed if you call a method that doesn't exist for a particular RR type. *** 0.05 27 Mar 1997 Fixed Net::DNS::Resolver->nameservers to accept IP addresses. Was accepting only names. Fixed Net::DNS::Resolver->read_config() to ignore end-of-line comments when reading resolver config files. Also fixed to recognize multiple "nameserver" and "search" lines. Fixed ISDN.pm to handle a non-existent sa field (sets it to an empty string). demo/check_zone now sets $res->defnames to false, so the domain name given on the command line should be fully qualified. Started adding code for dynamic updates. Not yet finished. *** 0.04 13 Feb 1997 Added background queries. See the examples in the Net::DNS and Net::DNS::Resolver manpages. Added zone transfers and some error reporting to demo/perldig. Also added the ability to query a specific nameserver. Added a check to end zone transfers when we receive a second SOA RR (would block waiting for more input when doing zone transfers from certain nameservers). Also added some additional output if debugging is turned on. *** 0.03 8 Feb 1997 Added zone transfers. Wrote demo/check_zone. Minor corrections and additions to the documentation. *** 0.02 2 Feb 1997 Rewritten to be entirely Perl. No longer uses the system's resolver library or the resparse library. Net::Resolver needs some work on error reporting and needs to implement TCP queries. *** 0.01 26 Jan 1997 Initial release for testing. Still some bugs, particularly in memory management. --- Michael Fuhr $Id: Changes,v 1.9 1997/06/13 03:50:19 mfuhr Exp $