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