0.0.6 - 2007-07-28
  - Support an optional A record for our authoritative zone.
  - Return our own NS record in the appropriate places.
  - Don't modify the group ownership of our state directory.
  - Rebuild the exit-addresses file every 15 minutes so LastStatus items stay
    up to date.
  - Ensure exit tests are scheduled when we receive new descriptors.
  - Generate cookies using OpenSSL's strong pseudo-random number generator.
  - Add a "Connection: close" header to test requests and responses.
  - Test once through each port exit policies allow, recording varying exit
    addresses for individual nodes.
  - Periodically (currently, every 150 minutes) test through every node
    marked running.
  - Make cumulative DNS load statistics available via a Unix stream socket
    located in our state directory. Add a sample data input script for Cacti.
  - Increase the test result retention period to 48 hours.
  - Ensure the controller socket is closed immediately when connect fails.
  - Rate limit exit test initiation to one node every three seconds. This
    should reduce the load we put on Tor, particularly during periodic tests.

0.0.5 - 2007-06-12
  - Set QR in responses as we did in 0.0.3 and earlier. Fixes a bug
    introduced in 0.0.4.
  - Return a SOA record when queries ask for one.
  - Ensure that the state directory has correct ownership and permissions.
  - Include a Debian-style init script and instructions for setting up
    TorDNSEL with it. (patch from Jacob Appelbaum)

0.0.4 - 2007-06-02
  - Return REFUSED instead of SERVFAIL for queries outside the authoritative
    zone.
  - Return NODATA for queries matching the authoritative zone.
  - Return NODATA for positive results when queries ask for non-A records.
  - Support queries with a type of *.
  - Return a SOA record with NXDOMAIN and NODATA responses to support
    negative caching.
  - Don't send responses that exceed 512 bytes.
  - Drop incoming messages with QR set.
  - Implement compression for domain names in responses.
  - Add a required SOARName option to specify the RNAME field in SOA records.

0.0.3 - 2007-04-27
  - Implement active testing through exit nodes to determine the IP address
    connections actually originate from. Store this information in state
    files so external scripts have access to it.
  - Always return an A record with the value 127.0.0.2 when queried about
    127.0.0.2. This conforms to the convention for testing DNSBLs.
  - Fix a bug that could kill the Tor controller thread when Tor is
    restarted. Tor closing the control connection created a race condition
    allowing an asynchronous exception to escape an exception handler and
    kill the Tor controller thread.

0.0.2 - 2007-04-14
  - Fix another bug caused by the incorrect Ord instance for PortNumber.
    We don't want to accept DNS queries from privileged ports so we can
    avoid a potential denial of service caused by an attacker spoofing our
    own IP address in the query.

0.0.1 - 2007-04-13
  - Ignore incoming descriptors with published times older than ones we
    already have.
  - Consider any router that has published a descriptor within the last 48
    hours to be running. This means we don't use network status info anymore,
    but we'll still keep track of it in case it becomes useful.
  - Set FetchUselessDescriptors so we receive descriptors for non-running
    routers.
  - Fix a bug caused by an erroneous Ord instance for PortNumber in
    Network.Socket. PortNumbers were being compared in host order even
    though they're stored in network order. This caused some queries to
    incorrectly match exit policy rules and others to miss matches.

0.0.0 - 2007-04-11
  - Initial release.
