Changelog.txt

dlz-0.7.0       Eleventh release.  Fixed a bug in the MySQL driver that caused
                a core dump if dns_sdlz_putnamedrr failed (due to invalid data
                or the like).  Fixed a minor warning in the LDAP driver when
                threads are enabled.  The warning was too few parameters passed
                to a logging function.  Added missing parameter.  Also removed
                un-needed variable in LDAP driver when threads are enabled.
                                
                Added more error checking and a new command line options to
                dlzbdb.  The "e" option can be used along with list "l" to list
                "everything".  The output will be in dlzbdb bulk format.  The
                "s" option can be used instead of the "f" option to read bulk
                data from stdin instead of a file.  Removed unnecessary
                DB_FIRST flag from various locations in the DLZ Berkeley DB
                driver.
                
                Implemented a new BDB driver called "bdbhpt", which stands for
                Berkeley DB High Performance Text.  This driver is a result of
                profiling the original BDB driver during performance testing.
                The original BDB driver's performance suffers from the need to
                join the host and zone cursors when obtaining data from the
                "dns_data" table.  The cursor join operation is VERY expensive.
                
                The new driver uses a different database schema and no longer
                requires the cursor join to retrieve data, this greatly
                improves performance.  Also, the new bdbhpt design does not use
                any secondary databases at all.  This should eliminate the BDB
                deadlock that can be experienced with the original BDB driver.
                               
                The deadlock in the original BDB driver is due to a bug within
                BDB itself, and not the DLZ driver.  Search the mailing list
                archives for "deadlock in BerkeleyDB driver" for details.
                However, a deadlock is always bad no matter who causes it, so
                with this driver it can be avoided.  
                
dlz-0.6.0       Tenth release.  Added LDAP driver & DLZ LDAP schema.  Read
                the LDAP docs for specifics of how to use this driver.  Like
                all the other drivers the LDAP driver was built to be as
                flexible as possible, and use of the DLZ LDAP schema is not
                required.  It is simply supplied to make use of the DLZ LDAP
                driver easier.
                
                Fixed the "case bug" for drivers which use the SDLZ driver
                filter.  This affected all the drivers currently supplied
                with DLZ, but primarily caused a problem with the file system
                and Berkeley DB drivers.  Now all host & zone information will
                be converted to lower case before it is passed to any of the
                ASCII based drivers.
                
                Fixed the "near eof: ran out of space" bug for ASCII drivers.
                This message should almost never occur anymore.  I modified
                the buffer initial_size algorithm to better estimate the
                needed buffer size in order to prevent the message.  Even
                if the message does show up, DLZ will handle things properly
                internally by doubling the buffer size and trying again - as
                it always has.
                
                Updated configure to perform better searching for Berkeley DB's
                headers / libraries when the path is supplied.  This should
                make building DLZ with the Berkeley DB driver easier on FreeBSD
                and other BSD based distributions.
                
                Converted most of the docs to webpages.  Originally all of
                DLZ's docs were text based.  Once the new website went up
                the required all the docs to be maintained in two formats.
                This is more work, and may cause an inconsistency in the docs.
                For that reason all DLZ driver docs are now only available as
                HTML.  In the future the remaining documentation will probably
                be converted to HTML and the text versions eliminated.
                
dlz-0.5.0       Ninth release.  Added ODBC driver.  Read the ODBC docs for
                specifics of how to use this driver.
                
                Removed an un-needed write to the logs from the Postgres
                driver.

dlz-0.4.3       Eigth release.  Updated patch for new version of Bind.
                Previous patches were for Bind 9.2.1.  This patch is for Bind
                9.2.2.  

                Fixed a small error in the DLZ core affecting Bind (named)
                startup.  If the DLZ driver failed to initialize, named would
                log the error but continue to startup anyway.  The DLZ driver
                would just not be used.  This has been changed so that if the
                DLZ driver does not initialize successfully, named will NOT
                startup.  This should make it easier to "know" that everthing
                worked at startup.
                
                Fixed a small problem with the build scripts.  The problem
                could cause the Berkeley DB driver build to fail if a special
                set of conditions were met.  The "search order" was changed so
                now the headers and libs for the Berkeley DB driver are in the
                search path before the other drivers.  On some systems this
                will cause multiple warning messages like the ones below to 
                appear.  This is ok.
                
cc1: warning: changing search order for system directory "/usr/include"
cc1: warning:   as it has already been specified as a non-system directory
                                 
                The PostgreSQL driver had dbcount declared as an unsigned int,
                but then did an evaluation that could potentially return a
                signed int.  The declaration of unsigned int has been changed
                to int.  This only effected compilation on some systems.
                
dlz-0.4.2       Seventh release.  In the process of migrating from bind-9.2.1
                to bind-9.2.2 the fixes that were supposed to be in this
                release didn't get migrated.  This release was pulled from
                the website.
                                
dlz-0.4.1       Sixth release.  Fixed a small error in the configure and make
                scripts.  If you attempted to build DLZ without Berkeley DB
                the make would fail in /bin/dlzbdb because the code was ifdef'd
                out, creating an empty *.o file.  The link process would not
                be able to find a main(argc, argv) in the *.o and the build
                would fail.  This has been fixed.
                
dlz-0.4.0       Fifth release.  A memory leak was discovered and fixed.  The
                DLZ core lost 2 bytes each time Bind responded to a DNS query.
                This bug was in the DLZ core, so it affected any system using
                DLZ no matter what driver you were using.  The memory leak was
                VERY slow requiring many thousands of queries before even a
                small change in memory was detected.  The DLZ core now seems
                to be rock solid and not leak any memory even after many
                thousands of queries.
                
                Added Berkeley DB driver.  Read the Berkeley DB docs for
                specifics of how to use this driver.
                
                Added DLZ Berkeley DB database utility.  This utility allows
                for basic operations on the Berkeley DB used by DLZ while
                Bind-dlz is running.  Read the Berkeley DB docs for specifics
                of how to use this utility.

dlz-0.3.0       Fourth release.  DLZ was too aggressive in "cleaning up" when a
                driver failed to start properly.  This resulted in named
                crashing instead of stopping gracefully when named was shutdown
                via "rndc stop".  This bug had no adverse effects while named
                was running.  This bug has been fixed.
                
                The SDLZ interface now searches for a "wild card" hostname if
                it has failed to find an exact hostname match.  I originally
                thought Bind would do this automatically with any database
                (as it does for it's internal DB).  I was mistaken.  All DLZ
                drivers built using the SDLZ interface now support
                "wild card", "*" hostname searches.
                
                Added MySQL driver.  Read the MySQL driver docs for specifics
                of how to use this driver and its limitations.
                
                Added File System driver.  Read the file system driver docs
                for specifics of how to use this driver.
                
dlz-0.2.1       Third release.  Updated patch for new version of Bind. Previous
                patches were for Bind 9.2.0.  This patch is for Bind 9.2.1.
                No new functionality in this release.  Only 1 minor code change
                in query.c was required to allow bind-dlz to operate properly.
                This change was required because of code added to Bind 9.2.1.

dlz-0.2.0       Second release.  Expanded the core code for DLZ and SDLZ APIs.
                Added capabilities to support zone transfers.  AXFR and IXFR
                queries are supported, but the response is always a full AXFR
                response.  Minor bug fixes and enhancements were made in
                various parts of the DLZ and SDLZ code.  Added extremely basic
                support for zone transfer to the dlz_stub driver.
                
                Major new feature is a complete PostgreSQL driver for the SDLZ
                API.  This driver allows for a great amount of flexibility
                in the way DNS data is stored in the database.  All
                capabilities (including zone transfer) of the (S)DLZ API are
                used and made available by this driver.

dlz-0.1.0       First release.  Includes core code for DLZ API and SDLZ API.
                This release of the API's support standard domain name
                resolution queries.  Dynamic DNS update, and zone transfer
                queries are not supported.  Also includes a very basic driver
                called dlz_stub.  The dlz_stub driver is useful for testing
                the DLZ and SDLZ code and demonstrating how to write a
                very simple SDLZ driver.

