NEWS User-visible changes in udns library. Recent changes on top. 0.4 (Jan 2014) - bugfix: fix a bug in new list code introduced in 0.3 - portability: use $(LD)/$(LDFLAGS)/$(LIBS) 0.3 (Jan 2014) - bugfix: refactor double-linked list implementation in udns_resolver.c (internal to the library) to be more strict-aliasing-friendly, because old code were miscompiled by gcc. - bugfix: forgotten strdup() in rblcheck 0.2 (Dec 2011) - bugfix: SRV RR handling: fix domain name parsing and crash in case if no port is specified on input for SRV record query - (trivial api) dns_set_opts() now returns number of unrecognized options instead of always returning 0 - dnsget: combine -f and -o options in dnsget (and stop documenting -f), and report unknown/invalid -o options (and error out) - dnsget: pretty-print SSHFP RRs 0.1 (Dec 2010) - bugfix: udns_new(old) - when actually cloning another context - makes the new context referencing memory from old, which leads to crashes when old is modified later - use random queue IDs (the 16bit qID) in queries instead of sequentional ones, based on simple pseudo-random RNG by Bob Jenkins (udns_jran.[ch]). Some people believe that this improves security (CVE-2008-1447). I'm still not convinced (see comments in udns_resolver.c), but it isn't difficult to add after all. - deprecate dns_random16() function which was declared in udns.h (not anymore) but never documented. In order to keep ABI compatible it is still exported. - library has a way now to set query flags (DNS_SET_DO; DNS_SET_CD). - dnsget now prints non-printable chars in all strings in DNS RRs using decimal escape sequences (\%03u) instead of hexadecimal (\%02x) when before - other DNS software does it like this. - recognize a few more record types in dnsget, notable some DNSSEC RRs; add -f option for dnsget to set query flags. - udns is not a Debian native package anymore (was a wrong idea) 0.0.9 (16 Jan 2007) - incompat: minor API changes in dns_init() &friends. dns_init() now requires extra `struct dns_ctx *' argument. Not bumped soversion yet - I only expect one "release" with this change. - many small bugfixes, here and there - more robust FORMERR replies handling - not only such replies are now recognized, but udns retries queries without EDNS0 extensions if tried with, but server reported FORMERR - portability changes, udns now includes getopt() implementation fo the systems lacking it (mostly windows), and dns_ntop()&dns_pton(), which are either just wrappers for system functions or reimplementations. - build is now based on autoconf-like configuration - NAPTR (RFC3403) RR decoding support - new file NOTES which complements TODO somewhat, and includes some important shortcomings - many internal cleanups, including some preparations for better error recovery, security and robustness (and thus API changes) - removed some #defines which are now unused (like DNS_MAXSRCH) - changed WIN32 to WINDOWS everywhere in preprocessor tests, to be able to build it on win64 as well 0.0.8 (12 Sep 2005) - added SRV records (rfc2782) parsing, thanks to Thadeu Lima de Souza Cascardo for implementation. - bugfixes: o use uninitialized value when no reply, library died with assertion: assert((status < 0 && result == 0) || (status >= 0 && result != 0)). o on some OSes, struct sockaddr_in has additional fields, so memcmp'ing two sockaddresses does not work. - rblcheck(.1) 0.0.7 (20 Apr 2005) - dnsget.1 manpage and several enhancements to dnsget. - allow nameserver names for -n option of dnsget. - API change: all dns_submit*() routines now does not expect last `now' argument, since requests aren't sent immediately anymore. - API change: different application timer callback mechanism. Udns now uses single per-context timer instead of per-query. - don't assume DNS replies only contain backward DN pointers, allow forward pointers too. Change parsing API. - debianize 0.0.6 (08 Apr 2005) - use double sorted list for requests (sorted by deadline). This should significantly speed up timeout processing for large number of requests. - changed debugging interface, so it is finally useable (still not documented). - dnsget routine is now Officially Useable, and sometimes even more useable than `host' from BIND distribution (and sometimes not - dnsget does not have -C option and TCP mode) - Debian packaging in debian/ -- udns is now maintained as a native Debian package. - alot (and I really mean alot) of code cleanups all over.