NSD RELEASE NOTES

2.0.0
=============
FEATURES:
        - Experimental DNSSEC support implemented, but disabled by
          default.  Enable using the --enable-dnssec configuration
          option.
        - IPv6 enabled by default.  Disable using the --disable-ipv6
          configuration option.

BUG FIXES:
        - Bug #47: Domain name is now logged when a notify is
          received.
        - Bug #70: First include all A records in the additional
          section, followed by AAAA records.
        - Bug #77: Check length of domain name and label.
        - LOC records are supported again.

1.4.0-alpha1
=============
FEATURES:
        - New database format that is much more compact and portable
          across architectures.
        - The new zone compiler is now the default and the old zone
          compiler has been removed.
        - Name compression is done dynamically, removing one other
          difference with BIND in the responses generated (the full
          query name is now used for compression).
        - CNAME target records are now generated from wildcard
          records if necessary.

REGRESSIONS:
        - mmap(2) isn't currently supported.
        - Not all RR types are supported by zonec (such as LOC).

1.3.0-alpha1
=============
FEATURES:
        - New name lookup algorithm.  This required a change to the
          database format.  Performance should increase at the expense
          of database size and memory usage.
        - New zone compiler (zonec2) based on flex and yacc, fully RFC
          compliant (still in alpha).
        - Database can be loaded using mmap(2) (use the --enable-mmap
          configure option to enable).  This is useful on operating
          systems such as Solaris that do not allow memory overcommit.
        - Region based memory allocation and resource management.
        - New internal format for storing domain names.  Each dname
          now includes an array of label offsets within the domain
          name.
        - Updates to the plugin API.

BUG FIXES:
        - Bug #65: The syslog facility is now a compile time option
          (--with-facility=FACILITY).  The default facility is DAEMON.
        - Bug #66: Automatic periodic dumping of the statistics (using
          the -s option) is now continued after a database reload.

1.2.4
=============
BUG FIXES:
        - Bug #72: If an RRset for a child domain is defined before
          the RRset of the parent domain the parent's RRset would be
          "lost".

1.2.3
=============
BUG FIXES:
        - Bug #65: The syslog facility is now a compile time option
          (--with-facility=FACILITY).  The default facility is DAEMON.
        - Bug #66: Automatic periodic dumping of the statistics (using
          the -s option) is now continued after a database reload.
        - NSD would try to kill pid -1 on startup if forking of a child
          process failed.
        - Do not log EAGAIN errors on calls to recvfrom.  These errors
          should be harmless.

1.2.2
=============
BUG FIXES:
        - Bug #59: NSD returns FORMERR when the query name is >= 246
          bytes.
        - Bug #60: Zonec runs out of file descriptors with many zones.
        - Bug #61: nsdc uses /bin/sh hardwired (and should not).
        - Bug #62: NSD is not able to log to a file.
        - Bug #63: nsdc update and zonec are too tallkative.
        - Bug #64: Answer for request of a host resolved by a
          wildcard-resource-record is not understandable by dig.

1.2.1
=============
BUG FIXES:
        - AXFR terminates early if a zone containa a CNAME pointing
          the the zone's domain name (SOA record) (bug #56).
        - During an AXFR memory above the top of the stack was
          accessed.  This could lead to occassional AXFR errors (bad
          packets).
        - NSD now prints its version number and exits when invoked
          with the -v flag (bug #57).
        - NSD prints help information and exits when invoked with the
          -h flag.

1.2.0
=============
FEATURES:
        - NSD is now a single parent process (handling child
          termination and database reloads) plus multiple UDP and TCP
          child processes handling queries.  Before the parent process
          also handled UDP queries.  This change simplifies the parent
          and child processes and allows the use of multiple
          concurrent UDP servers.
        - Experimental plugin support.  This required a minor,
          incompatible change to the database format.  Make sure you
          recompile your database.  Use --enable-plugins to enable.
        - Full IPv6 support (for multi-homing and for Linux, thanks to
          Colm MacCrthaigh and Jun-ichiro itojun Hagino).  Use
          --enable-ipv6 to enable.
        - Support for multi-homing with TCP connections.
        - Support for SunOS 4.x has been dropped.

CODE CHANGES:
        - NSD should now conform to the Single Unix Specification
          (http://www.unix.org/).
        - Const correctness for strings and some other data types.
        - Removed code for Berkeley DB, hash tables, and mmap(2).
        - Separate preprocessor flags from code flags (CPPFLAGS and
          CFLAGS).
        - Use uint8_t instead of u_char, uint{16,32}_t instead of
          u_int{16,32}_t.
        - Fixed warnings from mixing signed and unsigned types.
        - Use sigaction(2) instead of signal(2).
        - The query_process function has been split up for clarity.

BUG FIXES:
        - CHAOS TXT queries failed on big-endian machines.
        - Portability fixes for Tru64 (thanks to Stephane Bortzmeyer),
          HP-UX, and MacOS X (thanks to Ronald van der Pol).
        - Removed compile time limit on maximum number of TCP child
          servers.
        - Support for debugging UDP and TCP queries.
        - Always ensure there is enough room for the EDNS record when
          answering a query with EDNS enabled.

1.1
=============
FEATURES:
        - ANSI C
        - autoconf/configure
        - new parser
        - support for various RR types in zonec
        - support for UNKN RR types

BUG FIXES:
        - lots of zone parsing errors eliminated
        - empty node matching bug gives NXDOMAIN

1.0.3
=============
This release is a bug fix release and does not add any new features.

BUG FIXES:
        - Ignore SIGPIPE errors (bug #43).
        - Keep track of TCP child servers and restart if necessary.
          (bug #55)
        - Handle database reload failures correctly.
        - Close UDP sockets in TCP child servers.
        - Handle escaped characters (besides \.) in labels.
        - Preserve the query's RD flag in the answer.

1.0.2
=============
FEATURES:
        - -DBIND8_STATS to enable bind8 like [NX]STATS
        - -t flag to make nsd chroot to a certain directory
        - -s flag to make nsd produce statistics every s seconds
        - /etc/nsd/nsdc.conf to overwrite default variables
          for nsdc.sh
        - less loggin and more radical tcp connection (mis)handling
        - prefork -n processes to handle tcp connections
        - multiple -a flags

CHANGES:
        - named.stats file functionality is removed

BUG FIXES:
        - couple of pedantic fixes in C code
        - last zone in database axfr bug fixed
        - nsdc update wont update bug fixed

1.0.1
=============

FEATURES:
        - NSD drops permissions after binding the sockets
        - ``cache'' zones are no longer allowed
        - ID.Server & Version.Server compile time options
        - AXFR implemented (with tcpwrapper for access control)
        - nsdc update and nsdc notify functinality
        - using named-xfer with TSIG for inbound axfr


CHANGES:
        - the order of records in the database is from now
          on significant
        - since Berkeley DB doesnt define order for sequential
          access it is no longer supported

BUG FIXES:
        - white space problem in zonec is fixed

KNOWN BUGS:
        - please see appropriate man pages for the known bugs

1.0.0 RELEASE
=============

KNOWN BUGS:

- Although NSD allows one to configure a zone without SOA record and
  use it as so called ``cached'' non-authoritative data, it is decided
  that having this functionality is wrong, dangerous and will be removed
  from the further versions.

- If while processing EDNS(0) OPT record NSD encounters bad EDNS(0)
  version it will answer with Format Error instead of EDNS(0) BADVERS

PLATFORMS:

        Tested and working on i386 FreeBSD-4.4, i386 Linux, dec alpha Linux,
        sparc SunOS 4.x


1.0.0-BETA2
===========

FIXES:
        - wildcards bug fixed
        - AA bit for class ANY bug fixed
        - minor coredumps with really broken zones in zonec fixed
        - linux & SunOS port

1.0-ALPHA2
==========
FIXES:
        - IPv6 transport support added by Jun-ichiro itojun Hagino (Use -DINET6)
        - Makefile modified for easier compile time configuration
        - EDNS(0) bug fixed
        - Default database changed to all lowercase, red-black tree to make nsd
          DNSSEC ready
        - REQUIREMENTS are cleaned up and updated
        - Signal names changed in nsdc.sh.in
        - Default compile options dont include -DMIMIC_BIND8
