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
