Source tarball available at: https://github.com/gdnsd/gdnsd/releases/
2.2.0 - 2014-12-30
*** Bugfixes:
* fix for zero-length configuration strings causing assertion failure
in developer-debug builds
* fix for crash/assertfail if admin_state file contents are
defined by the user as an array instead of a hash
* restored the logging of monitored state transitions, which was
omitted in earlier 2.x releases but present in 1.x.
*** Features:
* If the admin_state file exists but doesn't parse correctly, that will
now be a fatal error for startup or checkconf. Previously the error was
logged but startup/checkconf was successful.
* plugin_geoip: Support for MaxMind GeoIP2 databases. Requires
libmaxminddb at build time to enable, which is a new optional build
dependency.
* plugin_geoip: Added v6->v4 translations for 64:ff9b::/96, the 'Well
Known Prefix' from RFC6052 used for e.g. NAT64.
* The http stats server now supports atomic flush-after-fetch behavior if
given the query argument '?f=1', so that the stat counts are 'since last
flush' instead of 'since startup'. The flushed state is shared between
all clients using the argument. Does not affect stats for clients not
using the argument.
* New optional compile-time dependency on libunwind. If available,
dmn_assert() in developer builds and certain fatal errors in production
builds will produce stack backtraces before terminating the process.
* Security is a little tighter by default now on Linux due to prctl()
PR_SET_NO_NEW_PRIVS, which may interfere with existing plugin_extmon
configurations if they're running privileged binaries (set[ug]id,
capabilities). If this interferes with your configuration, it can be
disabled via the global option 'weaker_security => true'.
* The shipped gdnsd.service systemd unit file now defaults to more secure
settings (e.g. private tmp, no homedir access, readonly system fs, no
device access, etc). These can be overridden by the user without
editing the defaults in e.g. /etc/systemd/system/gdnsd.d/custom.conf.
*** Other:
* The range, default, and effects of the zones_rfc1035_quiesce option
have changed. The zones_rfc1035_min_quiesce option is now deprecated
and useless and will generate a harmless warning on startup. This
shouldn't be a pragmatic issue for most users.
* Related to the above: the code no longer makes heuristic attempts to
determine the effective filesystem timestamp accuracy of the zones
directory on startup by writing temporary test files to it.
* A warning is now generated if the 'zones_rfc1035_auto' option is not set
explicitly, because the default value is likely to change from 'true' to
'false' in a future version.
* The 'listen => scan' feature is now deprecated, but continues to
function and issues a deprecation warning when used. Please either
migrate to 'listen => any' (the current default) or file a bug
indicating why that doesn't work for your platform/use-case!
* Ragel 6.x is now a hard build dependency for all builds. Previously it
was required for building from git, but not from tarballs.
* Perl version dependency has been raised from 5.8.1 to 5.10.1
* Testsuite now also requires JSON::PP (which comes with Perl 5.13.9+, but
may need to be installed for older ones).
* sysd/gdnsd.service is now always generated in the build tree from the
template, even if --without-systemdsystemunitdir and/or no systemd
detected at all, to give more options for how packagers handle things.
* Minor plugin API updates (most would just need a recompile).
* A number of less-visible refactorings for quality and/or performance.