release
[hcoop/zz_old/debian/djbdns.git] / CHANGES
CommitLineData
dc0d77d7
CE
119991129
2 version: dnscache 0.50, alpha. not released yet.
319991223
4 version: dnscache 0.60, alpha.
519991224
6 internal: dns_sortip() takes length argument.
7 api: dns_ip4() sorts output. currently this means just random.
8 api: added socket_bind4_reuse(). removed reuse from bind4().
9 ui: used bind4_reuse() for port 53, bind4() otherwise.
10 internal: eliminated some unused variables.
11 internal: prototypes in cdb.h, cdbmake.h, cdbmss.h.
12 internal: prototypes in case.h, env.h, fmt.h, scan.h, str.h.
13 internal: prototypes in stralloc.h.
14 internal: prototypes in error.h, strerr.h.
15 internal: prototypes in ndelay.h, open.h, seek.h.
16 internal: prototypes in sgetopt.h, subgetopt.h.
17 internal: prototypes in tai.h, taia.h.
18 internal: added some missing declarations.
19 bug: query.c checked void response_finishanswer() return code.
20 impact: cached responses were dropped on systems that
21 didn't follow the traditional C return behavior. fix:
22 obvious. tnx Giles Lean.
23 internal: switched from taia_addsec() to taia_uint().
24 api: switched to uint16 for socket_* port numbers.
25 internal: integrated uint16_pack() and friends.
26 ui: dnscache allows (recursive) queries from port 53.
27 ui: dnscache has 10-second idle timer on TCP read/write.
28 ui: dnscache limits itself to 20 concurrent TCP connections.
29 internal: moved dns_domain_fromdot() to separate file.
30 ui: supported \X, \1, \12, \123 in dns_domain_fromdot().
31 ui: supported \123 in dns_domain_todot_append().
32 version: dnscache 0.61, alpha.
3319991230
34 api: added dns_ip4_qualify().
35 api: added dns_resolvconfrewrite().
36 ui: added dnsipq.
37 api: dns_ip4() checks for (strings of) IP addresses.
3820000106
39 port: Solaris needs /dev/udp, not just /dev/tcp. impact:
40 dnscache and tinydns would stop immediately under
41 Solaris. fix: create /dev/udp in configure; and have
42 tinydns create socket before chroot. tnx Louis Theran.
43 internal: moved dns_name4_domain() to dns_nd.c.
44 ui: tinydns no longer excludes screwy queries from its log.
45 internal: moved respond() to tdlookup.c under new name.
46 ui: added tinydns-get.
47 ui: rewrote tinydns-data for new data format.
48 internal: expanded rts to cover tinydns-data using tinydns-get.
4920000107
50 ui: tinydns-data allows arbitrary case in domain names.
51 ui: dnscache supports preconfigured servers for non-root
52 domains.
53 ui: dnscache uses textual addresses for preconfigured servers.
5420000108
55 ui: tinydns-data excludes the additional and authority sections
56 if doing so helps meet the 512-byte UDP limit.
57 version: dnscache 0.70, beta.
5820000114
59 internal: in log.c, ulong() now prints a uint64.
60 internal: added cache_motion, query_count, log_stats.
61 ui: dnscache now prints queries/motion stats after typical
62 response packets.
6320000115
64 internal: added droproot.c. used in tinydns and dnscache.
65 internal: moved tinydns log() to qlog.c under new name.
66 ui: added walldns, configure-wd.
67 ui: configure-td now creates an empty root/data.
68 ui: added tinydns-edit.
69 ui: configure-td now sets up root/add-{ns,childns,host,mx}.
7020000116
71 ui: renamed configure* as *-conf.
72 ui: added axfrdns, axfrdns-conf.
73 ui: added axfr-get.
74 ui: dnscache-conf 10.* or 192.168.* now sets IPSEND=0.0.0.0.
7520000117
76 ui: added pickdns, pickdns-conf, pickdns-data.
77 version: dnscache 0.75, beta.
7820000118
79 internal: address* -> address_* in pickdns-data.c.
80 internal: start writing cdb earlier in pickdns-data.c.
81 internal: keep track of namelen in pickdns-data.c.
82 ui: added client-location variability to pickdns, pickdns-data.
83 ui: qlog logs short packets.
84 ui: qlog logs header if RD or other unusual bits are set.
85 ui: qlog logs non-Internet classes.
86 api: dns_domain_todot_append() -> dns_domain_todot_cat().
87 ui: axfr-get prints A records more nicely. tnx Russ Nelson.
88 ui: tinydns, pickdns, and walldns respond REFUSED to multiple
89 queries, strange classes, and strange header bits.
90 pickdns and walldns also respond REFUSED to unrecognized
91 domain names.
9220000120
93 ui: dns_resolvconfip() and dns_resolvconfrewrite() reread after
94 10 minutes or 10000 uses.
95 ui: dns_resolvconfrewrite() treats "domain" like "search".
96 ui: dns_resolvconfrewrite() supports $LOCALDOMAIN.
97 ui: dns_resolvconfrewrite() supports gethostname().
98 api: dns_ip4_qualify() -> dns_ip4_qualify_rules(). new function
99 under the old name uses dns_resolvconfrewrite().
100 internal: cleaned up log.h.
10120000121
102 port: the gcc 2.95.2 -O2 optimizer can destroy parameters in a
103 function that calls another function with a long long
104 argument. impact: gcc 2.95.2 kills dnscache in
105 log_query(). fix: pass log_stats() inputs by reference,
106 and pass uint64's through a variable inside log.c.
107 internal: introduced x_* in axfr-get.
108 internal: more format verification in axfr-get.
109 ui: minimal Z support in tinydns-data.
110 ui: axfr-get prints Z lines.
111 ui: juggled axfr-get to support BIND 8's many-answers option.
112 ui: axfr-get prints common characters readably rather than in
113 octal. tnx Karsten Thygesen.
114 ui: install copies VERSION into .../etc.
11520000122
116 ui: dns_domain_todot_cat() now lowercases everything.
117 internal: split printrecord.c out of tinydns-get.
118 ui: added dnstrace.
11920000123
120 version: dnscache 0.76, beta.
12120000124
122 port: Solaris needs socket libraries for dnstrace. impact:
123 couldn't compile under Solaris. fix: use socket.lib.
124 tnx Karsten Thygesen.
12520000126
126 ui: dns_resolvconfip() supports $DNSCACHEIP.
127 ui: changed tinydns-get arg order.
128 internal: split printpacket.c out of tinydns-get.
129 ui: added dnsquery.
130 internal: merged case.a, fs.a, str.a, uint.a, ip4.a into byte.a.
131 internal: merged strerr.a into buffer.a.
132 internal: merged stralloc.a, getln.a into alloc.a.
133 internal: merged error.a, open.a, seek.a, ndelay.a, socket.a
134 into unix.a.
135 internal: used catulong in axfr-get.c.
136 ui: packet-parsing errors produce error_proto.
137 ui: axfr-get goes out of its way to reject wildcards.
138 internal: introduced generic-conf.c.
139 internal: upgraded timeoutread and timeoutwrite to iopause.
14020000127
141 ui: revamped details of the log formats.
142 ui: full Z support in tinydns-data.
143 ui: axfr-get accepts authority records and additional records.
144 ui: axfrdns tries to imitate BIND's handling of glue.
145 internal: expanded rts to try out the servers and *-conf.
146 ui: added rbldns.
14720000128
148 ui: increased MAXNS to 16 in query.h.
14920000129
150 version: DNScache 0.80, beta.
15120000205
152 ui: tinydns-data supports ^, for the benefit of people stuck
153 behind reverse CNAMEs. tnx Petr Novotny.
15420000206
155 ui: rbldns supports $.
156 ui: tinydns-data supports C. CNAME is overridden by NS; CNAME
157 overrides other records; no multiple CNAMEs.
158 ui: axfr-get supports C.
159 ui: axfr-get no longer rejects wildcards, except for NS.
160 internal: eliminated flagempty from tinydns-data.
161 internal: cleaned up delegation/NXDOMAIN loops in tinydns-data.
162 internal: reorganized packet_start interface in tinydns-data.
163 ui: tinydns-data supports BIND-style wildcards, except for NS.
164 version: DNScache 0.81, beta.
16520000207
166 ui: renamed dnsquery as dnsq, to eliminate name conflict with
167 Beecher dnsquery program. tnx Anand Buddhdev.
16820000208
169 ui: tinydns-edit supports add alias.
170 ui: tinydns-conf sets up root/add-alias.
17120000209
172 ui: dnscache-conf now sets IPSEND=0.0.0.0 in all cases.
173 ui: dnsq and dnstrace allow server names.
174 ui: dnsq and dnstrace allow type names.
17520000210
176 internal: response_tc() reduces len, simplifying udprespond().
177 ui: response_tc() now truncates immediately after query. this
178 should work around the Squid parsing bug reported by
179 Stuart Henderson.
18020000211
181 ui: tinydns-get allows type names.
182 ui: tinydns-data prints query name for >512 error. tnx Uwe Ohse.
183 version: DNScache 0.82, beta.
18420000212
185 ui: dns_transmit starts with loop 1 for recursive queries.
186 ui: dnscache tries to allocate 128K of incoming UDP buffer
187 space. tnx Jeremy Hansen.
18820000213
189 ui: tinydns tries to allocate 64K of incoming UDP buffer space.
190 internal: renamed response_*answer as response_r*.
191 internal: expanded response_rfinish to allow au and ar.
192 internal: expanded response_rstart to allow any ttl.
193 internal: rewrote tinydns-data, tinydns, tinydns-get, axfrdns
194 for compact new data.cdb format. a few ui effects: empty
195 nodes produce NXDOMAIN; wildcards affect empty nodes.
196 ui: response_addname() tries more extensive compression.
19720000215
198 ui: tinydns-edit takes fn arguments. tnx Jason R. Mastaler.
19920000218
200 internal: upgraded to new cdb library.
201 internal: added globalip().
202 ui: dnscache assigns IP addresses to dotted-decimal domain
203 names in canonical form.
204 internal: merged handling of C and ^ in tinydns-data.
205 port: FreeBSD 3.4-RELEASE poll() doesn't think that regular
206 files are readable. impact: under FreeBSD 3.4-RELEASE,
207 dnsfilter hangs waiting to read from regular files. tnx
208 Kenji Rikitake. fix: check for this bug in trypoll.c.
20920000219
210 ui: tinydns-data supports time-to-die.
211 ui: changed home directory from /usr/local/dnscache to
212 /usr/local; moved @ from home/etc to home/etc/dnscache.
213 internal: reorganized response.c.
21420000220
215 ui: tinydns-data allows omitted numeric fields in Z lines. tnx
216 Timothy L. Mayo.
217 version: DNScache 0.85, beta.
21820000222
219 ui: dns_transmit_get() pauses after server failure, if udploop
220 is 2.
221 internal: sped up name handling in response.c.
22220000223
223 ui: dnscache ignores some garbage in queries: AA, !RD, RA, Z,
224 RCODE, AN, AU, AR. (note that responses still say RD.)
225 this allows bogus queries from Ultrix versions of BIND.
226 internal: split dd.c out of query.c.
227 internal: split server.c out of tinydns.
228 internal: rewrote walldns, pickdns, rbldns to use server.c.
229 ui: server.c allows some garbage in queries: RA, Z, RCODE, AN,
230 AU, AR.
231 ui: axfrdns logs packets.
232 ui: walldns supports dotted-decimal IP addresses.
23320000224
234 ui: revamped qlog, again.
235 ui: better error message in dnscache-conf.c. tnx Chris Johnson.
23620000225
237 version: DNScache 0.90, gamma.
23820000226
239 internal: dnscache-conf sets up dnscache/run to avoid env. tnx
240 Chris Cappuccio.
24120000227
242 ui: tinydns-data uses server name instead of a.ns.domain for
243 automatic primary in SOA. tnx Frank Tegtmeyer.
24420000228
245 bug: axfrdns doesn't set aa bit in responses. impact: named-xfer
246 refuses to do zone transfers from axfrdns. fix: set aa
247 bit. tnx Peter Hunter.
248 ui: server.c now accepts packets from low ports. sigh.
24920000229
250 version: DNScache 0.91, gamma.
25120000307
252 internal: switched from slurp to openreadclose.
25320000308
254 ui: dns_transmit_get() pauses after recv() failure (such as
255 connection-refused), if udploop is 2.
256 ui: tinydns-data uses refresh 16384, retry 2048, expire 1048576.
257 tnx Frank Tegtmeyer.
258 version: DNScache 0.92, gamma.
25920000314
260 portability problem: the poll() emulation in RedHat 5.1 doesn't
261 clear revents when select() returns 0. tnx Petr Novotny.
262 impact: dns_transmit_get() never times out;
263 dns_resolve() busy-loops. fix: clear revents before
264 poll().
26520000315
266 ui: axfr-get grabs zones when serials drop. tnx Frank Tegtmeyer.
267 version: DNScache 0.93, gamma.
26820000323
269 ui: dns_rcip() accepts 0.0.0.0 in /etc/resolv.conf as 127.0.0.1.
270 tnx Chris Saia.
27120000325
272 version: DNScache 1.00.
27320000914
274 ui: axfr-get decodes PTR. tnx to various people.
275 ui: added dnsqr.
27620000915
277 portability problem: on some buggy kernels, accept() fails to
278 copy O_NONBLOCK. tnx Pavel Kankovsky. impact: with these
279 kernels, dnscache hangs if a TCP connection times out.
280 fix: ndelay_on() after accept().
281 ui: dnscache discards non-recursive queries.
282 ui: *-conf use envdir in */run.
283 internal: reorganized seed_addtime() calls in dnscache-conf.
284 ui: tinydns-data prohibits PTR in generic records.
28520000917
286 ui: dns_transmit_get() does not pause after most recv() errors.
287 still pauses after connection-refused when udploop is 2.
288 version: djbdns 1.01.
28920000922
290 portability problem: Linux distributions use bash as /bin/sh;
291 bash destroys $UID. dorks. impact: dnscache and axfrdns
292 run as root. fix: envdir, then sh, then envuidgid. but
293 /bin/sh really has to stop polluting the environment.
29420000923
295 ui: install /etc/dnsroots.global. dnscache-conf tries
296 dnsroots.local, then dnsroots.global.
297 ui: no longer install home/etc/dnscache.
298 version: djbdns 1.02.
29920001224
300 ui: new dnstrace output format.
301 ui: dnstrace shows all servers providing each ns/a line.
302 ui: added dnstracesort.
30320001225
304 internal: response_rstart() and response_cname() use uint32 ttl.
305 internal: added response_hidettl().
306 internal: cache_get() returns ttl.
307 internal: dnscache keeps track of ttls for aliases.
308 ui: dnscache returns ttl unless $HIDETTL is set.
309 ui: dnscache returns ttl 655360 for localhost et al.
31020001226
311 ui: dnscache supports $FORWARDONLY. tnx to several people for
312 the suggestion. tnx Dan Peterson for sample code.
313 ui: dnscache now logs sequential query numbers, not indices.
314 internal: revamped dnscache to separate udp from tcp.
315 ui: dnscache reports uactive, tactive separately.
316 ui: dnscache reports tcpopen/tcpclose by port and ip.
317 ui: dnscache artificially times out oldest UDP query if UDP
318 table is full, and oldest TCP connection if TCP table is
319 full.
320 ui: dnscache reports broken pipe when a TCP client sends FIN.
32120001228
322 ui: dnstrace supports dd.
323 ui: dnscache logs stats when it handles 1.0.0.127.in-addr.arpa.
324 ui: pickdns actively refuses queries for unknown types.
325 ui: pickdns responds to MX queries. tnx Mike Batchelor.
326 internal: added const at various places.
327 internal: removed some unused variables.
328 internal: used time_t in tai_now.c.
329 internal: used stdlib.h in alloc.c.
330 api: split dns_domain_suffix() into suffix(), suffixpos().
331 internal: switched to buffer_unix*.
332 internal: included unistd.h for various declarations.
33320010103
334 ui: increased maximum data size from 512 bytes to 32767 bytes in
335 tinydns, tinydns-get, axfrdns. allows big TXT records.
336 ui: dnsmx reformats name when it prints an artificial 0 MX.
33720010105
338 ui: increased MAXLEVEL to 5. the Internet is becoming more
339 glueless every day.
34020010106
341 version: djbdns 1.03.
34220010113
343 ui: increased MAXALIAS to 16.
344 ui: dnscache no longer caches SERVFAIL. per-ip is obviously the
345 way to go.
346 ui: tinydns et al. now respond FORMERR to non-Internet-class
347 queries.
348 ui: tdlookup now returns A records in a random order in the
349 answer section, and truncates the list after 8 records.
350 ui: tinydns-data skips lines starting -.
35120010114
352 internal: documented the tinydns data.cdb format.
353 ui: tinydns-data, tinydns, tinydns-get, axfrdns support client
354 differentiation.
355 ui: dnsqr aborts if it is given an extra argument.
35620010117
357 ui: dnstracesort removes duplicate lines.
358 ui: dnstracesort prints glue.
359 ui: dnstrace uses a ``start'' IP address for the root glue.
36020010121
361 version: djbdns 1.04.
36220010206
363 internal: response_query() takes a class argument.
364 internal: query_start() takes a class argument.
365 internal: packetquery() takes a class argument.
366 ui: tinydns et al., axfrdns, and dnscache repeat qclass * in
367 response to bogus * queries. tnx Mike Batchelor.
368 ui: axfrdns rejects queries for weird classes.
369 ui: axfrdns uses query ID instead of ID 0 in the series of AXFR
370 response messages between the SOAs, to support the AXFR
371 client in BIND 9.
372 ui: axfrdns sets AA in the series of AXFR response messages.
37320010211
374 ui: servers print starting message.
375 internal: some respond() declarations.
376 version: djbdns 1.05.