Revision history for Perl module DNS::Unbound 0.29 Sat, 12 Mar 2022 - Reject NULs in input strings where relevant. - Tweak memory handling. This hopefully will stop the random (unreproducible?) segfaults seen in occasional CPAN Testers runs. - Stop needlessly exporting non-XS C functions from the XS module. - Tweak documentation; add reference to alternative implementation. - Fix tests on 5.8. It really shouldn’t matter since X::Tiny requires 5.10, but some CPAN installers happily install X::Tiny anyway when installing DNS::Unbound on 5.8. It’s an easy enough fix, though, and it usefully tests the object properties of the thrown errors. So hey. - Fix install with old libunbound (e.g., 1.4.17). - Require a new-ish X::Tiny (since tests assume it). - Fix trivial warning in Makefile.PL. - Make feature-detection logic mimic build configuration better. - Test suite is now much “quieter”. 0.28 Wed, 15 Dec 2021 - Make all Unbound-created errors X::Tiny::Base instances. - Import error codes from unbound.h. - Add more tests. 0.27 Tue, 23 Nov 2021 - BUG FIX: Close dup()ed file descriptors when setting debugout() away from them. - UB_* constants are now defined and documented. - Add test coverage metrics. - Add Cygwin CI. - Tweak documentation verbiage to clarify why this moduule exists. 0.26 Tue, 10 Aug 2021 - Fix t/mojo.t to ignore spurious warning from some older Mojo versions. 0.25 Mon, 9 Aug 2021 - BUG FIX: Make the C code not depend on (pure) Perl for memory handling. This intends to fix some longstanding (and hard-to-reproduce) memory-handling nits, but it’s also just much cleaner besides. - BUG FIX: We now honour $Config{'ccflags'} when building the module. (This broke at some point on 32-bit RaspiOS.) - BUG FIX: Previously we set ub_ctx_debugout() to STDERR immediately before destroying the Unbound instance. This worked around a bug in libunbound, but it also seems occasionally to cause “leftover” log messages then to go to STDERR. We now apply a different workaround: dup() the file descriptor when calling debugout(), which obviates the need to set it back to STDERR (since this is now libunbound’s very own file descriptor). - BUG FIX: DNS::Unbound::Mojo no longer tight-loops. - BUG FIX: DNS::Unbound::Mojo now removes itself from Mojo’s reactor at DESTROY time; previously it neglected this cleanup step. - Fix t/load.t: - The test now runs to completion rather than silently failing. - The test now accommodates old Unbounds that lack `ttl`. - Long TTLs. Unbound’s default was 86400, so responses that had longer TTLs caused a conflict between Net::DNS’s parse and Unbound’s response. - Objects now warn() on DESTROY at global destruction. This helps to identify memory leaks. (It also entails a higher Promise::ES6 version dependency.) - Internal style improvements. - All tests now fail on warnings. 0.24 Tue, 27 Jul 2021 - BUG FIX: Several memory leaks from errantly-high reference counts. - Various tweaks for efficiency: pre-extend arrays, etc. 0.23 Tue, 1 Jun 2021 - Make unbound_version() a regular XSUB rather than a constant. This avoids the need to recompile perlcc-compiled binaries when updating Unbound. 0.22 Thu, 25 Feb 2021 - BUG FIX: Use byte representation to send strings to C. This fixes encoding problems with non-ASCII strings. 0.21 Sat, 9 Jan 2021 - Fix author test resolvconf.t after default port changed from 53 to 5353 in Net::DNS::Nameserver version 1.28. - Special classes for AnyEvent, IO::Async, and Mojolicious are added. - Spruce up typemap’s mismatch error reporting. - Internal improvements. 0.20 Mon, 3 Aug 2020 - BUG FIX: Don’t free the unbound context if its reference is already gone. - BUG FIX: Use the “real” finally() rather than wrapping then() (badly). - Trivial simplification to XS code. 0.19 Tue, 18 Feb 2020 - Fix compatibility with old libunbounds that didn’t include ub_result.ttl. - Forgo version detection in favor of feature detection. - Fail Makefile.PL on systems where libunbound or its header is unavailable. - Make tests output UTF-8. - Fix a couple test warnings on old perls. 0.18 Fri, 31 Jan 2020 - Skip unreliable resolvconf test when installing the module. 0.17 Fri, 31 Jan 2020 - BREAKING CHANGE: DNSSEC functions (introduced in 0.15) now throw errors and return $self. - Add hosts() and resolvconf() methods. - The Promise::ES6 async query implementation is now always loaded. 0.16 Sun, 5 Jan 2020 - Fix use with old libunbound versions. - (undocumented) experimental support for promise engines besides Promise::ES6 0.15 Thu, 2 Jan 2020 - Add DNSSEC setup (i.e., trust anchor) methods. 0.14 - Thu, 14 Nov 2019 - Rewrite AsyncQuery.pm to avoid Promise::ES6 internals. 0.13 - Fri, 8 Nov 2019 - BUG FIX: Accommodate having AsyncQuery.pm loaded at compile time. - Add answer_packet() accessor to DNS::Unbound::Result. - Deprecate to_net_dns_rrs(). - Add examples to demonstrate interaction with AnyEvent and IO::Async. 0.12 - Sat, 14 Sep 2019 - Rename count_pending_promises() to count_pending_queries(). 0.11 - Sat, 14 Sep 2019 - Fix memory leak when an asynchronous query is canceled. - Add count_pending_promises() method. 0.10 - Mon, 26 Aug 2019 - Query results are now represented as instances of DNS::Unbound::Result rather than simple hash references. Existing implementations should continue to work. - DNS::Unbound::Result’s method to convert a query result to Net::DNS::RR instances obviates the need to decode query results manually. The decode_name() and decode_character_strings() functions will be retained as a convenience for contexts where they’re useful. - resolve() and resolve_async() now fall back on Net::DNS::Parameters to parse any unrecognized query types. 0.09 - Sat, 27 July 2019 - Remove dependency on recent ExtUtils::MakeMaker version. - Split DNS::Unbound::AsyncQuery off to a separate file; add POD & test. - Beef up documentation. 0.08 - Thu, 13 June 2019 - Tweak verbiage (no code changes) 0.07 - Sun, 9 June 2019 - Add error checking for debugout(). - Work around libunbound debugout bug (https://github.com/NLnetLabs/unbound/issues/39) 0.06 - Fri, 7 June 2019 - Add debug control support. 0.05 - Fri, 7 June 2019 - Add asynchronous query support. - Fix instantiation of ResolveError exception. 0.04 - Sun, 19 May 2019 - BUG FIX: Prevent excess destruction of context struct. - OPTIMIZATION: Store ints as IV rather than NV. 0.03 - Thu, 16 May 2019 - Fix bugtracker in Makefile.PL. 0.02 - Mon, 25 March 2019 - Resolve configure_requires issue. - Fix dangling “1;” in POD. 0.01 - Thu, 21 March 2019 - Initial release