EVOLUTION-MANAGER
Edit File: Changelog
10/24/2011 - 2.1.3 released 10/17/2011 - Add a callback interface to ZoneTransferIn. (based on a patch from Nick Sayer <nsayer@silverspringnet.com>) 10/10/2011 - An exception could be thrown when attempting to look up data in the cache for type ANY when there were only previously cached NOERROR/NODATA responses for that name. (reported by Niel de Wet <nieldw@gmail.com>) 7/24/2011 - 2.1.2 released 6/9/2011 - TypeBitmap.toString() failed if no bits were set. (patch from Jeffrey Damick <Jeffrey.Damick@neustar.biz>) 5/24/2011 - TSIG.fromString() didn't handle base64-encoded secrets with / characters. (reported by Sten <stennordstrom@users.sourceforge.net>) 5/12/2011 - Support verifying truncated TSIG signatures, as specified in RFC 4635. 5/10/2011 - Refactor EDNS Option support to allow for custom type implementations, and add support for the Client Subnet option. (based on a patch from Ming Zhou <mizhou@bnivideo.com>) - Add support for the NSID EDNS option. 4/20/2011 - Add missing support for the HMAC-SHA224, HMA-SHA384, and HMAC-SHA384 TSIG algorithms. (patch from Thomas Corte <Thomas.Corte@knipp.de>) 3/9/2011 - Add support for using alternate JCA providers when generating DNSSEC signatures (patch from Jeffrey Damick <Jeffrey.Damick@neustar.biz>) 2/9/2011 - 2.1.1 released 2/3/2011 - Add the ability to set ndots on Lookup objects, and parse the ndots option from a resolv.conf file (patch from Oleg Tsvinev <Oleg.Tsvinev@Reardencommerce.com>). 2/3/2011 - The 'file' command in the 'update' program didn't work correctly. (reported by Olafur Gudmundsson <ogud@ogud.com>) 9/15/2010 - Change the Android name server detection mechanism to avoid false positives. (patch from Ulf Dittmer) 9/9/2010 - The IXFR code didn't do serial number arithmetic correctly, and would fail if the serial number wrapped. (patch from Alexis MacFarlane <Alexis.MacFarlane@usc-bt.com>) 9/7/2010 - 2.1.0 released 8/17/2010 - When rendering a message, if records from the additional section did not fit, the header counts were not properly updated. (patch from Klaus Malorny <Klaus.Malorny@knipp.de>) 7/22/2010 - Fix LOC record parsing to allow negative altitudes. (based on a patch from William Kocik <wkocik@verisign.com>) 7/21/2010 - The changes to TSIG verification in 2.0.6 didn't work correctly for stream verification; specifically, the state was only set on the first Message in the stream. (reported by William Kocik <wkocik@verisign.com>) 5/12/2010 - Add support for determining resolver configuration on Japanese Windows. (translation and original patch from Brett Wooldridge <brettw@users.sourceforge.net>) 5/6/2010 - Add support for building an OSGi bundle (patch from Markus Alexander Kuppe <lemmster@users.sourceforge.net>). 5/2/2010 - Rewrite DNSSEC support. 4/15/2010 - Fix a hang that could occur when using the dnsjava service provider on Windows (initial patch from <jy123@users.sourceforge.net>). 11/21/2009 - 2.0.8 released 11/10/2009 - Fix the conversion of NSEC/NSEC3 bitmaps into wire format. (Klaus Malorny <Klaus.Malorny@knipp.de>, also reported by Tom <808131@gmail.com>). 10/01/2009 - Properly initialize the Date objects used in RRSIG (and other) records, so that any unused fields are cleared. (Klaus Malorny <Klaus.Malorny@knipp.de>) 9/25/2009 - 2.0.7 released - Add support for detecting the configured nameservers on the Android platform. (patch from Arnt Gulbrandsen <arnt@gulbrandsen.priv.no>) 9/16/2009 - When determining the nameservers to use, if the sun.net.dns.ResolverConfiguration class returns an empty list, ignore it. (based on an anonymous patch). - Make the Name, Record (and all subclasses), RRset, and Zone classes implement Serializable. (based on a patch from Patrick <psp294@users.sourceforge.net>) 9/15/2009 - Add a constant for the REVOKE DNSKEY flag. (patch from Wolfgang Nagele <dreamguard@users.sourceforge.net>) - ReverseMap.fromAddress(String) should support both IPv4 and IPv6 addresses. (reported by Stephan Fuhrmann <stfu1und1@users.sourceforge.net>) 8/08/2009 - The escaping code for text strings should not escape semicolons. 6/23/2009 - DNSSEC signature validation incorrectly used the TTL of the records being verified, not the original TTL from the RRSIG record, which caused failures when verifying records returned by a caching server. (reported by Samuel Benz <samuel.benz@switch.ch>) 6/15/2009 - Change the ResolverConfig.refresh() method to only synchronize the assignment to currentConfig, not the code which determines the new configuration. 6/12/2009 - The TSIG verification routines (TSIG.verify, TSIG.StreamVerifier.verify() now update the Message object with the status of the verification in addition to returning the status. 6/03/2009 - The lists of servers and searchlist entries in ResolverConfig should not be static. (Isabelle Dalmasso <isa@8x8.com>) 5/28/2009 - The canonical form of an NSEC record was incorrectly computed - the next name should not have its case changed. (David Blacka <davidb@verisign.com>) - Add support for NSEC3, NSEC3PARAM, and DLV records. (based on a patch from David Blacka <davidb@verisign.com>) 9/17/2008 - Fix LOC record rounding. (reported by Klaus Malorny <Klaus.Malorny@knipp.de>) 8/22/2008 - Type 4 NXDOMAIN responses were incorrectly cached as referrals. (reported by Luis Silva <luisfilsilva@gmail.com>) 8/06/2008 - Randomize the UDP source ports for outgoing queries. (based on a patch from Derek Morr <derekmorr@psu.edu>) 4/25/2008 - Add support for the DHCID record. 4/18/2008 - The prior change to allow creating Zones from AXFR-style IXFR ZoneTransferIn responses didn't work. - Update the service provider to work with Java 1.6 and earlier versions. (patch from <thelian@users.sourceforge.net>) 2/19/2008 - The Zone.removeRecord() method threw an exception if there were no other records in the same RRset. (reported by Yoyo Chen <yoyochen@sinter.com.tw>) - Parsing and formatting LOC records should not depend on the current locale. (reported by Klaus Malorny <Klaus.Malorny@knipp.de>) 1/31/2008 - When converting messages to wire format, don't include name compression pointers greater than 2^14 - 1. (reported by Carole Gill <cgill@silverspringnet.com>) 1/24/2008 - 2.0.6 released 1/22/2008 - Fix an off-by-2 error that could cause an infinite loop when parsing a Name with a self-referential compression pointer. (reported by Carole Gill <cgill@silverspringnet.com>) - Raise an exception when an invalid label type is seen in a wire format name. The previous behavior would incorrectly parse invalid names, and could lead to infinite loops. (reported by Carole Gill <cgill@silverspringnet.com>) 8/28/2007 - 2.0.5 released - Add the ZoneTransferIn.setLocalAddress() method. (based on a patch from <mpugge@users.sourceforge.net>) - Build jar file with -source and -target options to provide compatibility with older Java releases (that is, revert to pre-2.0.4 behavior). (reported by Stefano Bagnara <apache@bago.org>) 8/26/2007 - 2.0.4 released - Update SPI code to work with java 6. - Fix an argument parsing bug in the dig program, where failure to specify both type and class would cause the specified server to be ignored. (reported by Stefano Bagnara <bago75@users.sourceforge.net>) 6/12/2007 - The SPFRecord constructors incorrectly created records whose internal type field was TXT, not SPF. (reported by Stefano Bagnara <bago75@users.sourceforge.net>) 3/7/2007 - Message.getQuestion() incorrectly handled the case where the question section was represented by an empty list. (reported by Karl Auer <kauer@biplane.com.au>) 2/15/2007 - Properly obey timeouts in TCPClient code when the message is read in multiple chunks. (based on a patch from Francesco Vivoli <fvivoli@ripe.net>) 12/4/2006 - A cache lookup for a record would incorrectly return a delegation when records for both the queried type and NS were present. (reported by yosukear <y_arimoto_acare@users.sourceforge.net>) 11/28/2006 - 2.0.3 released 11/27/2006 - The Zone.fromXFR() method should be able to create zones from AXFR-style IXFR responses. (Bill Kuker <bkuker@users.sourceforge.net>) 10/25/2006 - Make the routines that convert between the DNS and standard Java representations of DSA signatures public. (suggested by Klaus Malorny <Klaus.Malorny@knipp.de>) 8/3/2006 - Add a TSIG constructor that takes an algorithm as a String. - Add support to TSIG.fromString() for specifying an algorithm. 7/30/2006 - When converting a PublicKey to a DNS record, allow the algorithm to be specified, as RSA keys can be either of the RSA-SHA1 or RSA-MD5 algorithms (based on a patch from Eric <ginipginob@users.sourceforge.net>) - When converting a PublicKey to a DNS record, allow the type (KEY or DNSKEY) to be specified. - Update the DNSSECVerifier code to use DNSKEY records, not KEY records. 7/30/2006 - Added support for parsing the output of ipconfig in French . (Frederic Bazin <fbazin@users sourceforge.net>) 7/30/2006 - If both "search" and "domain" lines are present in a resolv.conf file, the domain line should be ignored. 7/26/2006 - Add support for the SPF record type. 7/21/2006 - DNSSEC.digestRRset could digest records in the wrong order. (reported by David Blacka <davidb@verisignlabs.com> and Mahendra Jain <Majain@verisign.com>) 6/26/2006 - 2.0.2 released. 6/22/2006 - Add support for the IPSECKEY record type. 5/18/2006 - The result of a Lookup that involves a CNAME should include the queried name as one of the aliases, not the CNAME target. (Jon Lachelt <jon.lachelt@hp.com>) 2/13/2006 - Loading zones containing RRsets with multiple records didn't work. (reported by Olafur Gudmundsson" <ogud@ogud.com>) 1/24/2006 - AXFR requests could leak file descriptors if the connection failed. (Can Bican <can@bican.net>) 11/30/2005 - Add a Resolver.setTimeout(int secs, int msecs) method. (requested by Dmitry Isakbayev) <isakdim@users.sourceforge.net>) 11/30/2005 - 2.0.1 released. 11/11/2005 - The InetAddresses returned by Address.getByName() should have their hostname copied from the input parameter. (reported by Praveen Tammana <praveen.public@gmail.com>) 11/7/2005 - Update remaining DNSSEC code to be compliant with the current spec. 11/6/2005 - Add a Resolver.setEDNS(int level, int payloadSize, int flags, List options) method, to allow a Resolver to automatically set the DO flag, as well as future EDNS features. (requested by Rick Wesson <wessorh@ar.com>) 10/25/2005 - The Master(InputStream in, Name origin) constructor should not always fail. - Correctly handle the case where reading a Master from an InputStream would throw a NullPointerException if a $INCLUDE file wasn't found. (reported by Lars Petrus <Lars.Petrus@nominum.com>) 8/22/2005 - Add Address.getByAddress(String) and Address.getByAddress(String, family). 7/21/2005 - Zone.findExactMatch() would throw a NullPointerException if the name didn't exist. (reported by Hans Zandbelt <Hans.Zandbelt@telin.nl>) 7/19/2005 - Add support for binding clients to local addresses when using a SimpleResolver. Also add the -b option to the dig program to test this. (based on a patch by Bruno Dillenseger) 7/5/2005 - Add support to ResolverConfig for using the undocumented sun.net.dns.ResolverConfiguration class to determine the list of nameservers and search path; make this the default when it works (Yannick Meudal <yannick@meudal.net>). 6/16/2005 - The inbound zone transfer code failed to treat port 0 as the default as it claimed to. (Bill Kuker <wckits@rit.edu>) 6/15/2005 - When doing a zone transfer with a SimpleResolver object, the timeout was not properly obeyed. (reported by Peter Bryant <peter@pingability.com>) 6/5/2005 - Explictly register record type implementations instead of using reflection; this should prevent hard to diagnose problems resulting from partial compilation. 5/31/2005 - 2.0.0 released. 5/16/2005 - Fix the code to deal with TTL 0 data in the Cache. 5/15/2005 - Add unit tests for many classes. The unit tests are located in the tests directory, which mirrors the org.xbill.DNS hierarchy. (Matt Rutherford <rutherfo@cs.colorado.edu>) 5/7/2005 - Fix several problems with empty names. (Matt Rutherford <rutherfo@cs.colorado.edu>) 4/23/2005 - As per RFC 2181, the maximum allowed TTL value is 0x7FFFFFFF. Change TTL.parseTTL() to reflect this by silently clamping larger 32 bit values. 4/22/2005 - Attempting to get the name/type/class/ttl of an empty RRset throws an exception. 4/21/2005 - Remove RRset.getSecurity()/.setSecurity(). 4/16/2005 - Change the internal representation of empty records (that is, records in the question section of a message or meta-records used in dynamic update). - Minor cleanups to the Mnemonic class. (Matt Rutherford <rutherfo@cs.colorado.edu>) 4/3/2005 - Change the Cache from being periodically cleaned to being size-bounded. (based on a patch from several years ago from Joseph Shraibman <jks@iname.com>). - Remove the FindServer class. - Added a Name Service Provider interface (dns,dnsjava). (based on code from Paul Cowan <pwc21@yahoo.com>) 4/1/2005 - Use java.nio classes for sockets internally, which provide a number of improvements, most visibly improved timeouts. - Remove deprecated dns class. - Simplify TSIG initialization; remove functions that should have never existed. - Remove Cache.setVerifier() and Cache.setSecurePolicy(). There should be a way of enabling DNSSEC, but the existing code doesn't work. - Change the Zone constructors/factory methods to be consistent. 3/29/2005 - Use java.net.InetAddress for IPv6 addresses rather than a custom class. 3/20/2005 - Fix several bugs in ResolverConfig on Windows. (Brian McBarron <bmcbarron@users.sourceforge.net>) 3/15/2005 - Clean up the synchronization in the RRset class (reported by Daniel Jensen <daniel.jensen@savvis.net>) 3/8/2005 - Support the BIND misfeature of loading zones with no explicit TTL by using the SOA minimum field. 3/7/2005 - 1.6.6 released. 3/6/2005 - $GENERATE statements should obey the start field. 3/1/2005 - Add support for HMAC-SHA1 and HMAC-SHA256 TSIG algorithms. (suggested by Olafur Gudmundsson <ogud@ogud.com>) 2/8/2005 - Add infrastructure for parsing the output of ipconfig on non-English version of windows, and add support for German and Polish. (based on a patch by Piotr Kochanski) 2/7/2005 - Add Options.refresh() (based on a patch from Th Kuhne) - Add the ResolverConfig class, which is largely based on the FindServer class, except that it's not all static methods. Add the ability to refresh the current ResolverConfig, and make FindServer use ResolverConfig. - Add Lookup.refreshDefault (based on a patch from Th Kuhne) - Truncated messages aren't guaranteed to parse properly, so shouldn't throw exceptions. (reported by Caleb Richardson <caleb@everyone.net>) - Work around a TCP bug in whatever broken nameserver Enom is using. (reported by Caleb Richardson <caleb@everyone.net>) 2/4/2005 - 1.6.5 released. - Records of an unknown type and length 0 weren't handled properly. (reported by Olafur Gudmundsson <ogud@ogud.com>) - Fixed a bug in $INCLUDE handling. (Christian Sepulveda <christian.sepulveda@nominum.com>) 2/3/2005 - The Lookup.run() method should be usable more than once on a Lookup object. (reported by Joseph Shraibman <jks@iname.com>) 10/31/2004 - Add partial IPv6 support to the ReverseMap class. (based on a patch from Th Kuhne) 7/7/2004 - Implement the $GENERATE master file directive. 6/28/2004 - Canonicalizing a name created with the Name(Name src, int n) constructor caused an exception. (based on a patch from Nigel Tamplin <nigel@metica.com>) - Concatenating names caused an exception when the prefix was created with the Name(Name src, int n) constructor. (reported by Nigel Tamplin <nigel@metica.com>) 6/22/2004 - The DNSSEC digesting code shouldn't throw ClassCastExceptions. (reported by Mike StJohns <Mike.StJohns@nominum.com>) - The label count in a generated SIG/RRSIG record was off by one. (Mike StJohns <Mike.StJohns@nominum.com>) 6/8/2004 - Rcode 4 is NOTIMP, not NOTIMPL. 6/5/2004 - Fixes to LOCRecord. 6/3/2004 - 1.6.4 released. 5/26/2004 - Properly handle text mnemonics in KEY records. - Add support for the APL record type. 5/25/2004 - Fix a bug where parsing the text format of an NSEC record incorrectly parsed one token too many. 5/18/2004 - 1.6.3 released. 5/11/2004 - Don't store the number of labels in a Name in a byte, as the maximum value (128) cannot be stored in a byte. 5/9/2004 - Add support for options within an OPTRecord (loosely based on a patch from Madhu Siddalingaiah <madhu@madhu.com>) 4/18/2004 - Add support for the SSHFP record type. - Fix a bug in the zone code which would cause record lookups to fail. 4/10/2004 - When parsing paster files, handle the fact that class and ttl may be in either order. 4/8/2004 - The opcode field in the DNS header was incorrectly parsed; this would affect messages with opcodes other than QUERY. (Madhu Siddalingaiah <madhu@madhu.com>) 3/20/2004 - 1.6.2 released. - Lookups could return "referral" instead of "host not found" in some cases. 3/18/2004 - Fix NullPointerExceptions caused by bad empty Record handling. (reported by Dharmveer Jain <dharmveer_jain@yahoo.com>) 3/16/2004 - 1.6.1 released. - When loading master files with $INCLUDE statements, the included files should be opened relative to the current directory, not the directory of the parent file. 3/12/2004 - Make it possible to use a Tokenizer without leaving files open. 3/4/2004 - 3/12/2004 - Add support for more record types (AFSDB, GPOS, ISDN, MB, MD, MF, MG, MINFO, MR, NSAP, NSAP-PTR, NULL, PX, RT, WKS, X25). 3/3/2004 - Cached NXDOMAINs were ignored, which caused extra queries to be sent (reported by Damon Hart-Davis <d@hd.org>). 2/25/2004 - Attempting to load a zone without specifying an origin failed. 2/24/2004 - 1.5.2 released. 2/3/2004 - Message.isSigned() should return true if we signed the Message with a TSIG. (reported by Shobana Sampath <shobanas@cisco.com>) - Implement NSEC, DNSKEY, and RRSIG record types. (loosely based on a patch from David Blacka <davidb@verisignlabs.com>). - Change the representations of sections, rcodes, opcodes, flags, and credibility to int. 1/28/2004 - Attempt to better deal with OutOfMemoryErrors when creating threads during the resolution process. (reported by Joseph Shraibman <jks@iname.com>) 1/27/2004 - Change the representation of a TSIG error from a byte to an int. - Improve error messages from failed Lookups; treat SERVFAIL as a temporary failure, not an unrecoverable error. (Joseph Shraibman <jks@iname.com>) 1/16/2004 - The master file reader should propagate TTLs through $INCLUDE statements. (David Blacka <davidb@verisignlabs.com>) 1/12/2004 - Add a MANIFEST to the jar file containing implementation name and version. (Harel Efraim <harel.efraim@nominum.com>) 1/11/2004 - Fix a couple minor bugs found by FindBugs (http://www.cs.umd.edu/~pugh/java/bugs/) 1/8/2004 - 1.5.1 released. - LOC records weren't parsed correctly. (reported by Harel Efraim <harel.efraim@nominum.com>) - Lines with only whitespace in master files should be ignored. 12/15/2003 - TTLs weren't handled properly in the master file parser. (Jack Tavares <tavares@drizzle.com>) 12/11/2003 - 1.5.0 released. 12/8/2003 - Change to the BSD license. - Replace the deprecated Name(String) and Name(String, Name) constructors with new versions that properly return exceptions. 12/6/2003 - Make the J2SE javadoc link a property in build.xml. (Ville Skyttä) 11/24/2003 - Lookup should check that the name, type, and class in the question section of a response match that of the query. - SimpleResolver should check that the message id of the response is the same as the message id of the query. On a sufficiently busy client, sockets can be reused fast enough that late responses can come in, and should be ignored. (seen by Joseph Shraibman <jks@iname.com>) 11/17/2003 - The Lookup code didn't handle CNAMEs pointing at nonexistant names. (reported by Joseph Shraibman <jks@iname.com>) 11/11/2003 - Store a weak reference to the Cache in the CacheCleaner thread, and kill the thread when the Cache is finalized. (suggested by Joseph Shraibman <jks@iname.com>) - When a Lookup uses a null cache, the temporary cache it creates should not have a CacheCleaner thread. (based on a suggestion by Joseph Shraibman <jks@iname.com>) 10/31/2003 - Record.hashCode() didn't return consistent hash codes, and didn't ignore the TTL (which it should, and which Record.equals() does). 10/27/2003 - DNS TTLs and other 32 bit unsigned values are now represented as longs, not ints. This is an API change, but allows the full range to be used. - Add the Serial class for serial arithmetic. 9/30/2003 - 1.4.3 released. - Fix a bit of code that required Java 1.4. 9/29/2003 - 1.4.2 released. 9/26/2003 - A Lookup shouldn't die when receiving a referral response; it should return an error. (reported by Elinor Chang <elinor_chang@yahoo.com>) - A Lookup should distinguish between timeouts and other network errors. - When parsing IP addresses from text format, treat the presence of a leading zero on an octet as an error. It's unclear whether it would be treated as decimal or octal, which means it should be fixed. (reported by Marcos Sanz/Denic <sanz@denic.de>) 9/17/2003 - Fix an off-by-one error in the Name code; labels of length 63 were not accepted (patch from David Blacka <davidb@verisignlabs.com>) 9/2/2003 - 1.4.1 released. 9/1/2003 - The Update.delete(Record) method needs to reset the TTL of the cloned record to 0. (reported by Edwin R. Rivera <erivera@moniker.com>) 8/23/2003 - Change Record.fromString() to expect an EOL/EOF token at the end of the string, so that extraneous tokens can be detected. The master file parser was updated to this change. (noticed by Bob Halley <bob.halley@nominum.com>) 8/22/2003 - Changing TXTRecord.getStrings() from returning a List of Strings to a List of byte []'s was a bad idea. Change it back, and add TXTRecord.getStringsAsByteArrays(). (reported by Blake Ramsdell <blake@brutesquadlabs.com>) 8/21/2003 - 1.4.0 released. 8/20/2003 - Add the ReverseMap class, which contains functions to construct names to be used in reverse map zones. 8/13/2003 - When looking up a one label unqualified name which fails to match all searchlist entries, don't append the root label and try again. This is recommended by RFC 1536, section 6: "Only if the name, so generated, returns an NXDOMAIN is the original name tried as a Fully Qualified Domain Name. And only if it contains at least one period." 7/18/2003 - Remove lots of unused imports. (Jared Richardson <jaredr@nc.rr.com>) 7/14/2003 - Fix a long-existing bug where empty records (in update messages) were incorrectly handled (reported by Kevin C Miller <kevinm@andrew.cmu.edu> 6/22/2003 - DNS types and classes are now represented as ints, not shorts. This is an API change, but allows the full type/class range to be used. 6/18/2003 - Quoted strings didn't handle \ddd escapes. 6/17/2003 - Fix an ArrayIndexOutofBoundsException triggered by load balancing in the ExtendedResolver. (reported by Norbert Desautels <ndesautels@gdgsystems.com>) 6/1/2003 - Add the Name.relativize() method to convert an absolute name to a name relative to a specified origin. - Add the Update class, which contains helper routines used to construct dynamic update messages. 5/28/2003 - Replace org.xbill.DNS.utils.MyStringTokenizer with org.xbill.DNS.Tokenizer, which is a far more robust and correct DNS tokenizer. Convert everything to use it. - Fix text format of TXT, NAPTR, and HINFO records. 5/28/2003 - When constructing a record, check that all names are absolute. 5/27/2003 - 1.3.3 released. 4/26/2003 - The master file parser should accept BIND format TTLs. 4/10/2003 - The Inet6Address class incorrectly parsed some addresses. (reported by steve weiland <steve@widge.net>) 4/7/2003 - Records were not sorted properly (reported by Joseph K Shraibman <jks@akula.com>) 4/2/2003 - Fix off-by-one error in Name.compareTo (David Blacka) 3/30/2003 - Add the ZoneTransferIn class, which performs incoming AXFR/IXFR - Make TSIG verification of multiple-message responses reentrant. - Fix incorrect string quoting. - Make records print on a single line by default; add the 'multiline' option to use the more verbose format. 3/17/2003 - Make the routine that converts an IP address from a string more efficient and correct. (based on a patch by Sean O'Neil <SeanO@telemate.net>) 2/12/2003 - Fix an infinite loop that could occur when processing a response containing a CNAME loop and an rcode of NOERROR. (reported by Sean O'Neil <SeanO@telemate.net>) 1/25/2003 - Cleanup and improvements to the ExtendedResolver class. 1/23/2003 - Add the setMaxCache() method to the Cache class. - Check for non-absolute names when creating Records. 1/21/2003 - 1.3.2 released. 1/20/2003 - Certain responses with CNAMEs weren't being properly cached. (reported by Sean O'Neil <SeanO@telemate.net>) - Add a 'compile' target to build.xml, and make the 'all' target both compile and build the jar file. (Jon Scott Stevens <jon@latchkey.com>) 12/22/2002 - Check for SecurityExceptions in the Options static initializer; this was preventing the use of dnsjava in an unsigned applet. (reported by Peter Westerink <peterw@us.ibm.com>). 12/15/2002 - Converting some types of records (TXT, for example) to wire format could throw an IndexOutOfBoundsException. - TSIG signed UDP queries weren't properly verified by jnamed. - Add a method to render a Message with a specified maximum size - this method will properly truncate large responses and apply TSIG signatures. 12/14/2002 - Move additional data processing to the Record class from jnamed; make jnamed use it, as well as the caching code. 12/9/2002 - Add the Lookup class, which is what the dns class should have been, and make the lookup sample program use it. 12/9/2002 - When caching a message, a response object can be constructed immediately. 12/4/2002 - 1.3.1 released. 12/3/2002 - If a subresolver of an ExtendedResolver exited by throwing a RuntimeException, the ExtendedResolver would throw a ClassCastException. It should rethrow the RuntimeException. 12/3/2002 - The Name code didn't handle names with non-printable characters. (found by Serge Sozonoff <serge@globalbeach.com>) 11/28/2002 - Fix a potential deadlock in the WorkerThread class. (found by Serge Sozonoff <serge@globalbeach.com>) 11/26/2002 - Fix a bug where looking up names without trailing dots would fail if there was no searchlist. 10/31/2002 - Fix a bug in searchlist processing on Windows. 10/20/2002 - Record.toWire() and Record.toWireCanonical() do not need to be declared as throwing IOException, since there's no legitimate reason for them to throw one. 10/18/2002 - Race condition fixes and memory usage improvements to the NameSet class, used by Cache and Zone. 10/16/2002 - 1.3.0 released. 10/11/2002 - Add Name.getLabel() 10/10/2002 - When cleaning the cache, catch ConcurrentModificationExceptions. 10/8/2002 - Cleanups to Cache.addMessage() and the Credibility code. 10/7/2002 - Fix problems with search path handling in the dns class. - Possible race condition fixes to the Cache code. 10/6/2002 - Fix minor bugs in Name code (Bob Halley <bob.halley@nominum.com>) 10/1/2002 - Memory usage and speed improvements to the TypeMap class. 9/25/2002 - Add the verbosecache option. - Significant memory usage improvements to the Name class. 9/23/2002 - Memory usage improvements to the ARecord class. 9/16/2002 - Support for NetWare's sys:/etc/resolv.cfg file. (Scott Villinski <scott@villinski.com>) 9/5/2002 - When looking for an rdataset in a zone or cache, seeing a CNAME above the name is not an error. (reported by Andrew Houghton <aah@volunteermatch.org>) 8/31/2002 - Changed the code that dynamically loads record types; hopefully this will solve some of the mysterious problems that I think are related to non-English versions of Windows. - Clean up the Name code. 8/28/2002 - Remove support for bitstring labels, since they're now deprecated. 8/16/2002 - Address.isDottedQuad didn't check to see if the input String contained characters after an IP address. (Marcos Sanz <sanz@denic.de>) 8/11/2002 - Querying for a nonexistant name with exactly one label didn't return. 8/10/2002 - Add Ant build script (Blake Ramsdell <blake@brutesquadlabs.com>) 8/6/2002 - The AAAARecord constructor was broken. - The Record class now implements Comparable. 6/22/2002 - Significant speed improvements in the Record class and its subclasses. 6/20/2002 - Add Zone.removeRecord() (based on code from Adam Cassar <adam.cassar@netregistry.com.au>) - Add Zone.toMasterFile() (based on code from Adam Cassar) - Performance enhancements to the Name object. - Add the "-t type" option to the lookup program. 6/16/2002 - Update lots of code to use Collections instead of JDK 1.1 Vectors & Hashtables. 5/28/2002 - fix some limitations of name parsing. (reported by Tasos Kotsikonas <tasos@boldfish.com>) 5/4/2002 - added the 'sleep' and 'date' commands to the update client. (Olafur Gudmundsson <ogud@ogud.com>) 4/29/2002 - 1.2.4 released 4/25/2002 - Add a constructor for building a zone from an array of records. (based on code from Adam Cassar <adam.cassar@netregistry.com.au>) 4/24/2002 - Reduce the memory usage of the RRset class. - Add a new factory method for creating a Record from a String, rather than a pre-tokenized String. - Reduce the memory usage of the ARecord class. 4/23/2002 - Fix potential race conditions in the RRset class. (David Esposito <esposito@newnetco.com>) - Fix potential race condition in the WorkerThread class when two threads complete their run methods nearly simultaneously. (David Esposito) - Add a new factory method for creating a Record, where the length of the rdata is not explicitly specified, but inferred from data.length. 4/22/2002 - Improve name decompression by not requiring a decompression context. 3/27/2002 - Add support for the Delegation Signer (DS) record. (David Blacka) 3/22/2002 - Record.equals() did not properly canonicalize names. - Record.equals() should ignore the TTL. 3/19/2002 - When a compressed name is parsed, it should be added to the compression table, so that future pointers to that name work. (reported by Blake Ramsdell <blake@brutesquadlabs.com>) 3/14/2002 - In jnamed, AXFR responses didn't have the message ID or flags set correctly. - jnamed failed to respond to messages signed with unknown keys. - jnamed did not sign responses to signed AXFR queries. 1/21/2002 - Handle empty domain statements in /etc/resolv.conf. (reported by Blake Ramsdell <blake@brutesquadlabs.com>) 1/1/2002 - Minor performance enhancments (suggested by Christopher Brind) 10/14/2001 - Add support for the DNSSEC RSA-SHA1 algorithm (David Blacka) - Add rdataToWireCanonical() (David Blacka) 9/27/2001 - jnamed can now listen on specific addresses, with the "address" keyword in the config file. 9/23/2001 - 1.2.3 released 9/14/2001 - Creating an Enumeration of an empty RRset caused an infinite loop. (David Blacka <davidb@research.netsol.com>) 8/9/2001 - nsupdate compatibility and a bug fix to the update client. (patch from David Sward <david@berzerked.org>) 8/8/2001 - The results of ANY queries were not properly cached. 8/4/2001 - 1.2.2 released 7/22/2001 - Added the -q (print query) option to dig. - Bitstring labels are now canonicalized. - jnamed implements the DO (DNSSEC OK) bit. 7/19/2001 - A string tokenizer bug caused TXT records with one string to be incorrectly parsed. (David Blacka) - Added Name.getLabelString(). 7/17/2001 - Started implementing Name.compareTo(). (loosely based on a patch from David Blacka). 7/16/2001 - Converting a AAAA record to wire format was broken. (David Blacka) - Inet6Address did not properly reject addresses that are too long or too short, and also didn't properly handle addresses with one number after a double colon. - Key footprints were computed incorrectly. Also cache footprints in the KEYRecord to avoid recomputation. (David Blacka) - Added the -d flag to dig, which sets the DNSSEC OK bit. 7/13/2001 - KEY flags were incorrect (David Blacka <davidb@research.netsol.com>) - Add routines for parsing a master file from a non-file input source (David Blacka) - base64.formatString() didn't work if lineLength wasn't 64. (David Blacka) - Add support for the DNSSEC OK extended flag (David Blacka) - Allow the caller of a Resolver to add an OPT record to a query. (original patch from David Blacka). 6/30/2001 - 1.2.1 released 5/23/2001 - Automatically determining name servers didn't work on Windows 2000. 4/13/2001 - Converting a Name to a String does proper character escaping. 4/7/2001 - 1.2.0 released 3/21/2001 - Only cache relevant data from answers. - Cache negative responses more correctly. 3/14/2001 - Handle TTLs greater than 2^31. 3/10/2001 - Performance and memory improvements to the Name object. 3/7/2001 - Performance improvements to TypeMap (used by Zone and Cache). 3/6/2001 - Lots of standards compliance related fixes. 3/4/2001 - Improved class handling. - A few minor CNAME related fixes. 2/27/2001 - Referrals weren't returned correctly from jnamed. 1/15/2001 - Fix some signed/unsigned printing issues for KEY records (Pasi Eronen <pe@iki.fi>) - Add routines to generate SIG(0) message signatures (Pasi Eronen <pe@iki.fi>) 1/8/2001 - Add support for unknown RR types & classes. 12/3/2000 - The target in an MX record can be compressed. 11/18/2000 - Add jnamed.conf example to USAGE 8/27/2000 - 1.1.6 released - The high level api wasn't properly initialized. (Christopher Fitch <cfitch@sbti.com>) - Added a routine to build a SIG record based on the results of a DSA signature (Pasi Eronen <pe@iki.fi>) 8/13/2000 - Added 'clear' command to update client - Removed some deprecated code 8/8/2000 - Invalid binary labels were not always rejected - SRV initialization didn't work (reported by Chuck Santos <csantos@netnumber.com>) - jnamed failed if no Cache was specified - The Zone object didn't handle zones with no NS records. - Added support for the NAPTR record (Chuck Santos <csantos@netnumber.com>) 7/17/2000 - 1.1.5 released - CERT records were printed with a negative keytag half the time. (reported by Jakob Schlyter <jakob@crt.se>). - Printing a KEY record prints the key id. (Jakob Schlyter <jakob@crt.se>) 6/25/2000 - A Cache now contains a thread that periodically removes expired data. 6/4/2000 - update client syntax enhancement - add/delete/require/prohibit/glue no longer require -r, -s, or -n. 6/3/2000 - update client supported prohibiting individial records, which is not supported by dynamic update. 5/21/2000 - Win2000 support 4/15/2000 - ExtendedResolver supports load balancing of servers. 4/2/2000 - Minor fix to base64 decoding 3/22/2000 - name comparison should always be case insensitive (Darrell Kindred <dkindred@tislabs.com> 3/5/2000 - 1.1.4 released - added Cache.setMaxNCache(), which sets the maximum amount of time that a negative answer is cached. 2/10/2000 - update client: add show command, catch socket exception, don't send empty updates, assert tsig ok/failed/unsigned 2/8/2000 - 1.1.3 released - Added lookup program - FindServer finds a search path on Win95/WinNT 2/7/2000 - minor TKEY record updates - FindServer should work on Win95/WinNT - Added 'make jar' and a jar file 1/20/2000 - Added AAAA record 1/13/2000 - 1.1.2 released - dns.setResolver() clears the cache 11/7/1999 - Added EDNS support to update client 11/2/1999 - A key starting with ':' is parsed as hex 10/28/1999 - minor TKEY fixes and TSIG updates 10/5/1999 - misc. small fixes 10/4/1999 - Missed TKEY in the type map 9/26/1999 - Added TKEY record 9/25/1999 - Diffie-Hellman key updates 9/23/1999 - dns.server and dns.search are now comma-delimited strings 9/20/1999 - 1.1 released (finally) - Change OPT to type 41 and fixed related stuff - Change license to LGPL 9/16/1999 - Cache & DNSSEC bug fixes 9/9/1999 - A6 record support (and IPv6 addresses) 9/6/1999 - jnamed has limited support for SIG records 9/4/1999 - res.sendAXFR() is now obsolete, just use res.send() - jnamed (and Zone) support incoming AXFR - Zone handles wildcards that replace multiple labels 9/2/1999 - Bitstrings are now compatible with current BIND 9 - jnamed (and Zone) support outgoing AXFR - jnamed uses jnamed.conf by default, can specify port in config file, returns NOTIMPL on meta-queries other than AXFR and ANY. - DNSSEC can now verify records that came from wildcard expansion - SimpleResolver handles AXFR REFUSED - Lots of EDNS updates 9/1/1999 - More bitstring fixes. - Added RP record (from Tom Scola <tscola@research.att.com>) 8/29/1999 - More bitstring label stuff. I think they work now. _ DataByteInputStream cleanup. Should handle errors better now. 8/26/1999 - More verbose options - TSIG badtime bug & better reporting - Large TTL bug - MyStringTokenizer.setNoEscapeCharacter() 8/25/1999 - Imported DNSSEC code - New options: tsigfudge, verbosehmac, verbosemsg - Added utils.hexdump to print a formatted dump of bytes 8/24/1999 - More bitstring label support 8/23/1999 - All data now passes through the Cache. This should help with DNSSEC verification - Added basic DNSSEC verification - Fixes for handling data with TTL 0 - Started adding bitstring labels - Added support for DNAME records (no processing yet) 8/8/1999 - Started adding global options (Options class) 8/7/1999 - Type and Class ANY should work correctly now - jnamed and Zone handle wildcard records - Cache returns wildcard set if name is negatively cached - TTL can be converted into BIND format 8/6/1999 - Updates to KEYRecord - getFootprint() and renamed constants 8/2/1999 - 1.0.2 released - WorkerThread obscure race conditions fixed (patches provided by Tom May <tom@go2net.com>) 8/1/1999 - Added getResolver/getCache to dns class - RRset now has deleteRR and is better synchronized - Cache now has flushName/flushSet - Resolver.sendAsync returns an Object instead of an int - Socket cleanup (patches provided by Tom May <tom@go2net.com>) - WorkerThread's idle lifetime and max threads are now configurable - HMAC-MD5 logic bug 7/5/1999 - 1.01 released - fixed a hang with ExtendedResolver and Exceptions 6/30/1999 - dns search path should always include a . at the end. The only time this bug would show up is when querying for an unqualified top level name. 6/29/1999 - update now ignores '>' at the beginning of a line, to allow easier cut and paste from other update sessions. 6/24/1999 - Use an int instead of a short for the message section count. It would be nice if java had unsigned types, but since messages are also constructed from zone transfers, a larger value is useful. 6/23/1999 - AXFR TSIG bug fix 6/18/1999 - 1.0 released. Yay! - documentation updates - my birthday 6/15/1999 - Restructured update's help - Added 'assert serial' to update, fixes to query keyword - Added Record.fromWire from a byte array - Added LOC support 6/14/1999 - Updates to multiline parser 6/11/1999 - Added Message.newUpdate to simplify sending updates 6/10/1999 - Zone file parser now handles $INCLUDE - update now has a keyword 'zone', which sets the zone to be updated, if it's different than the origin - added constants for DNAME, A6, KX - added KX support, abstracted MX code to support KX also. 6/9/1999 - update should handle timeouts - AXFR parser should allow 1 record in the question section 6/7/1999 - Zone file parser now handles $TTL, and complains about invalid directives. - fixed a few parsing problems in update - fixed null key parsing and key flags handling 6/3/1999 - added author javadoc tags - added javadoc comments to Master. Again, not sure how I missed this before. 5/25/1999 - 0.9.5 released - fixed another null pointer in the cache 5/23/1999 - added javadoc comments to utils/MyStringTokenizer. Not sure how I missed this class before. - minor cleanups to string parsing in update 5/21/1999 - fixed comment processing in update - fixed case bug in Section handling 5/20/1999 - 0.9.4 released - fixed the same round-robin bug, hopefully correctly this time 5/17/1999 - 0.9.3 released 5/16/1999 - fixed a round-robin bug 5/14/1999 - 0.9.2 released - Resolver routines now return Exceptions instead of null. 5/13/1999 - split WorkerThread into WorkerThread and ResolveThread 4/25/1999 - moved files to org.xbill.DNS - Cache round-robins RRsets before handing them out - changed the way ExtendedResolver decides when to send queries - various reflection changes 4/21/1999 - minor WorkerThread fixes 4/19/1999 - 0.9.1 released - WorkerThreads should die after 15 minutes of idle time - Address.getByName/getAllByName handle dotted quad IP addresses 4/18/1999 - 0.9 released - Finished javadoc-ing classes in DNS.* - Server should work now - Zone/Cache response updates - Zone/Cache accesses should be more thread-safe 4/17/1999 - The Cache supports ANY queries - More javadoc-ed classes in DNS.* - implemented toWireCanonical for record types that need it - Message.toString should print better output for update messages 4/16/1999 - jnamed wasn't looking up non-ANY queries correctly in a zone - SimpleResolver should use TCP if query length is longer than UDP packet size - More javadoc-ed classes in DNS.* - MyStringTokenizer moved to DNS.utils 4/15/1999 - More javadoc-ed classes in DNS.* - Moved functions from DNS.IO to DNS.utils.base64 and DNS.Master - Implemented search path for dns.getRecords functions - 0.8.3 released - Restrict number of WorkerThreads to 10 - ExtendedResolver timer code fixes - ExtendedResolver race condition fix 4/14/1999 - ExtendedResolver reentrancy fixes - Names are marked as qualified/unqualified - FindServer looks for search path from -Ddns.search1, etc. and in /etc/resolv.conf 4/13/1999 - 0.8.2 released - More javadoc-ed classes in DNS.* - The message ID stuff from 4/10 broke TSIG, so it's gone - Changes to ExtendedResolver's handling of child Resolvers - Too many threads were being created - Threads should now have meaningful names 4/12/1999 - NameSet shouldn't be using wildcards, since it's not correct for a cache (a name could match a wildcard and return wildcard data before the cache learned about data for the name) - javadoc-ed DNS.utils.* and some of DNS.* - ExtendedResolver allows specifying Resolvers to use - SimpleResolver and ExtendedResolver share a thread pool - ExtendedResolver and FindServer bugfixes - Header bug that actually caused the 0.8.1 release fixed - bugfix release 0.8.1 released - Messages weren't being cloned properly - Resolver didn't handle a query to nowhere correctly 4/11/1999 - 0.8 released - Resolver is now an interface, implemented by SimpleResolver and ExtendedResolver. - added ExtendedResolver, which sends multiple queries to multiple resolvers. - jnamed rejects non-queries 4/10/1999 - added Message.newQuery() to make building queries easier - Record.fromWire verifies that the record length is correct - Resolver.sendAsync() now uses worker threads rather than starting a new thread each time. - Multiple servers can be found by setting the dns.server<n> properties (or from /etc/resolv.conf). - Message/Header doesn't generate the message id until the message is sent or the id is queried for 4/9/1999 - added setTimeout to Resolver 4/8/1999 - fixed obscure md5 bug - made Resolver(null) and Resolver() equivalent 4/7/1999 - Added simple asynchronous interface to resolver 4/6/1999 - CERT and SIG bug fixes 4/5/1999 - data lookups should use class in addition to type - CERT record bug fix 4/4/1999 - 0.7 released - DNS.dns uses Cache - Added getAny* to DNS.dns - Cache can return information indicating partial success on lookup 4/3/1999 - Cache does negative caching - Cache follows CNAMEs when looking for cached data 4/2/1999 - dig now understands -x - added DNS.Address, a clone of InetAddress - Cache can now follow CNAME chains - Cache now expires records based on TTL and doesn't cache records with TTL = 0. 4/1/1999 - Made Cache and Zone extend NameSet - Created Master class to parse master files 3/31/1999 - Added first cut at Cache - Changes to RRset to make it more useful 3/30/1999 - 0.6 released - bug fixes to DataInputStream, jnamed - jnamed now takes config file - Added basic EDNS0 and TSIG support to jnamed - Added basic EDNS0 support and IgnoreTruncation flag to Resolver - jnamed can now return FORMERR 3/29/1999 - 0.5 released - update client: added "echo" and "log" keywords, "file" can now specify "-" for standard input (at the end of a config file, for example). - added support for BIND TTL format - switched from CountedDataOutputStream to DataByteOutputStream, which extends ByteArrayOutputStream. Same for Input. Should help performance and allow more flexibility. - minor server fix to authority section 3/28/1999 - 0.4 released - fixed compression bug where all pointers into rdata were 0 - server sends authority records (NS or SOA) - server now loads glue data separately from zone data, adds authority and additional data, and deals with truncation. - fixed a few Zone bugs - added signatures to RRset 3/27/1999 - 0.3 released - _res was set wrong, so the high level functions wouldn't work. - Minor additions to CountedData(Input|Output)Stream - Lots of DNSSEC stuff 3/26/1999 - moved constants out of dns class into other classes 3/25/1999 - 0.2 released - conversion from base64 sometimes added extra zeroes. - original record length was computed wrong, so tsigs didn't verify. - master file parser didn't deal with ; delimited comments - server now stores data in RRsets instead of individual RRs. - various server bug fixes. Still doesn't work too well. 3/23/1999: - 0.1 released