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.