blob: c9973cc5baa17a6adbfbaf926f04472165a5833c [file] [log] [blame]
Simon Kelley7622fc02009-06-04 20:32:05 +01001release 0.4 - initial public release
2
3release 0.5 - added caching, removed compiler warning on linux PPC
4
5release 0.6 - TCP handling: close socket and return to connect state if we
6 can't read the first byte. This corrects a problem seen very
7 occasionally where dnsmasq would loop using all available CPU.
8
9 Added a patch from Cris Bailiff <c.bailiff@e-secure.com.au>
10 to set SO_REUSEADDR on the tcp socket which stops problems when
11 dnsmasq is restarted and old connections still exist.
12
13 Stopped claiming in doc.html that smail is the default Debian
14 mailer, since it isn't any longer. (Pointed out by
15 David Karlin <dkarlin@coloradomtn.edu>)
16
17release 0.7 Create a pidfile at /var/run/dnsmasq.pid
18
19 Extensive armouring against "poison packets" courtesy of
20 Thomas Moestl <tmoestl@gmx.net>
21
22 Set sockaddr.sa_family on outgoing address, patch from
23 David Symonds <xoxus@usa.net>
24
25 Patch to clear cache on SIGHUP
26 from Jason L. Wagner <nialscorva@yahoo.com>
27
28 Fix bad bug resulting from not initialising value-result
29 address-length parameter to recvfrom() and accept() - it
30 worked by luck before!
31
32release 0.95 Major rewrite: remove calls to gethostbyname() and talk
33 directly to the upstream server(s) instead.
34 This has many advantages.
35 (1) Dnsmasq no longer blocks during long lookups.
36 (2) All query types are handled now, (eg MX) not just internet
37 address queries. Addresses are cached, all other
38 queries are forwarded directly.
39 (3) Time-to-live data from upstream server is read and
40 used by dnsmasq to purge entries from the cache.
41 (4) /etc/hosts is still read and its contents served (unless
42 the -h option is given).
43 (5) Dnsmasq can get its upstream servers from
44 a file other than /etc/resolv.conf (-r option) this allows
45 dnsmasq to serve names to the machine it is running
46 on (put nameserver 127.0.0.1 in /etc/resolv.conf and
47 give dnsmasq the option -r /etc/resolv.dnsmasq)
48 (6) Dnsmasq will re-read its servers if the
49 modification time of resolv.conf changes. Along with
50 4 above this allows nameservers to be set
51 automatically by ppp or dhcp.
52
53 A really clever NAT-like technique allows the daemon to have lots
54 of queries in progress, but still remain very lightweight.
55 Dnsmasq has a small footprint and normally doesn't allocate
56 any more memory after start-up. The NAT-like forwarding was
57 inspired by a suggestion from Eli Chen <eli@routefree.com>
58
59release 0.96 Fixed embarrasing thinko in cache linked-list code.
60
61release 0.98 Some enhancements and bug-fixes.
62 Thanks to "Denis Carre" <denis.carre@laposte.net> and Martin
63 Otte <otte@essc.psu.edu>
64
65 (1) Dnsmasq now always sets the IP source address
66 of its replies correctly. Older versions would not always
67 do this on multi-homed and IP aliased hosts, which violates
68 the RFC.
69 (2) Dnsmasq no longer crashes if a server loop is created
70 (ie dnsmasq is told to use itself as an upstream server.)
71 Now it just logs the problem and doesn't use the bad
72 server address.
73 (3) Dnsmasq should now forward (but not cache) inverse queries
74 and server status queries; this feature has not been tested.
75 (4) Don't write the pid file when in non-daemon mode.
76 (5) Create the pid file mode 644, rather then 666 (!).
77 (6) Generate queries to upstream nameservers with unpredictable
78 ids, to thwart DNS spoofers.
79 (7) Dnsmasq no longer forwards queries when the
80 "recursion desired" bit is not set in the header.
81 (8) Fixed getopt code to work on compliers with unsigned char.
82
83release 0.991 Added -b flag: when set causes dnsmasq to always answer
84 reverse queries on the RFC 1918 private IP space itself and
85 never forward them to an upstream server. If the name is not in
86 /etc/hosts, dnsmasq replies with the dotted-quad address.
87
88 Fixed a bug which stopped dnsmasq working on a box with
89 two or more interfaces with the same IP address.
90
91 Fixed cacheing of CNAMEs. Previously, a CNAME which pointed
92 to a name with many A records would not have all the addresses
93 returned when being answered from the cache.
94
95 Thanks to "Steve Hardy" <s.a.hardy@connectux.com> for his input
96 on these fixes.
97
98 Fixed race which could cause dnsmasq to miss the second of
99 two closely-spaced updates of resolv.conf (Thanks to Eli Chen
100 for pointing this out.)
101
102 Fixed a bug which could cause dnsmasq to fail to cache some
103 dns names.
104
105release 0.992 Small change to memory allocation so that names in /etc/hosts
106 don't use cache slots. Also make "-c 0" flag meaningfully
107 disable caching completely.
108
109release 0.993 Return only the first (canonical) name from an entry in
110 /etc/hosts as reply to reverse query.
111
112 Handle wildcard queries for names/addresses in /etc/hosts
113 this is mainly to allow reverse lookups by dig to succeed.
114 (Bug reported by Simon J. Rowe" <srowe@mose.org.uk>)
115
116 Subtle change to the logic which selects which of multiple
117 upstream servers we send queries to. This fixes a problem
118 where dnsmasq continuously sends queries to a server which
119 is returning error codes and ignores one which is working.
120
121release 0.994 Fixed bug which broke lookup of names in /etc/hosts
122 which have upper-case letters in them. Thanks for Joao Clemente
123 for spotting that one.
124
125 Output cache statistics on receipt of SIGUSR1. These go
126 to syslog except in debug (-d) mode, when a complete cache
127 dump goes to stdout. Suggestion from Joao Clemente, code
128 based in John Volpe's.
129
130 Accept GNU long options on the command line. Code from
131 John Volpe for this.
132
133 Split source code into multiple files and produced
134 a proper makefile.
135
136 Included code from John Volpe to parse dhcp.leases file
137 written by ISC dhcpd. The hostnames in the leases file are
138 added to the cache and updated as dhcpd updates the
139 leases file. The code has been heavily re-worked by me,
140 so any bugs are probably mine.
141
142release 0.995 Small tidy-ups to signal handling and cache code.
143
144release 0.996 Added negative caching: If dnsmasq gets a "no such domain" reply
145 from an upstream nameserver, it will cache that information
146 for a time specified by the SOA RR in the reply. See RFC 2308
147 for details. This is useful with resolver libraries
148 which append assorted suffices to non-FQDN in an attempt to
149 resolve them, causing useless cache misses.
150
151 Added -i flag, which restricts dnsmasq to offering name service
152 only on specified interfaces.
153
154release 0.997 Deleted INSTALL script and added "install" target to makefile.
155
156 Stopped distributing binaries in the tarball to avoid
157 libc version clashes.
158
159 Fixed interface detection code to
160 remove spurious startup errors in rare circumstances.
161
162 Dnsmasq now changes its uid, irrevocably, to nobody after
163 startup for security reasons. Thanks to Peter Bailey for
164 this patch.
165
166 Cope with infinite DHCP leases. Patch thanks to
167 Yaacov Akiba Slama.
168
169 Added rpm control files to .tar.gz distribution. Thanks to
170 Peter Baldwin at ClarkConnect for those.
171
172 Improved startup script for rpms. Thanks to Yaacov Akiba Slama.
173
174release 1.0 Stable release: dnsmasq is now considered feature-complete
175 and stable.
176
177release 1.1 Added --user argument to allow user to change to
178 a different userid.
179
180 Added --mx-target argument to allow mail to be delivered
181 away from the gateway machine running dnsmasq.
182
183 Fixed highly obscure bug with wildcard queries for
184 DHCP lease derived names.
185
186 Moved manpage from section 1 to section 8.
187
188 Added --no-poll option.
189 Added Suse-rpm support.
190 Thanks to Joerg Mayer for the last two.
191
192release 1.2 Added IPv6 DNS record support. AAAA records are cached
193 and read from /etc/hosts. Reverse-lookups in the
194 ip6.int and ip6.arpa domains are suppored. Dnsmasq can
195 talk to upstream servers via IPv6 if it finds IP6 addresses
196 in /etc/resolv.conf and it offers DNS service automatically
197 if IPv6 support is present in the kernel.
198
199 Extended negative caching to NODATA replies.
200
201 Re-vamped CNAME processing to cope with RFC 2317's use of
202 CNAMES to PTR RRs in CIDR.
203
204 Added config.h and a couple of symbols to aid
205 compilation on non-linux systems.
206
207release 1.3 Some versions of the Linux kernel return EINVAL rather
208 then ENPROTONOSUPPORT when IPv6 is not available,
209 causing dnsmasq to bomb out. This release fixes that.
210 Thanks to Steve Davis for pointing this one out.
211
212 Trivial change to startup logic so that dnsmasq logs
213 its stuff and reads config files straight away on
214 starting, rather than after the first query - principle
215 of least surprise applies here.
216
217release 1.4 Fix a bug with DHPC lease parsing which broke in
218 non-UTC timezones. Thanks to Mark Wormgoor for
219 spotting and diagnosing this. Fixed versions in
220 the .spec files this time. Fixed bug in Suse startup
221 script. Thanks to Didi Niklaus for pointing this out.
222
223release 1.5 Added --filterwin2k option which stops dnsmasq from forwarding
224 "spam" queries from win2k boxes. This is useful to stop spurious
225 connections over dial-on-demand links. Thanks to Steve Hardy
226 for this code.
227
228 Clear "truncated" bit in replies we return from upstream. This
229 stops resolvers from switching to TCP, which is pointless since
230 dnsmasq doesn't support TCP. This should solve problems
231 in resolving hotmail.com domains.
232
233 Don't include getopt.h when Gnu-long-options are disabled -
234 hopefully this will allow compilation on FreeBSD.
235
236 Added the --listen-address and --pid-file flags.
237
238 Fixed a bug which caused old entries in the DHCP leases file
239 to be used in preference to current ones under certain
240 circumstances.
241
242release 1.6 If a machine gets named via DHCP and the DHCP name doesn't have
243 a domain part and domain suffix is set using the -s flag, then
244 that machine has two names with the same address, with and
245 without the domain suffix. When doing a _reverse_ lookup to
246 get the name, the "without suffix" name used to be returned,
247 now the "with suffix" one gets returned instead. This change
248 suggested by Arnold Schulz.
249
250 Fixed assorted typos in the documentation. Thanks
251 to David Kimdon.
252
253 Subtle rearrangement to the downloadable tarball, and stopped
254 distributing .debs, since dnsmasq is now an official Debian
255 package.
256
257release 1.7 Fix a problem with cache not clearing properly
258 on receipt of SIGHUP. Bug spotted by Sat Deshpande.
259
260 In group-id changing code:
261 1) Drop supplimentary groups.
262 2) Change gid before dropping root (patch from Soewono Effendi.)
263 3) Change group to "dip" if it exists, to allow access
264 to /etc/ppp/resolv.conf (suggestion from Jorg Sommer.)
265 Update docs to reflect above changes.
266
267 Other documentation changes from David Miller.
268 Added suggested script fragment for dhcpcd.exe.
269
270release 1.8 Fix unsafe use of tolower() macro - allows linking against
271 ulibc. (Patches from Soewono Effendi and Bjorn Andersson.)
272
273 Fix typo in usage string.
274
275 Added advice about RedHat PPP configuration to
276 documentation. (Thanks to C. Lee Taylor.)
277
278 Patches to fix problems on BSD systems from Marc Huber
279 and Can Erkin Acar. These add the options
280 HAVE_ARC4RANDOM and HAVE_SOCKADDR_SA_LEN to config.h.
281 Elaborated config.h - should really use autoconf.
282
283 Fix time-to-live calculation when chasing CNAMEs.
284
285 Fix use-after-free and missing initialisation bugs in
286 the cache code. (Thanks to Marc Huber.)
287
288 Builds on Solaris 9. (Thanks to Marc Huber.)
289
290release 1.9 Fixes to rpm .spec files.
291
292 Don't put expired DHCP entries into the cache only to
293 throw them away again.
294
295 Put dnsmasq on a severe memory diet: this reduces both
296 the amount of heap space used and the stack size
297 required. The difference is not really visible with
298 bloated libcs like glibc, but should dramatically reduce
299 memory requirements when linked against ulibc for use on
300 embeded routers, and that's the point really. Thanks to
301 Matthew Natalier for prompting this.
302
303 Changed debug mode (-d) so that all logging appears on
304 stderr as well as going to syslogd.
305
306 Added HAVE_IPV6 config symbol to allow compilation
307 against a libc which doesn't have IPv6 support.
308
309 Added a facility to log all queries, enabled with -q flag.
310
311 Fixed packet size checking bug in address extraction code.
312
313 Halved default cache size - 300 was way OTT in typical use.
314
315 Added self-MX function, enabled by -e flag. Thanks to
316 Lyonel Vincent for the patch.
317
318 Added HAVE_FORK config symbol and stuff to support
319 uClinux. Thanks to Matthew Natalier for uClinux stuff.
320
321release 1.10 Log warnings if resolv.conf or dhcp.leases are not
322 accessable for any reason, as suggested by Hinrich Eilts.
323
324 Fixed wrong address printing in error message about
325 no interface with address.
326
327 Updated docs and split installation instuctions into setup.html.
328
329 Fix bug in CNAME chasing code: One CNAME pointing
330 to many A records would lose A records after the
331 first. This bug was introduced in version 1.9.
332
333 Log startup failures at level Critical as well as
334 printing them to standard error.
335 Exit with return code 1 when given bad options.
336
337 Cleaned up code for no-cache operation.
338
339 Added -o option which forces dnsmasq to use to
340 upstream servers in the order they appear in /etc/resolv.conf.
341
342 Added upstream server use logging.
343
344 Log full cache dump on receipt of SIGUSR1 when query
345 logging is enabled (-q switch).
346
347 Added -S option to directly specify upstream servers and
348 added ability to direct queries for specific domains to
349 specfic servers. Suggested by Jens Vonderheide.
350
351 Upgraded random ID generation - patch from Rob Funk.
352
353 Fixed reading of domains in arguments with capital
354 letters or trailing periods.
355
356 Fixed potential SEGV when given bad options.
357
358 Read options from /etc/dnsmasq.conf if it exists.
359 Do sensible things with missing parameters, eg
360 "--resolv-file=" turns off reading /etc/resolv.conf.
361
362release 1.11 Actually implement the -R flag promised in the 1.10 man page.
363
364 Improve and rationalise the return codes in answers to
365 queries. In the case that there are no available
366 upstream servers to forward a query to, return REFUSED.
367 This makes sendmail work better on modem connected
368 systems when the modem link is down (Thanks to Roger Plant).
369 Cache and return the NXDOMAIN status of failed queries:
370 this makes the `host` command work when traversing search
371 paths (Thanks to Peter Bailey). Set the "authoritative"
372 bit in replies containing names from /etc/hosts or DHCP.
373
374 Tolerate MS-DOS style line ending codes in /etc/hosts
375 and /etc/resolv.conf, for people who copy from winsock
376 installations.
377
378 Allow specification of more than one resolv.conf file. This is
379 intended for laptops which connect via DHCP or
380 PPP. Whichever resolv.conf was updated last is used.
381
382 Allow -S flags which specify a domain but no server
383 address. This gives local domains which are never forwarded.
384
385 Add -E flag to automatically add the domain suffix to
386 names in /etc/hosts -suggestion from Phil Harman.
387
388 Always return a zero time-to-live for names derived from
389 DHCP which stops anthing else caching these
390 names. Previously the TTL was derived from the lease
391 time but that is incorrect since a lease can be given
392 up early: dnsmasq would know this but anything with the
393 name cached with long TTL would not be updated.
394
395 Extended HAVE_IPV6 config flag to allow compliation on
396 old systems which don't have modern library routines
397 like inet_ntop(). Thanks to Phil Harman for the patch.
398
399release 1.12 Allow more than one domain in server config lines and
400 make "local" a synonym for "server". This makes things
401 like "local=/localnet/thekelleys.org.uk/" legal. Allow
402 port to specified as part of server address.
403
404 Allow whole domains to have an IP address specified
405 in /etc/dnsmasq.conf. (/etc/hosts doesn't work domains).
406 address=/doubleclick.net/127.0.0.1 should catch all
407 those nasty banner ads. Inspired by a patch
408 from Daniel Gryniewicz
409
410 Log the source of each query when logging switched on.
411
412 Fix bug in script fragment for dhcpcd - thanks to Barry Stewart.
413
414 Fix bug which meant that strict-order and self-mx were
415 always enabled.
416
417 Builds with Linux libc5 now - for the Freesco project.
418
419 Fixed Makefile installation script (patch from Silvan
420 Minghetti) and added CC and CFLAGS variables.
421
422 Improve resource allocation to reduce vulnerability to
423 DOS attacks - the old version could have all queries
424 blocked by a continuous high-speed stream of
425 queries. Now some queries will succeed, and the excess
426 will be rejected with a server fail error. This change also
427 protects against server-loops; setting up a resolving
428 loop between two instances of dnsmasq is no longer
429 catastrophic. The servers will continue to run, looped
430 queries fail and a warning is logged. Thanks to C. Lee
431 Taylor for help with this.
432
433release 1.13 Added support for building rpms suitable for modern Suse
434 systems. (patch from Andi <cambeis@netplace.de>)
435
436 Added options --group, --localmx, --local-ttl,
437 --no-negcache, --addn-host.
438
439 Moved all the various rpm-building bits into /rpm.
440
441 Fix builds with glibc 2.1 (thanks to Cristian
442 Ionescu-Idbohrn)
443
444 Preserve case in domain names, as per RFC1035.
445
446 Fixed ANY queries to domains with --address specification.
447
448 Fixed FreeBSD build. (thanks to Steven Honson)
449
450 Added -Q option which allows a specified port to be used
451 to talk to upstream servers. Useful for people who want
452 very paranoid firewalls which open individual UDP port.
453 (thanks to David Coe for the patch)
454
455release 1.14 Fixed man page description of -b option which confused
456 /etc/hosts with /etc/resolv.conf. (thanks to Christopher
457 Weimann)
458
459 Fixed config.h to allow building under MACOS X and glibc
460 2.0.x. (thanks to Matthew Gregan and Serge Caron)
461
462 Added --except-interface option. (Suggested by Serge Caron)
463
464 Added SIGUSR2 facility to re-scan for new
465 interfaces. (Suggested by Serge Caron)
466
467 Fixed SEGV in option-reading code for invalid options.
468 (Thanks to Klaas Teschauer)
469
470 Fixed man page to clarify effect of SIGUSR1 on
471 /etc/resolv.conf.
472 (Thanks to Klaas Teschauer)
473
474 Check that recieved queries have only rfc1035-legal characters
475 in them. This check is mainly to avoid bad strings being
476 sent to syslog.
477
478 Fixed &&/& confusion in option.c and added DESTDIR
479 variable for "make install" (Thanks to Osvaldo
480 Marques for the patch.)
481
482 Fixed /etc/hosts parsing code to cope with MS-DOS
483 line-ends in the file. This was supposed to be done in
484 version 1.11, but something got missed. (Thanks to Doug
485 Copestake for helping to find this.)
486
487 Squash repeated name/address pairs read from hosts
488 files.
489
490 Tidied up resource handling in util.c (Thanks to
491 Cristian Ionescu-Idbohrn).
492
493 Added hashed searching of domain names. People are starting
494 to use dnsmasq with larger loads now, and bigger caches,
495 and large lists of ad-block addresses. This means doing
496 linear searches can start to use lots of CPU so I added hashed
497 searching and seriously optimised the cache code for
498 algorithmic efficiency. Also upped the limit on cache
499 size to 10000.
500
501 Fixed logging of the source of names from the additional
502 hosts file and from the "bogus private address" option.
503
504 Fixed spurious re-reading of empty lease files. (Thanks
505 to Lewis Baughman for spotting this.)
506
507 Fixed building under uclibc (patch from Cristian Ionescu-Idbohrn)
508
509 Do some socket tweaking to allow dnsmasq to co-exist
510 with BIND. Thanks to Stefan 'Sec' Zehl for the patch.
511
512release 1.15 Added --bogus-nxdomain option.
513
514 Restrict checking of resolv.conf and DHCP leases files
515 to once per second. This is intended to improve
516 performance under heavy loads. Also make a system call
517 to get the current time once per query, rather than four
518 times.
519
520 Increased number of outstanding queries to 150 in
521 config.h
522
523release 1.16 Allow "/" characters in domain names - this fixes
524 caching of RFC 2317 CNAME-PTR records.
525
526 Fixed brain-fart in -B option when GETOPT_LONG not
527 enabled - thanks to Steven Young and Jason Miller
528 for pointing this out.
529
530 Generalised bogus-nxdomain code: allow more than one
531 address to check, and deal with replies with multiple
532 answer records. (Based on contribution from Humberto
533 Massa.)
534
535 Updated the documentation to include information about
536 bogus-nxdomain and the Verisign tragedy.
537
538 Added libraries needed on Solaris to Makefile.
539
540 Added facility to set source address in queries to
541 upstream nameservers. This is useful with multihomed
542 hosts, especially when using VPNs. Thanks to Tom Fanning
543 for suggesting this feature.
544
545 Tweaked logging: log to facility LOCAL0 when in
546 debug/no-daemon mode and changed level of query logging
547 from INFO to DEBUG. Make log options controllable in
548 config.h
549
550release 1.17 Fixed crash with DHCP hostnames > 40 characters.
551
552 Fixed name-comparision routines to not depend on Locale,
553 in theory this versions since 1.15 could lock up or give
554 wrong results when run with locale != 'C'.
555
556 Fix potential lockup in cache code. (thanks to Henning
557 Glawe for help chasing this down.)
558
559 Made lease-file reader bullet-proof.
560
561 Added -D option, suggested by Peter Fichtner.
562
563release 1.18 Added round-robin DNS for names which have more than one
564 address. In this case all the addresses will be
565 returned, as before, but the order will change on each
566 query.
567
568 Remove stray tolower() and isalnum() calls missed in
569 last release to complete LOCALE independence.
570
571 Allow port numbers in source-address specifications.
572
573 For hostnames without a domain part which don't get
574 forwarded because -D is in effect, return NXDOMAIN not
575 an empty reply.
576
577 Add code to return the software version in repsonse to the
578 correct magic query in the same way as BIND. Use
579 "dig version.bind chaos txt" to make the query.
580
581 Added negative caching for PTR (address to name) records.
582
583 Ensure that names of the form typically used in PTR queries
584 (ie w.x.yz.in-addr.arpa and IPv6 equivalents) get
585 correct answers when queried as other types. It's
586 unlikely that anyone would do this, but the change makes
587 things pedantically correct.
588
589 Taught dnsmasq to understand "bitstring" names, as these
590 are used for PTR lookups of IPv6 addresses by some
591 resolvers and lookup tools. Dnsmasq now understands both
592 the ip6.int domain and the ip6.arpa domain and both
593 nibble and bitstring formats so it should work with any
594 client code. Standards for this stuff have flip-flopped
595 over the last few years, leaving many different clients
596 in their wake. See RFC2673 for details of bitstrings.
597
598 Allow '_' characters in domain names: Legal characters
599 are now [a-z][A-Z].-_ Check names read from hosts files
600 and leases files and reject illegal ones with a message
601 in syslog.
602
603 Make empty domain names in server and address options
604 have the special meaning "unqualified
605 names". (unqualified names are names without any dots in
606 them). It's now possible to do server=//1.2.3.4 and have
607 unqualified names sent to a special nameserver.
608
609release 2.0rc1
610 Moved source code into src/ directory.
611
612 Fixes to cure compilation breakage when HAVE_IPV6 not
613 set, thanks to Claas Hilbrecht.
614
615 BIG CHANGE: added an integrated DHCP server and removed
616 the code to read ISC dhcp.leases. This wins in terms
617 of ease of setup and configuration flexibility and
618 total machine resources consumed.
619
620 Re-jiged the signal handling code to remove a race
621 condition and to be more portable.
622
623release 2.0
624 Thanks to David Ashworth for feedback which informed many
625 of the fixes below.
626
627 Allow hosts to be specified by client ID in dhcp-hosts
628 options. These are now one of
629 dhcp-host=<hardware addr>,....
630 dhcp-host=id:<hex client id>,.....
631 dhcp-host=id:<ascii client id>,.....
632
633 Allow dhcp-host options to specify any IP address on the
634 DHCP-served network, not just the range available for
635 dynamic allocation.
636
637 Allow dhcp-host options for the same host with different
638 IP adresses where the correct one will be selected for
639 the network the host appears on.
640
641 Fix parsing of --dhcp-option to allow more than one
642 IP address and to allow text-type options.
643
644 Inhibit use of --dhcp-option to send hostname DHCP options.
645
646 Update the DNS with DHCP information after re-reading
647 /etc/hosts so that any DHCP derived names which have been
648 shadowed by now-deleted hosts entries become visible.
649
650 Fix typos in dnsmasq.conf.example
651
652 Fixes to Makefile(s) to help pkgsrc packaging - patch
653 from "pancake".
654
655 Add dhcp-boot option to support network boot.
656
657 Check for duplicate IP addresses in dhcp-hosts lines
658 and refuse to run if found. If allowed to remain these
659 can provoke an infinite loop in the DHCP protocol.
660
661 Attempted to rationalise the .spec files for rpm
662 building. There are now files for Redhat, Suse and
663 Mandrake. I hope they work OK.
664
665 Fixed hard-to-reproduce crash involving use of local
666 domains and IPv6 queries. Thanks to Roy Marples for
667 helping to track that one down.
668
669release 2.1
670 Thanks to Matt Swift and Dag Wieers for many suggestions
671 which went into this release.
672
673 Tweak include files to allow compilation on FreeBSD 5
674
675 Fix unaligned access warnings on BSD/Alpha.
676
677 Allow empty DHCP options, like so: dhpc-option=44
678
679 Allow single-byte DHCP options like so: dhcp-option=20,1
680
681 Allow comments on the same line as options in
682 /etc/dnsmasq.conf
683
684 Don't complain when the same name and address is
685 allocated to a host using DHCP and /etc/hosts.
686
687 Added to the example configuration the dnsmasq equivalent
688 of the ISC dhcpd settings given in
689 http://www.samba.org/samba/ftp/docs/textdocs/DHCP-Server-Configuration.txt
690
691 Fixed long-existing strangeness in Linux IPv6 interface
692 discovery code. The flags field in /proc/net/if_inet6 is
693 _not_ the interface flags.
694
695 Fail gracefully when getting an ENODEV error when trying
696 to bind an IPv6 socket, rather than bailing out. Thanks
697 to Jan Ischebeck for feedback on that.
698
699 Allow the name->address mapping for static DHCP leases to
700 be set by /etc/hosts. It's now possible to have
701 dhcp-host=<mac addr>,wibble
702 or even
703 dhcp-host=wibble
704 and in /etc/hosts have
705 wibble 1.2.3.4
706 and for the correct thing to happen. Note that some sort
707 of dhcp-host line is still needed, it's not possible for
708 random host to claim an address in /etc/hosts without
709 some explicit configuration.
710
711 Make 0.0.0.0 in a dhcp-option to mean "the machine
712 running dnsmasq".
713
714 Fix lease time spec when specified in dhcp-range and not
715 in dhcp-host, previously this was always one hour.
716
717 Fix problem with setting domains as "local only". -
718 thanks to Chris Schank.
719
720 Added support for max message size DHCP option.
721
722release 2.2
723 Fix total lack for DHCP functionality on
724 Linux systems with IPv6 enabled. - thanks to
725 Jonathon Hudson for spotting that.
726
727 Move default config file under FreeBSD - patch from
728 Steven Honson
729
730release 2.3
731 Fix "install" makefile target. (reported by Rob Stevens)
732
733 Ensure that "local=/domain/" flag is obeyed for all
734 queries on a domain, not just A and AAAA. (Reported by
735 Peter Fichtner.)
736
737 Handle DHCPDECLINE messages and provide an error message
738 in DHCPNAK messages.
739
740 Add "domain" setting example to
741 dnsmasq.conf.example. Thanks to K P Kirchdorfer for
742 spotting that it was missing.
743
744 Subtle change to the DHCPREQUEST handling code to work
745 around a bug in the DHCP client in HP Jetdirect printers.
746 Thanks to Marko Stolle for finding this problem.
747
748 Return DHCP T1 and T2 times, with "fuzz" to desychronise lease
749 renewals, as specified in the RFC.
750
751 Ensure that the END option is always present in DHCP
752 packets , even if the packet is too small to fit all
753 the requested options.
754
755 Handle larger-than-default DHCP packets if required, up
756 to the ethernet MTU.
757
758 Fix a couple of places where the return code from
759 malloc() was not checked.
760
761 Cope with a machine taking a DHCP lease and then moving
762 network so that the lease address is no longer valid.
763
764 The DHCP server will now work via a BOOTP relay - remote
765 networks are configured with the dhcp-range option the
766 same as directly connected ones, but they need an
767 additional netmask parameter. Eg
768 --dhcp-range=192.168.4.10,192.168.4.50,255.255,255.0
769 will enable DHCP service via a BOOTP relay on the
770 192.168.4.0 network.
771
772 Add a limit on the number of available DHCP leases,
773 otherwise the daemon could be DOSed by a malicious
774 host. The default is 150, but it can be changed by the
775 dhcp-lease-max option.
776
777 Fixed compilation on OpenBSD (thanks to Frederic Brodbeck
778 for help with that.)
779
780 Reworked the DHCP network handling code for two good
781 effects: (1) The limit of one network only for DHCP on
782 FreeBSD is now gone, (2) The DHCP server copes with
783 dynamically created interfaces. The one-interface
784 limitation remains for OpenBSD, which is missing
785 extensions to the socket API which have been in Linux
786 since version 2.2 and FreeBSD since version 4.8.
787
788 Reworked the DNS network code to also cope with
789 dynamically created interfaces. dnsmasq will now listen
790 to the wildcard address and port 53 by default, so if no
791 --interface or --address options are given it will handle
792 dynamically created interfaces. The old behaviour can be
793 restored with --bind-interfaces for people running BIND
794 on one interface and dnsmasq on another. Note that
795 --interface and --address options still work, but the
796 filtering is done by dnsmasq, rather then the kernel.
797 This works on Linux, and FreeBSD>=5.0. On systems which
798 don't support the required API extensions, the old
799 behaviour is used, just as if --bind-interfaces had been set.
800
801 Allow IPv6 support to be disabled at compile time. To do
802 that, add -DNO_IPV6 to the CFLAGS. Thanks to Oleg
803 I. Vdovikin for the suggestion to do that.
804
805 Add ability to set DHCP options per network. This is done
806 by giving a network an identifier like this:
807 dhcp-range=red-net,192.168.0.10,192.168.0.50
808 and then labeling options intended for that network only
809 like this:
810 dhcp-option=red-net,6,1.1.1.1
811 Thanks to Oleg Vdovikin for arguing that one through.
812
813 Made errors in the configuration file non-fatal: dnsmasq
814 will now complain bitterly, but continue.
815
816 Added --read-ethers option, to allow dnsmasq to pull
817 static DHCP information from that file.
818 Thanks to Andi Cambeis for that suggestion.
819
820 Added HAVE_BROKEN_RTC compilation option to support
821 embedded systems without a stable RTC. Oleg Vdovikin
822 helped work out how to make that work.
823
824release 2.4
825 Fixed inability to start when the lease file doesn't
826 already exist. Thanks to Dag Wieers for reporting that.
827
828 Fixed problem were dhcp-host configuration options did
829 not play well with entries in /etc/ethers for the same
830 host. Thanks again to Dag Wieers.
831
832 Tweaked DHCP code to favour moving to a newly-configured
833 static IP address rather than an old lease when doing
834 DHCP allocation.
835
836 Added --alias configuration option. This provides IPv4
837 rewrite facilities like Cisco "DNS doctoring". Suggested
838 by Chad Skeeters.
839
840 Fixed bug in /etc/ethers parsing code triggered by tab
841 characters. Qudos to Dag Wieers for hepling to nail that
842 one.
843
844 Added "bind-interfaces" option correctly.
845
846release 2.5
847 Made "where are we allocating addresses?" code in DHCP
848 server cope with requests via a relay which is on a
849 directly connected network for which there is not a
850 configured netmask. This strange state of affairs occurs
851 with win4lin. Thanks to Alex Melt and Jim Horner for bug
852 reports and testing with this.
853
854 Fixed trivial-but-irritating missing #include which broke
855 compilation on *BSD.
856
857 Force --bind-interfaces if IP-aliased interface
858 specifications are used, since the sockets API provides
859 no other sane way to determine which alias of an
860 interface a packet was sent to. Thanks to Javier Kohen
861 for the bug report.
862
863release 2.6
864 Support Token Ring DHCP. Thanks to Dag Wieers for help
865 testing. Note that Token ring support only works on Linux
866 currently.
867
868 Fix compilation on MacOS X. Thanks to Bernhard Ehlers for
869 the patch.
870
871 Added new "ignore" keyword for
872 dhcp-host. "dhcp-host=11:22:33:44:55:66,ignore" will
873 cause the DHCP server to ignore any host with the given
874 MAC address, leaving it to other servers on the
875 network. This also works with client-id and hostnames.
876 Suggestion by Alex Melt.
877
878 Fixed parsing of hex client IDs. Problem spotted by Peter
879 Fichtner.
880
881 Allow conf-file options in configuration file, to
882 provide an include function.
883
884 Re-read /etc/ethers on receipt of SIGHUP.
885
886 Added back the ability to read ISC dhcpd lease files, by
887 popular demand. Note that this is deprecated and for
888 backwards compatibility only. You can get back the 4K of
889 memory that the code occupies by undefining
890 "HAVE_ISC_READER" in src/config.h
891
892 Added ability to disable "pool" DHCP address allocation
893 whilst leaving static leases working. The syntax is
894 "dhcp-range=192.168.0.0,static"
895 Thanks to Grzegorz Nosek for the suggestion.
896
897 Generalized dnsmasq-rh.spec file to work on Mandrake too,
898 and removed dnsmasq-mdk.spec. Thanks to Doug Keller.
899
900 Allow DHCP options which are tied to specific static
901 leases in the same way as to specific networks.
902
903 Generalised the dhcp-option parser a bit to allow hex
904 strings as parameters. This is now legal:
905 dhcp-option=128,e4:45:74:68:00:00
906 Inspired by a patch from Joel Nordell.
907
908 Changed the semantics of argument-less dhcp-options for
909 the default-setting ones, ie 1, 3, 6 and 28. Now, doing
910 eg, dhcp-option=3 stops dnsmasq from sending a default
911 router option at all. Thanks to Scott Emmons for pointing
912 out that this is useful.
913
914 Fixed dnsmasq.conf parsing bug which interpreted port
915 numbers in server= lines as a comment. To start a
916 comment, a '#' character must now be a the start of a
917 line or preceded by whitespace. Thanks to Christian
918 Haggstrom for the bug report.
919
920release 2.7
921 Allow the dhcp-host specification of id:* which makes
922 dnsmasq ignore any client-id. This is useful to ensure
923 that a dual-boot machine sees the same lease when one OS
924 gives a client-id and the other doesn't. It's also useful
925 when PXE boot DHCP does not use client IDs but the OS it boots
926 does. Thanks to Grzegorz Nosek for suggesting this enhancement.
927
928 No longer assume that ciaddr is zero in received DHCPDISCOVER
929 messages, just for security against broken clients.
930
931 Set default of siaddr field to the address of the machine running
932 dnsmasq when not explicitly set using dhcp-boot
933 option. This is the ISC dhcpd behaviour.
934
935 Send T1 and T2 options in DHCPOFFER packets. This is required
936 by the DHCP client in some JetDirect printers. Thanks
937 to Paul Mattal for work on this.
938
939 Fixed bug with DHCP on OpenBSD reported by Dominique Jacquel.
940 The code which added loopback interfaces to the list
941 was confusing the DHCP code, which expected one interface only.
942 Solved by adding loopback interfaces to address list instead.
943
944 Add dhcp-vendorclass option to allow options to be sent only
945 to certain classes of clients.
946
947 Tweaked option search code so that if a netid-qualified
948 option is used, any unqualified option is ignored.
949
950 Changed the method of picking new dynamic IP
951 addresses. This used to use the next consecutive
952 address as long it was free, now it uses a hash
953 from the client hardware address. This reduces the amount
954 of address movement for clients which let their lease
955 expire and allows consecutive DHCPOFFERS to the same host
956 to (almost always) be for the same address, without
957 storing state before a lease is granted.
958
959 Tweaked option handling code to return all possible
960 options rather than none when DHCP "requested options"
961 field is missing. This fixes interoperability with
962 ancient IBM LANMAN DHCP clients. Thanks to Jim Louvau for
963 help with this.
964
965release 2.8
966 Pad DHCP packets to a minimum size of 300 bytes. This
967 fixes interoperability problems with the Linux in-kernel
968 DHCP/BOOTP client. Thanks to Richard Musil for
969 diagnosing this and supplying a patch.
970
971 Fixed option-parsing bug and potential memory leak. Patch
972 from Richard Musil.
973
974 Improved vendor class configuration and added user class
975 configuration. Specifically: (1) options are matched on
976 the netids from dhcp-range, dhcp-host, vendor class and
977 user class(es). Multiple net-ids are allowed and options
978 are searched on them all. (2) matches agains vendor class
979 and user class are now on a substring, if the given
980 string is a substring of the vendor/user class, then a
981 match occurs. Thanks again to Richard Musil for prompting
982 this.
983
984 Make "#" match any domain on --address and --server
985 flags. --address=/#/1.2.3.4 will return 1.2.3.4 for _any_
986 domain not otherwise matched. Of course
987 --server=/#/1.2.3.4 is exactly equivalent to
988 --server=1.2.3.4. Special request from Josh Howlett.
989
990 Fixed a nasty bug which would cause dnsmasq to lose track
991 of leases for hosts which had a --dhcp-host flag without
992 a name specification. The mechanism for this was that
993 the hostname could get erroneously set as a zero-length
994 string and then written to the leases file as a
995 mal-formed line. Restarting dnsmasq would then lose the lease.
996 Alex Hermann's work helped chase down this problem.
997
998 Add checks against DHCP clients which return zero-length
999 hostnames. This avoids the potential lease-loss problems
1000 reffered to above. Also, if a client sends a hostname when
1001 it creates a lease but subsequently sends no or a
1002 zero-length hostname whilst renewing, continue to use the
1003 existing hostname, don't wipe it out.
1004
1005 Tweaked option parsing to flag some parameter errors.
1006
1007release 2.9
1008 Fixed interface filter code for two effects: 1) Fixed bug
1009 where queries sent via loopback interface
1010 but to the address of another interface were ignored
1011 unless the loopback interface was explicitly configured.
1012 2) on OpenBSD failure to configure one interface now
1013 causes a fatal error on startup rather than an huge
1014 stream of log messages. Thanks to Erik Jan Tromp for
1015 finding that bug.
1016
1017 Changed server selection strategy to improve performance
1018 when there are many available servers and some are
1019 broken. The new algorithm is to pick as before for the
1020 first try, but if a query is retried, to send to all
1021 available servers in parallel. The first one to reply
1022 then becomes prefered for the next query. This should
1023 improve reliability without generating significant extra
1024 upstream load.
1025
1026 Fixed breakage of special servers/addresses for
1027 unqualified domains introduced in version 2.8
1028
1029 Allow fallback to "bind-interfaces" at runtime: Some
1030 verions of *BSD seem to have enough stuff in the header
1031 files to build but no kernel support. Also now log if
1032 "bind-interfaces" is forced on.
1033
1034 Log replies from upstream servers which refuse to do
1035 recursion - dnsmasq is not a recursive nameserver and
1036 relies on upstream servers to do the recursion, this
1037 flags a configuration error.
1038
1039 Disable client-id matching for hosts whose MAC address is
1040 read from /etc/ethers. Patch from Oleg I. Vdovikin.
1041
1042 Extended --mx-host flag to allow arbitrary targets for MX
1043 records, suggested by Moritz Bunkus.
1044
1045 Fixed build under NetBSD 2.0 - thanks to Felix Deichmann
1046 for the patch.
1047
1048 Deal correctly with repeated addresses in /etc/hosts. The
1049 first name found is now returned for reverse lookups,
1050 rather than all of them.
1051
1052 Add back fatal errors when nonexistant
1053 interfaces or interface addresses are given but only in
1054 "bind-interfaces" mode. Principle of least surprise applies.
1055
1056 Allow # as the argument to --domain, meaning "read the
1057 domain from the first search directive in
1058 /etc.resolv.conf". Feature suggested by Evan Jones.
1059
1060release 2.10
1061 Allow --query-port to be set to a low port by creating and
1062 binding the socket before dropping root. (Suggestion from
1063 Jamie Lokier)
1064
1065 Support TCP queries. It turned out to be possible to do
1066 this with a couple of hundred lines of code, once I knew
1067 how. The executable size went up by a few K on i386.
1068 There are a few limitations: data obtained via TCP is not
1069 cached, and dynamically-created interfaces may break under
1070 certain circumstances. Source-address or query-port
1071 specifications are ignored for TCP.
1072
1073 NAK attempts to renew a DHCP lease where the DHCP range
1074 has changed and the lease is no longer in the allowed
1075 range. Jamie Lokier pointed out this bug.
1076
1077 NAK attempts to renew a pool DHCP lease when a statically
1078 allocated address has become available, forcing a host to
1079 move to its allocated address. Lots of people have
1080 suggested this change and been rebuffed (they know who
1081 they are) the straws that broke the camel's back were Tim
1082 Cutts and Jamie Lokier.
1083
1084 Remove any nameserver records from answers which are
1085 modified by --alias flags. If the answer is modified, it
1086 cannot any longer be authoritative.
1087
1088 Change behaviour of "bogus-priv" option to return NXDOMAIN
1089 rather than a PTR record with the dotted-quad address as
1090 name. The new behaviour doesn't provoke tcpwrappers like
1091 the old behavior did.
1092
1093 Added a patch for the Suse rpm. That changes the default
1094 group to one suitable for Suse and disables inclusion of
1095 the ISC lease-file reader code. Thanks to Andy Cambeis for
1096 his ongoing work on Suse packaging.
1097
1098 Support forwarding of EDNS.0 The maximum UDP packet size
1099 defaults to 1280, but may be changed with the
1100 --edns-packet-max option. Detect queries with the do bit
1101 set and always forward them, since DNSSEC records are
1102 not cached. This behaviour is required to make
1103 DNSSECbis work properly though dnsmasq. Thanks to Simon
1104 Josefsson for help with this.
1105
1106 Move default config file location under OpenBSD from
1107 /usr/local/etc/dnsmasq.conf to /etc/dnsmasq.conf. Bug
1108 report from Jonathan Weiss.
1109
1110 Use a lease with matching MAC address for a host which
1111 doesn't present a client-id, even if there was a client ID
1112 at some point in the past. This reduces surprises when
1113 changing DHCP clients, adding id:* to a host, and from the
1114 semantics change of /etc/ethers in 2.9. Thanks to Bernard
1115 Sammer for finding that.
1116
1117 Added a "contrib" directory and in it the dnslist utility,
1118 from Thomas Tuttle.
1119
1120 Fixed "fail to start up" problems under Linux with IPv6
1121 enabled. It's not clear that these were an issue in
1122 released versions, but they manifested themselves when TCP
1123 support was added. Thanks to Michael Hamilton for
1124 assistance with this.
1125
1126version 2.11
1127 Fixed DHCP problem which could result in two leases in the
1128 database with the same address. This looked much more
1129 alarming then it was, since it could only happen when a
1130 machine changes MAC address but kept the same name. The
1131 old lease would persist until it timed out but things
1132 would still work OK.
1133
1134 Check that IP addresses in all dhcp-host directives are
1135 unique and die horribly if they are not, since otherwise
1136 endless protocol loops can occur.
1137
1138 Use IPV6_RECVPKTINFO as socket option rather than
1139 IPV6_PKTINFO where available. This keeps late-model FreeBSD
1140 happy.
1141
1142 Set source interface when replying to IPv6 UDP
1143 queries. This is needed to cope with link-local addresses.
1144
1145version 2.12
1146 Added extra checks to ensure that DHCP created DNS entries
1147 cannot generate multiple DNS address->name entries. Thanks to
1148 Stefan Monnier for finding the exact set of configuration
1149 options which could create this.
1150
1151 Don't set the the filterwin2k option in the example config
1152 file and add warnings that is breaks Kerberos. Thanks to
1153 Simon Josefsson and Timothy Folks for pointing that out.
1154
1155 Log types of incoming queries as well as source and domain.
1156
1157 Log NODATA replies generated as a result of the
1158 filterwin2k option.
1159
1160version 2.13
1161 Fixed crash with un-named DHCP hosts introduced in 2.12.
1162 Thanks to Nicolo Wojewoda and Gregory Gathy for bug reports.
1163
1164version 2.14
1165 Fix DHCP network detection for hosts which talk via a
1166 relay. This makes lease renewal for such hosts work
1167 correctly.
1168
1169 Support RFC3011 subnet selectors in the DHCP server.
1170
1171 Fix DHCP code to generate RFC-compliant responses
1172 to hosts in the INIT-REBOOT state.
1173
1174 In the DHCP server, set the receive buffer size on
1175 the transmit-only packet socket to zero, to avoid
1176 waste of kernel buffers.
1177
1178 Fix DHCP address allocation code to use the whole of
1179 the DHCP range, including the start and end addresses.
1180
1181 Attempt an ICMP "ping" on new addresses before allocating
1182 them to leases, to avoid allocating addresses which are in use.
1183
1184 Handle rfc951 BOOTP as well as DHCP for hosts which have
1185 MAC address to IP address mapping defined.
1186
1187 Fix compilation under MacOS X. Thanks to Chris Tomlinson.
1188
1189 Fix compilation under NetBSD. Thanks to Felix Deichmann.
1190
1191 Added "keep-in-foreground" option. Thanks to Sean
1192 MacLennan for the patch.
1193
1194version 2.15
1195 Fixed NXDOMAIN/NODATA confusion for locally known
1196 names. We now return a NODATA reponse for names which are
1197 locally known. Now a query for (eg AAAA or MX) for a name
1198 with an IPv4 address in /etc/hosts which fails upstream
1199 will generate a NODATA response. Note that the query
1200 is still tried upstream, but a NXDOMAIN reply gets
1201 converted to NODATA. Thanks to Eric de Thouars, Eric
1202 Spakman and Mike Mestnik for bug reports/testing.
1203
1204 Allow multiple dhcp-ranges within the same network. The
1205 original intention was that there would be a dhcp-range
1206 option for each network served, but there's no real reason
1207 not to allow discontinuous ranges within a network so this
1208 release adds support for that.
1209
1210 Check for dhcp-ranges which are inconsistent with their
1211 netmask, and generate errors or warnings.
1212
1213 Improve error messages when there are problems with
1214 configuration.
1215
1216version 2.16
1217 Fixed typo in OpenBSD-only code which stopped compilation
1218 under that OS. Chris Weinhaupl gets credit for reporting
1219 this.
1220
1221 Added dhcp-authoritative option which restores non-RFC
1222 compliant but desirable behaviour of pre-2.14 versions and
1223 avoids long timeouts while DHCP clients try to renew leases
1224 which are unknown to dnsmasq. Thanks to John Mastwijk for
1225 help with this.
1226
1227 Added support to the DHCP option code to allow RFC-3397
1228 domain search DHCP option (119) to be sent.
1229
1230 Set NONBLOCK on all listening sockets to workaround non-POSIX
1231 compliance in Linux 2.4 and 2.6. This fixes rare hangs which
1232 occured when corrupted packets were received. Thanks to
1233 Joris van Rantwijk for chasing that down.
1234
1235 Updated config.h for NetBSD. Thanks to Martin Lambers.
1236
1237 Do a better job of distinguishing between retransmissions
1238 and new queries when forwarding. This fixes a bug
1239 triggered by the polipo web cache which sends A and AAAA
1240 queries both with the same transaction-ID. Thanks to
1241 Joachim Berdal Haga and Juliusz Chroboczek for help with this.
1242
1243 Rewrote cache code to store CNAMES, rather then chasing
1244 them before storage. This eliminates bad situations when
1245 clients get inconsistent views depending on if data comes
1246 from the cache.
1247
1248 Allow for more than one --addn-hosts flag.
1249
1250 Clarify logged message when a DHCP lease clashes with an
1251 /etc/hosts entry. Thanks to Mat Swift for the suggestion.
1252
1253 Added dynamic-dnsmasq from Peter Willis to the contrib
1254 section.
1255
1256version 2.17
1257 Correctly deduce the size of numeric dhcp-options, rather
1258 than making wild guesses. Also cope with negative values.
1259
1260 Fixed use of C library reserved symbol "index" which broke
1261 under certain combinations of library and compiler.
1262
1263 Make bind-interfaces work for IPv6 interfaces too.
1264
1265 Warn if an interface is given for listening which doesn't
1266 currently exist when not in bind-interfaces mode. (This is
1267 already a fatal error when bind-interfaces is set.)
1268
1269 Allow the --interface and --except-interface options to
1270 take a comma-separated list of interfaces.
1271
1272 Tweak --dhcp-userclass matching code to work with the
1273 ISC dhclient which violates RFC3004 unless its
1274 configuration is very warped. Thanks to Cedric Duval for
1275 the bug report.
1276
1277 Allow more than one network-id tag in a dhcp-option. All
1278 the tags must match to enable the option.
1279
1280 Added dhcp-ignore option to disable classes of hosts based
1281 on network-id tags. Also allow BOOTP options to be
1282 controlled by network tags.
1283
1284 Fill in sname, file and siaddr fields in replies to
1285 DHCPINFORM messages.
1286
1287 Don't send NAK replies to DHCPREQUEST packets for disabled
1288 clients. Credit to Cedric Duval for spotting this.
1289
1290 Fix rare crash associated with long DNS names and CNAME
1291 records. Thanks to Holger Hoffstatte and especially Steve
1292 Grecni for help chasing that one down.
1293
1294version 2.18
1295 Reworked the Linux interface discovery code (again) to
1296 cope with interfaces which have only IPv6 addresses and
1297 interfaces with more than one IPv6 address. Thanks to
1298 Martin Pels for help with that.
1299
1300 Fix problems which occured when more than one dhcp-range
1301 was specified in the same subnet: sometimes parameters
1302 (lease time, network-id tag) from the wrong one would be
1303 used. Thanks to Rory Campbell-Lange for the bug report.
1304
1305 Reset cache statistics when clearing the cache.
1306
1307 Enable long command line options on FreeBSD when the
1308 C library supports them.
1309
1310version 2.19
1311 Tweaked the Linux-only interface discovery code to cope
1312 with interface-indexes larger than 8 bits in
1313 /proc/net/if_inet6. This only affects Linux, obviously.
1314 Thanks to Richard Atterer for the bug report.
1315
1316 Check for under-length option fields in DHCP packets, a
1317 zero length client-id, in particluar, could seriously
1318 confuse dnsmasq 'till now. Thanks to Will Murname for help
1319 with that.
1320
1321 If a DHCP-allocated address has an associated name in
1322 /etc/hosts, and the client does not provide a hostname
1323 parameter and there is no hostname in a matching dhcp-host
1324 option, send the /etc/hosts name as the hostname in
1325 the DHCP lease. Thanks to Will Murname for the suggestion.
1326
1327version 2.20
1328 Allow more than one instance of dnsmasq to run on a
1329 machine, each providing DHCP service on a different
1330 interface, provided that --bind-interfaces is set. This
1331 configuration used to work, but regressed in version 2.14
1332
1333 Fix compilation on Mac OS X. Thanks to Kevin Bullock.
1334
1335 Protect against overlong names and overlong
1336 labels in configuration and from DHCP.
1337
1338 Fix interesting corner case in CNAME handling. This occurs
1339 when a CNAME has a target which "shadowed" by a name in
1340 /etc/hosts or from DHCP. Resolving the CNAME would sneak
1341 the upstream value of the CNAME's target into the cache,
1342 alongside the local value. Now that doesn't happen, though
1343 resolving the CNAME still gives the unshadowed value. This
1344 is arguably wrong but rather difficult to fix. The main
1345 thing is to avoid getting strange results for the target
1346 due to the cache pollution when resolving the
1347 CNAME. Thanks to Pierre Habouzit for exploring the corner
1348 and submitting a very clear bug report.
1349
1350 Fix subtle bug in the DNS packet parsing code. It's almost
1351 impossible to describe this succinctly, but the one known
1352 manifestation is the inability to cache the A record for
1353 www.apple.com. Thanks to Bob Alexander for spotting that.
1354
1355 Support SRV records. Thanks to Robert Kean for the patches
1356 for this.
1357
1358 Fixed sign confusion in the vendor-id matching code which
1359 could cause crashes sometimes. (Credit to Mark Wiater for
1360 help finding this.)
1361
1362 Added the ability to match the netid tag in a
1363 dhcp-range. Combined with the ability to have multiple
1364 ranges in a single subnet, this provides a means to
1365 segregate hosts on different address ranges based on
1366 vendorclass or userclass. Thanks to Mark Wiater for
1367 prompting this enhancement.
1368
1369 Added preference values for MX records.
1370
1371 Added the --localise-queries option.
1372
1373version 2.21
1374 Improve handling of SERVFAIL and REFUSED errors. Receiving
1375 these now initiates search for a new good server, and a
1376 server which returns them is not a candidate as a good
1377 server. Thanks to Istvan Varadi for pointing out the
1378 problem.
1379
1380 Tweak the time code in BROKEN_RTC mode.
1381
1382 Sanity check lease times in dhcp-range and dhcp-host
1383 configurations and force them to be at least two minutes
1384 (120s) leases shorter than a minute confuse some clients,
1385 notably Apple MacOS X. Rory Campbell-Lange found this
1386 problem.
1387
1388 Only warn once about an upstream server which is refusing to do
1389 recursive queries.
1390
1391 Fix DHCP address allocation problem when netid tags are in
1392 use. Thanks to Will Murnane for the bug report and
1393 subsequent testing.
1394
1395 Add an additional data section to the reply for MX and SRV
1396 queries. Add support for DNS TXT records. Thanks to Robert
1397 Kean and John Hampton for prompts and testing of these.
1398
1399 Apply address rewriting to records in the additional data section
1400 of DNS packets. This makes things like MX records work
1401 with the alias function. Thanks to Chad Skeeters for
1402 pointing out the need for this.
1403
1404 Added support for quoted strings in config file.
1405
1406 Detect and defeat cache-poisoning attacks which attempt to
1407 send (malicious) answers to questions we didn't
1408 send. These are ignored now even if the attacker manages
1409 to guess a random query-id.
1410
1411 Provide DHCP support for interfaces with multiple IP
1412 addresses or aliases. This in only enabled under Linux.
1413 See the FAQ entry for details.
1414
1415 Revisit the MAC-address and client-id matching code to
1416 provide saner behaviour with PXE boots, where some
1417 requests have a client-id and some don't.
1418
1419 Fixed off-by-one buffer overflow in lease file reading
1420 code. Thanks to Rob Holland for the bug report.
1421
1422 Added wildcard matching for MAC addresses in dhcp-host
1423 options. A sensible suggestion by Nathaniel McCallum.
1424
1425version 2.22
1426 Fixed build problems on (many) systems with older libc
1427 headers where <linux/types.h> is required before
1428 <linux/netlink.h>. Enabled HAVE_RTNETLINK under uclibc now
1429 that this fix is in place.
1430
1431 Added support for encapsulated vendor-class-specific DHCP
1432 options. Thanks to Eric Shattow for help with this.
1433
1434 Fix regression in 2.21 which broke commas in filenames and
1435 corrupted argv. Thanks to Eric Scott for the bugreport.
1436
1437 Fixed stupid thinko which caused dnsmasq to wedge during
1438 startup with certain MX-record options. Another 2.21 regression.
1439
1440 Fixed broken-ness when reading /etc/ethers. 2.21 broke
1441 this too.
1442
1443 Fixed wedge with certain DHCP options. Yet another 2.21
1444 regression. Rob Holland and Roy Marples chased this one
1445 down.
1446
1447version 2.23
1448 Added a check to ensure that there cannot be more than one
1449 dhcp-host option for any one IP address, even if the
1450 addresses are assigned indirectly via a hostname and
1451 /etc/hosts.
1452
1453 Include a "server identifier" in DHCPNAK replies, as
1454 required by RFC2131.
1455
1456 Added method support for DBus
1457 (http://www.freedesktop.org/Software/dbus)
1458 This is a superior way to re-configure dnsmasq on-the-fly
1459 with different upstream nameservers, as the host moves
1460 between networks. DBus support must be enabled in
1461 src/config.h and should be considered experimental at this
1462 point. See DBus-interface for the specification of the
1463 DBus method calls supported.
1464
1465 Added information to the FAQ about setting the DNS domain
1466 in windows XP and Mac OS X, thanks to Rick Hull.
1467
1468 Added sanity check to resolv.conf polling code to cope
1469 with backwards-moving clocks. Thanks to Leonardo Canducci
1470 for help with this.
1471
1472 Handle so-called "A-for-A" queries, which are queries for
1473 the address associated with a name which is already a
1474 dotted-quad address. These should be handled by the
1475 resolver code, but sometimes aren't and there's no point
1476 in forwarding them.
1477
1478 Added "no-dhcp-interface" option to disable DHCP service
1479 on an interface, whilst still providing DNS.
1480
1481 Fix format-string problem - config file names get passed
1482 to fprintf as a format string, so % characters could cause
1483 crashes. Thanks to Rob Holland for sleuthing that one.
1484
1485 Fixed multiple compiler warnings from gcc 4. Thanks to
1486 Tim Cutts for the report.
1487
1488 Send the hostname option on DHCP offer messages as well as
1489 DHCP ack messages. This is required by the Rio Digital
1490 Audio Receiver. Thanks to Ron Frederick for the patch.
1491
1492 Add 'd' (for day) as a possible time multiplier in lease
1493 time specifications. Thanks to Michael Deegan.
1494
1495 Make quoting suppress recognition of IP addresses, so
1496 dhcp-option=66,1.2.3.4 now means something different to
1497 dhcp-option=66,"1.2.3.4", which sets the option to a
1498 string value. Thanks to Brian Macauley for the bug report.
1499
1500 Fixed the option parsing code to avoid segfaults from some
1501 invalid configurations. Thanks to Wookey for spotting that one.
1502
1503 Provide information about which compile-time options were
1504 selected, both in the log at startup and as part of the output
1505 from dnsmasq --version. Thanks to Dirk Schenkewitz for
1506 the suggestion.
1507
1508 Fix pathalogical behaviour when a broken client keeps sending
1509 DHCPDISCOVER messages repeatedly and fast. Because dealing with
1510 each of these takes a few seconds, (because of the ping) then a
1511 queue of DHCP packets could build up. Now, the results of a ping
1512 test are assumed to be valid for 30 seconds, so repeated waits are
1513 not required. Thanks to Luca Landi for finding this.
1514
1515 Allow DHCPINFORM requests without hardware address
1516 information. These are generated by some browsers, looking
1517 for proxy information. Thanks to Stanley Jaddoe for the
1518 bug report on that.
1519
1520 Add support of the "client FQDN" DHCP option. If present,
1521 this is used to allow the client to tell dnsmasq its name,
1522 in preference to (mis)using the hostname option. See
1523 http://tools.ietf.org/wg/dhc/draft-ietf-dhc-fqdn-option/\
1524 draft-ietf-dhc-fqdn-option-10.txt
1525 for details of the draft spec.
1526
1527 Added startup scripts for MacOS X Tiger/Panther to the
1528 contrib collection. Thanks to Tim Cutts.
1529
1530 Tweak DHCP network selection so that clients which turn up
1531 on our network in REBINDING state and with a lease for a
1532 foreign network will get a NAK response. Thanks to Dan
1533 Shechter for work on this and an initial patch and thanks
1534 to Gyorgy Farkas for further testing.
1535
1536 Fix DNS query forwarding for empty queries and forward
1537 queries even when the recursion-desired bit is clear. This
1538 allows "dig +trace" to work. Problem report from Uwe
1539 Gansert.
1540
1541 Added "const" declarations where appropriate, thanks to
1542 Andreas Mohr for the patch.
1543
1544 Added --bootp-dynamic option and associated
1545 functionality. Thanks to Josef Wolf for the suggestion.
1546
1547version 2.24
1548 Updated contrib/openvpn/dnsmasq.patch from Joseph Tate.
1549
1550 Tweaked DHCP NAK code, a DHCP NAK is now unicast as a
1551 fallback in cases where a broadcast is futile: namely in
1552 response to a unicast REQUEST from a non-local network
1553 which was not sent via a relay.
1554
1555 Slightly changed the semantics of domain matching in
1556 --server and --address configs. --server=/domain.com/ still
1557 matches domain.com and sub.domain.com but does not
1558 now match newdomain.com The semantics of
1559 --server=/.domain.com/ are unchanged.
1560 Thanks to Chris Blaise for the patch.
1561
1562 Added backwards-compatible internationalisation support.
1563 The existing make targets, (all, dnsmasq, install) work as
1564 before. New ones (all-i18n, and install-i18n) add gettext.
1565 The translations live in po/ There are not too many
1566 strings, so if anybody can provide translations (and for
1567 the manpage....) please send them in.
1568
1569 Tweak behaviour on receipt of REFUSED or SERVFAIL rcodes,
1570 now the query gets retried on all servers before returning
1571 the error to the source of the query. Thanks to Javier
1572 Kohen for the report.
1573
1574 Added Polish translation - thanks to Tomasz Sochanski.
1575
1576 Changed default manpage install location from /usr/man
1577 to /usr/share/man
1578
1579 Added Spanish translation - thanks to Christopher Chatham.
1580
1581 Log a warning when a DHCP packet is truncated due to lack
1582 of space. (Thanks to Michael Welle for the prompt to do
1583 this.)
1584
1585 Added French translation - thanks to Lionel Tricon.
1586
1587 Added Indonesian translation - thanks to Salman AS.
1588
1589 Tweaked the netlink code to cope with interface broadcast
1590 address not set, or set to 0.0.0.0.
1591
1592 Fixed problem assigning fixed addresses to hosts when more
1593 than one dhcp-range is available. Thanks to Sorin Panca
1594 for help chasing this down.
1595
1596 Added more explict error mesages to the hosts file and
1597 ethers file reading code. Markus Kaiserswerth suffered to
1598 make this happen.
1599
1600 Ensure that a hostname supplied by a DHCP client can never
1601 override one configured on the server. Previously, any
1602 host claiming a name would be given it, even if that
1603 over-rode a dhcp-host declaration, leading to potentially
1604 confusing situations.
1605
1606 Added Slackware package-build stuff into contrib/ The i18n
1607 effort broke the current scripts, and working ones were
1608 needed for testing, so they ended up here rather than make
1609 Pat re-invent the wheel.
1610
1611 Added Romanian translation, thanks to Sorin Panca for
1612 that.
1613
1614version 2.25
1615 Fixed RedHat spec file for FC4 - thanks to Werner Hoelzl
1616 and Andrew Bird.
1617
1618 Fixed Suse spec file - thanks to Steven Springl.
1619
1620 Fixed DHCP bug when two distict subnets are on the same
1621 physical interface. Thanks to Pawel Zawora for finding
1622 this and suggesting the fix.
1623
1624 Added logging to make it explicit when dnsmasq falls back
1625 from using RT-netlink sockets to the old ioctl API for
1626 getting information about interfaces. Doing this
1627 completely silently made remote debugging hard.
1628
1629 Merged uclibc build fixes from the OpenWRT package into
1630 src/config.h
1631
1632 Added Norwegian translation - thanks to Jan Erik Askildt.
1633
1634version 2.26
1635 Fixed SuSe rpm patch problem - thanks to Steven Springl.
1636
1637 Fixed crash when attempting to send a DHCP NAK to a host
1638 which believes it has a lease on an unknown
1639 network. Thanks to Lutz Pressler for the bug report and
1640 patch.
1641
1642version 2.27
1643 Tweaked DHCP behaviour when a client attempts to renew a lease
1644 which dnsmasq doesn't know about. Previously that would always
1645 result in a DHCPNAK. Now, in dhcp-authoritative mode, the
1646 lease will be created, if it's legal. This makes dnsmasq work
1647 better if the lease database is lost, for example on an OpenWRT
1648 system which reboots. Thanks to Stephen Rose for work on
1649 this.
1650
1651 Added the ability to support RFC-3442 style destination
1652 descriptors in dhcp-options. This makes classless static
1653 routes easy to do, eg dhcp-option=121,192.168.1.0/24,1.2.3.4
1654
1655 Added error-checking to the code which writes the lease
1656 file. If this fails for any reason, an error is logged,
1657 and a retry occurs after one minute. This should improve
1658 things eg when a filesystem is full. Thanks to Jens Holze
1659 for the bug report.
1660
1661 Fixed breakage of the "/#/ matches any domain" facility
1662 which happened in 2.24. Thanks to Peter Surda for the bug
1663 report.
1664
1665 Use "size_t" and "ssize_t" types where appropriate in the
1666 code.
1667
1668 Fix buggy CNAME handling in mixed IPv4 and IPv6
1669 queries. Thanks to Andreas Pelme for help finding that.
1670
1671 Added some code to attempt to re-transmit DNS queries when
1672 a network interface comes up. This helps on DoD links,
1673 where frequently the packet which triggers dialling is
1674 a DNS query, which then gets lost. By re-sending, we can
1675 avoid the lookup failing. This function is only active
1676 when netlink support is compiled in, and therefore only
1677 under Linux. Thanks to Jean Wolter for help with this.
1678
1679 Tweaked the DHCP tag-matching code to work correctly with
1680 NOT-tag conditions. Thanks to Lutz Pressler for finding
1681 the bug.
1682
1683 Generalised netid-tag matching in dhcp-range statements to
1684 allow more than one tag.
1685
1686 Added --dhcp-mac to do MAC address matching in the same
1687 way as vendorclass and userclass matching. A good
1688 suggestion from Lutz Pressler.
1689
1690 Add workaround for buggy early Microsoft DHCP clients
1691 which need zero-termination in string options.
1692 Thanks to Fabiano Pires for help with this.
1693
1694 Generalised the DHCP code to cope with any hardware
1695 address type, at least on Linux. *BSD is still limited to
1696 ethernet only.
1697
1698version 2.28
1699 Eliminated all raw network access when running on
1700 Linux. All DHCP network activity now goes through the IP
1701 stack. Packet sockets are no longer required. Apart from
1702 being a neat hack, this should also allow DHCP over IPsec
1703 to work better. On *BSD and OS X, the old method of raw net
1704 access through BPF is retained.
1705
1706 Simplified build options. Networking is now slimmed down
1707 to a choice of "linux" or "other". Netlink is always used
1708 under Linux. Since netlink has been available since 2.2
1709 and non-optional in an IPv4-configured kernel since 2.4,
1710 and the dnsmasq netlink code is now well tested, this
1711 should work out fine.
1712
1713 Removed decayed build support for libc5 and Solaris.
1714
1715 Removed pselect code: use a pipe for race-free signal
1716 handling instead, as this works everywhere.
1717
1718 No longer enable the ISC leasefile reading code in the
1719 distributed sources. I doubt there are many people left
1720 using this 1.x compatibility code. Those that are will
1721 have to explicitly enable it in src/config.h.
1722
1723 Don't send the "DHCP maximum message size" option, even if
1724 requested. RFC2131 says this is a "MUST NOT".
1725
1726 Support larger-than-minimum DHCP message. Dnsmasq is now
1727 happy to get larger than 576-byte DHCP messages, and will
1728 return large messages, if permitted by the "maximum
1729 message size" option of the message to which it is
1730 replying. There's now an arbitrary sanity limit of 16384
1731 bytes.
1732
1733 Added --no-ping option. This fixes an RFC2131 "SHOULD".
1734
1735 Building on the 2.27 MAC-address changes, allow clients to
1736 provide no MAC address at all, relying on the client-id as
1737 a unique identifier. This should make things like DHCP for
1738 USB come easier.
1739
1740 Fixed regression in netlink code under 2.2.x kernels which
1741 occurred in 2.27. Erik Jan Tromp is the vintage kernel fan
1742 who found this. P.S. It looks like this "netlink bind:
1743 permission denied" problem occured in kernels at least as
1744 late a 2.4.18. Good information from Alain Richoux.
1745
1746 Added a warning when it's impossible to give a host its
1747 configured address because the address is leased
1748 elsewhere. A sensible suggestion from Mircea Bardac.
1749
1750 Added minimal support for RFC 3046 DHCP relay agent-id
1751 options. The DHCP server now echoes these back to the
1752 relay, as required by the RFC. Also, RFC 3527 link selection
1753 sub-options are honoured.
1754
1755 Set the process "dumpable" flag when running in debug
1756 mode: this makes getting core dumps from root processes
1757 much easier.
1758
1759 Fixed one-byte buffer overflow which seems to only cause
1760 problems when dnsmasq is linked with uclibc. Thanks to
1761 Eric House and Eric Spakman for help in chasing this down.
1762
1763 Tolerate configuration screwups which lead to the DHCP
1764 server attemping to allocate its own address to a
1765 client; eg setting the whole subnet range as a DHCP
1766 range. Addresses in use by the server are now excluded
1767 from use by clients.
1768
1769 Did some thinking about HAVE_BROKEN_RTC mode, and made it
1770 much simpler and better. The key is to just keep lease
1771 lengths in the lease file. Since these normally never
1772 change, even as the lease is renewed, the lease file never
1773 needs to change except when machines arrive on the network
1774 or leave. This eliminates the code for timed writes, and
1775 reduces the amount of wear on a flash filesystem to the
1776 absolute minimum. Also re-did the basic time function in
1777 this mode to use the portable times(), rather than parsing
1778 /proc/uptime.
1779
1780 Believe the source port number when replying to unicast
1781 DHCP requests and DHCP requests via a relay, instead of always
1782 using the standard ports. This will allow relays on
1783 non-standard ports and DHCPINFORM from unprivileged ports
1784 to work. The source port sent by unconfigured clients is still
1785 ignored, since this may be unreliable. This means that a DHCP
1786 client must use the standard port to do full configuration.
1787
1788version 2.29
1789 Fixed compilation on OpenBSD (thanks to Tom Hensel for the
1790 report).
1791
1792 Fixed false "no interface" errors when --bind-interfaces is
1793 set along with --interface=lo or --listen-address. Thanks
1794 to Paul Wise for the report.
1795
1796 Updated patch for SuSE rpm. Thanks to Steven Springl.
1797
1798 It turns out that there are some Linux kernel
1799 configurations which make using the capability system
1800 impossible. If this situation occurs then continue, running
1801 as root, and log a warning. Thanks to Scott Wehrenberg
1802 for help tracking this down.
1803
1804version 2.30
1805 Fixed crash when a DHCP client requested a broadcast
1806 reply. This problem was introduced in version 2.28.
1807 Thanks to Sandra Dekkers for the bug report.
1808
1809version 2.31
1810 Added --dhcp-script option. There have been calls for this
1811 for a long time from many good people. Fabio Muzzi gets
1812 the prize for finally convincing me.
1813
1814 Added example dbus config file and moved dbus stuff into
1815 its own directory.
1816
1817 Removed horribly outdated Redhat RPM build files. These
1818 are obsolete now that dnsmasq in in Fedora extras. Thanks
1819 to Patrick "Jima" Laughton, the Fedora package
1820 maintainer.
1821
1822 Added workaround for Linux kernel bug. This manifests
1823 itself as failure of DHCP on kernels with "support for
1824 classical IP over ATM" configured. That includes most
1825 Debian kernel packages. Many thanks to A. Costa and
1826 Benjamin Kudria for their huge efforts in chasing this
1827 down.
1828
1829 Force-kill child processes when dnsmasq is sent a sigterm,
1830 otherwise an unclosed TCP connection could keep dnsmasq
1831 hanging round for a few minutes.
1832
1833 Tweaked config.h logic for uclibc build. It will now pick
1834 up MMU and IPV6 status correctly on every system I tested.
1835
1836version 2.32
1837 Attempt a better job of replacing previous configuration
1838 when re-reading /etc/hosts and /etc/ethers. SIGHUP is
1839 still not identical to a restart under all circumstances,
1840 but it is for the common case of name->MAC address in
1841 /etc/ethers and name->IP address in /etc/hosts.
1842
1843 Fall back to broadcast for DHCP to an unconfigured client
1844 when the MAC address size is greater than 14 bytes.
1845
1846 Fix problem in 2.28-onwards releases which breaks DNS on
1847 Mac OS X. Thanks to Doug Fields for the bug report and
1848 testing.
1849
1850 Added fix to allow compilation on c89-only compilers.
1851 Thanks to John Mastwijk for the patch.
1852
1853 Tweak resolv file polling code to work better if there is
1854 a race between updating the mtime and file contents. This
1855 is not normally a problem, but it can be on systems which
1856 replace nameservers whilst active. The code now continues
1857 to read resolv.conf until it gets at least one usable
1858 server. Thanks to Holger Mauermann for help with this.
1859
1860 If a client DECLINEs an address which is allocated to it
1861 via dhcp-host or /etc/hosts, lock that address out of use
1862 for ten minutes, instead of forever, and log when it's not
1863 being used because of the lock-out. This should provide
1864 less surprising behaviour when a configured address can't be
1865 used. Thanks to Peter Surda and Heinz Deinhart for input
1866 on this.
1867
1868 Fixed *BSD DHCP breakage with only some
1869 arches/compilers, depending on structure padding rules.
1870 Thanks to Jeb Campbell and Tom Hensel for help with this.
1871
1872 Added --conf-dir option. Suggestion from Aaron Tygart.
1873
1874 Applied patch from Brent Cook which allows netids in
1875 dhcp-option configuration lines to be prefixed by
1876 "net:". This is not required by the syntax, but it is
1877 consistent with other configuration items.
1878
1879 Added --log-facility option. Suggestion from Fabio Muzzi.
1880
1881 Major update to Spanish translation. Many thanks to Chris
1882 Chatham.
1883
1884 Fixed gcc-4.1 strict-alias compilation warning.
1885
1886version 2.33
1887 Remove bash-specific shellcode from the Makefile.
1888
1889 Fix breakage with some DHCP relay implementations which
1890 was introduced in 2.28. Believing the source port in
1891 DHCP requests and sending the reply there is sometimes a
1892 bad thing to do, so I've reverted to always sending to
1893 the relay on port 68. Thanks to Daniel Hamlin and Alex
1894 (alde) for bug reports on this.
1895
1896 Moved the SuSe packaging files to contrib. I will no
1897 longer attempt to maintain this in the source tarball. It
1898 will be done externally, in the same way as packaging for
1899 other distros. Suse packages are available from
1900 ftp://ftp.suse.com/pub/people/ug/
1901
1902 Merged patch from Gentoo to honour $LDFLAGS environment.
1903
1904 Fix bug in resolv.conf processing when more than one file
1905 is being checked.
1906
1907 Add --dns-forward-max option.
1908
1909 Warn if --resolv-file flags are ignored because of
1910 --no-resolv. Thanks to Martin F Krafft for spotting this
1911 one.
1912
1913 Add --leasefile-ro option which allows the use of an
1914 external lease database. Many thanks to Steve Horbachuk
1915 for assistance developing this feature.
1916
1917 Provide extra information to lease-change script via its
1918 environment. If the host has a client-id, then
1919 DNSMASQ_CLIENT_ID will be set. Either the lease length (in
1920 DNSMASQ_LEASE_LENGTH) or lease expiry time (in
1921 DNSMASQ_LEASE_EXPIRES) will be set, depending on the
1922 HAVE_BROKEN_RTC compile-time option. This extra
1923 information should make it possible to maintain the lease
1924 database in external storage such as LDAP or a relational
1925 database. Note that while leasefile-ro is set, the script
1926 will be called with "old" events more often, since
1927 changes to the client-id and lease length
1928 (HAVE_BROKEN_RTC) or lease expiry time (otherwise)
1929 are now flagged.
1930
1931 Add contrib/wrt/* which is an example implementation of an
1932 external persistent lease database for *WRT distros with
1933 the nvram command.
1934
1935 Add contrib/wrt/dhcp_release.c which is a small utility
1936 which removes DHCP leases using DHCPRELEASE operation in
1937 the DHCP protocol.
1938
1939version 2.34
1940 Tweak network-determination code for another corner case:
1941 in this case a host forced to move between dhcp-ranges on
1942 the same physical interface. Thanks to Matthias Andree.
1943
1944 Improve handling of high DNS loads by throttling acceptance of
1945 new queries when resources are tight. This should be a
1946 better response than the "forwarding table full..."
1947 message which was logged before.
1948
1949 Fixed intermittent infinite loop when re-reading
1950 /etc/ethers after SIGHUP. Thanks to Eldon Ziegler for the
1951 bug report.
1952
1953 Provide extra information to the lease-change script: when
1954 a lease loses its hostname (because a new lease comes
1955 along and claims the same new), the "old" action is called
1956 with the current state of the lease, ie no name. The
1957 change is to provide the former name which the lease had
1958 in the environment variable DNSMASQ_OLD_HOSTNAME. This
1959 helps scripts which do stuff based on hostname, rather
1960 than IP address. Also provide vendor-class and user-class
1961 information to the lease-change script when a new lease is
1962 created in the DNSMASQ_VENDOR_CLASS and
1963 DNSMASQ_USER_CLASS<n> environment variables. Suggestion
1964 from Francois-Xavier Le Bail.
1965
1966 Run the lease change script as root, even when dnsmasq is
1967 configured to change UID to an unprivileged user. Since
1968 most uses of the lease change script need root, this
1969 allows its use whilst keeping the security advantages of
1970 running the daemon without privs. The script is invoked
1971 via a small helper process which keeps root UID, and
1972 validates all data received from the main process. To get
1973 root, an attacker would have to break dnsmasq and then
1974 break the helper through the restricted comms channel
1975 linking the two.
1976
1977 Add contrib/port-forward/* which is a script to set up
1978 port-forwards using the DHCP lease-change script. It's
1979 possible to add a host to a config file by name, and when
1980 that host gets a DHCP lease, the script will use iptables
1981 to set up port-forwards to configured ports at the address
1982 which the host is allocated. The script also handles
1983 setting up the port-forward iptables entries after reboot,
1984 using the persistent lease database, and removing them
1985 when a host leaves and its DHCP lease expires.
1986
1987 Fix unaligned access problem which caused wrong log
1988 messages with some clients on some architectures. Thanks
1989 to Francois-Xavier Le Bail for the bugreport.
1990
1991 Fixed problem with DHCPRELEASE and multi-address
1992 interfaces. Enhanced contrib/wrt/dhcp_release to cope
1993 under these circumstances too. Thanks to Eldon Ziegler for
1994 input on this.
1995
1996 Updated French translation: thanks to Gildas Le Nadan.
1997
1998 Upgraded the name hash function in the DNS cache. Thanks
1999 to Oleg Khovayko for good work on this.
2000
2001 Added --clear-on-reload flag. Suggestion from Johannes
2002 Stezenbach.
2003
2004 Treat a nameserver address of 0.0.0.0 as "nothing". Erwin
2005 Cabrera spotted that specifying a nameserver as 0.0.0.0
2006 breaks things badly; this is because the network stack
2007 treats is as "this host" and an endless loop ensues.
2008
2009 Added Webmin module in contrib/webmin. Thanks to Neil
2010 Fisher for that.
2011
2012version 2.35
2013 Generate an "old" script event when a client does a DHCPREQUEST
2014 in INIT-REBOOT or SELECTING state and the lease already
2015 exists. Supply vendor and user class information to these
2016 script calls.
2017
2018 Added support for Dragonfly BSD to src/config.h
2019
2020 Removed "Upgrading to 2.0" document, which is ancient
2021 history now.
2022
2023 Tweak DHCP networking code for BSD, esp OpenBSD. Added a
2024 workaround for a bug in OpenBSD 4.0: there should finally
2025 be support for multiple interfaces under OpenBSD now.
2026 Note that no version of dnsmasq before 2.35 will work for
2027 DHCP under OpenBSD 4.0 because of a kernel bug.
2028 Thanks to Claudio Jeker, Jeb Campbell and Cristobal
2029 Palmer for help with this.
2030
2031 Optimised the cache code for the case of large
2032 /etc/hosts. This is mainly to remove the O(n-squared)
2033 algorithm which made reading large (50000 lines) files
2034 slow, but it also takes into account the size of
2035 /etc/hosts when building hash tables, so overall
2036 performance should be better. Thanks to "koko" for
2037 pointing out the problem.
2038
2039version 2.36
2040 Added --dhcp-ignore-names flag which tells dnsmasq not to
2041 use names provided by DHCP clients. Suggestion from
2042 Thomas M Steenholdt.
2043
2044 Send netmask and broadcast address DHCP options always,
2045 even if the client doesn't request them. This makes a few
2046 odd clients work better.
2047
2048 Added simple TFTP function, optimised for net-boot. It is
2049 now possible to net boot hosts using only dnsmasq. The
2050 TFTP server is read-only, binary-mode only, and designed to be
2051 secure; it adds about 4K to the dnsmasq binary.
2052
2053 Support DHCP option 120, SIP servers, (RFC 3361). Both
2054 encodings are supported, so both --dhcp-option=120,192.168.2.3
2055 and --dhcp-option=120,sip.example.net will work. Brian
2056 Candler pointed out the need for this.
2057
2058 Allow spaces in domain names, to support DNS-SD.
2059
2060 Add --ptr-record flag, again for DNS-SD. Thanks to Stephan
2061 Sokolow for the suggestion.
2062
2063 Tolerate leading space on lines in the config file. Thanks
2064 to Luigi Rizzo for pointing this out.
2065
2066 Fixed netlink.c to cope with headers from the Linux 2.6.19
2067 kernel. Thanks to Philip Wall for the bug report.
2068
2069 Added --dhcp-bridge option, but only to the FreeBSD
2070 build. This fixes an oddity with a a particular bridged
2071 network configuration on FreeBSD. Thanks to Luigi Rizzo
2072 for the patch.
2073
2074 Added FAQ entry about running dnsmasq in a Linux
2075 vserver. Thanks to Gildas le Nadan for the information.
2076
2077 Fixed problem with option parsing which interpreted "/" as
2078 an address and not a string. Thanks to Luigi Rizzo
2079 for the patch.
2080
2081 Ignore the --domain-needed flag when forwarding NS
2082 and SOA queries, since NS queries of TLDs are always legit.
2083 Marcus Better pointed out this problem.
2084
2085 Take care to forward signed DNS requests bit-perfect, so
2086 as not to affect the validity of the signature. This
2087 should allow DDNS updates to be forwarded.
2088
2089version 2.37
2090 Add better support for RFC-2855 DHCP-over-firewire and RFC
2091 -4390 DHCP-over-InfiniBand. A good suggestion from Karl Svec.
2092
2093 Some efficiency tweaks to the cache code for very large
2094 /etc/hosts files. Should improve reverse (address->name)
2095 lookups and garbage collection. Thanks to Jan 'RedBully'
2096 Seiffert for input on this.
2097
2098 Fix regression in 2.36 which made bogus-nxdomain
2099 and DNS caching unreliable. Thanks to Dennis DeDonatis
2100 and Jan Seiffert for bug reports.
2101
2102 Make DHCP encapsulated vendor-class options sane. Be
2103 warned that some conceivable existing configurations
2104 using these may break, but they work in a much
2105 simpler and more logical way now. Prepending
2106 "vendor:<client-id>" to an option encapsulates it
2107 in option 43, and the option is sent only if the
2108 client-supplied vendor-class substring-matches with
2109 the given client-id. Thanks to Dennis DeDonatis for
2110 help with this.
2111
2112 Apply patch from Jan Seiffert to tidy up tftp.c
2113
2114 Add support for overloading the filename and servername
2115 fields in DHCP packet. This gives extra option-space when
2116 these fields are not being used or with a modern client
2117 which supports moving them into options.
2118
2119 Added a LIMITS section to the man-page, with guidance on
2120 maximum numbers of clients, file sizes and tuning.
2121
2122release 2.38
2123 Fix compilation on *BSD. Thanks to Tom Hensel.
2124
2125 Don't send length zero DHCP option 43 and cope with
2126 encapsulated options whose total length exceeds 255 octets
2127 by splitting them into multiple option 43 pieces.
2128
2129 Avoid queries being retried forever when --strict-order is
2130 set and an upstream server returns a SERVFAIL
2131 error. Thanks to Johannes Stezenbach for spotting this.
2132
2133 Fix BOOTP support, broken in version 2.37.
2134
2135 Add example dhcp-options for Etherboot.
2136
2137 Add \e (for ASCII ESCape) to the set of valid escapes
2138 in config-file strings.
2139
2140 Added --dhcp-option-force flag and examples in the
2141 configuration file which use this to control PXELinux.
2142
2143 Added --tftp-no-blocksize option.
2144
2145 Set netid tag "bootp" when BOOTP (rather than DHCP) is in
2146 use. This makes it easy to customise which options are
2147 sent to BOOTP clients. (BOOTP allows only 64 octets for
2148 options, so it can be necessary to trim things.)
2149
2150 Fix rare hang in cache code, a 2.37 regression. This
2151 probably needs an infinite DHCP lease and some bad luck to
2152 trigger. Thanks to Detlef Reichelt for bug reports and testing.
2153
2154release 2.39
2155 Apply patch from Mike Baker/OpenWRT to ensure that names
2156 like "localhost." in /etc/hosts with trailing period
2157 are treated as fully-qualified.
2158
2159 Tolerate and ignore spaces around commas in the
2160 configuration file in all circumstances. Note that this
2161 may change the meaning of a few existing config files, for
2162 instance
2163 txt-record=mydomain.com, string
2164 would have a leading space in the string before, and now
2165 will not. To get the old behaviour back, use quotes:
2166 txt-record=mydomain.com," string"
2167
2168 /a is no longer a valid escape in quoted strings.
2169
2170 Added symbolic DHCP option names. Instead of
2171 dhcp-option = 3, 1.2.3.4
2172 it is now possible to do
2173 dhcp-option = option:router, 1.2.3.4
2174 To see the list of known DHCP options, use the
2175 command "dnsmasq --help dhcp"
2176 Thanks to Luigi Rizzo for a patch and good work on this.
2177
2178 Overhauled the log code so that logging can be asynchronous;
2179 dnsmasq then no longer blocks waiting for the syslog() library
2180 call. This is important on systems where syslog
2181 is being used to log over the network (and therefore doing
2182 DNS lookups) and syslog is using dnsmasq as its DNS
2183 server. Having dnsmasq block awaiting syslog under
2184 such circumstances can lead to syslog and dnsmasq
2185 deadlocking. The new behaviour is enabled with a new
2186 --log-async flag, which can also be used to tune the
2187 queue length. Paul Chambers found and diagnosed
2188 this trap for the unwary. He also did much testing of
2189 the solution along with Carlos Carvalho.
2190
2191 --log-facility can now take a file-name instead of a
2192 facility name. When this is done, dnsmasq logs to the
2193 file and not via syslog. (Failures early in startup,
2194 whilst reading configuration, will still go to syslog,
2195 and syslog is used as a log-of-last-resort if the file
2196 cannot be written.)
2197
2198 Added --log-dhcp flag. Suggestion from Carlos Carvalho.
2199
2200 Made BINDIR, MANDIR and LOCALEDIR independently
2201 over-rideable in the makefile. Suggestion from Thomas
2202 Klausner.
2203
2204 Added 127.0.0.0/8 and 169.254.0.0/16 to the address
2205 ranges affected by --bogus-priv. Thanks to Paul
2206 Chambers for the patch.
2207
2208 Fixed failure of TFTP server with --listen-address. Thanks
2209 to William Dinkel for the bug report.
2210
2211 Added --dhcp-circuitid and --dhcp-remoteid for RFC3046
2212 relay agent data matching.
2213
2214 Added --dhcp-subscrid for RFC3993 subscriber-id relay
2215 agent data matching.
2216
2217 Correctly garbage-collect connections when upstream
2218 servers go away as a result of DBus transactions.
2219
2220 Allow absolute paths for TFTP transfers even when
2221 --tftp-root is set, as long as the path matches the root,
2222 so /var/ftp/myfile is OK with tftp-root=/var/ftp.
2223 Thanks for Thomas Mizzi for the patch.
2224
2225 Updated Spanish translation - thanks to Chris Chatham.
2226
2227 Updated French translation - thanks to Gildas Le Nadan.
2228
2229 Added to example conf file example of routing PTR queries
2230 for a subnet to a different nameserver. Suggestion from
2231 Jon Nicholson.
2232
2233 Added --interface-name option. This provides a facility
2234 to add a domain name with a dynamic IP address taken from
2235 the address of a local network interface. Useful for
2236 networks with dynamic IPs.
2237
2238version 2.40
2239 Make SIGUSR2 close-and-reopen the logfile when logging
2240 direct to a file. Thanks to Carlos Carvalho for
2241 suggesting this. When a logfile is created, change
2242 its ownership to the user dnsmasq will run as, don't
2243 leave it owned by root.
2244
2245 Set a special tag, "known" for hosts which are matched by
2246 a dhcp-host or /etc/ethers line. This is especially
2247 useful to be able to do --dhcp-ignore=#known, like ISCs
2248 "deny unknown-clients".
2249
2250 Explicitly set a umask before creating the leases file,
2251 rather than relying on whatever we inherited. The
2252 permissions are set to 644.
2253
2254 Fix handling of fully-qualified names in --dhcp-host
2255 directives and in /etc/ethers. These are now rejected
2256 if the domain doesn't match that given by --domain,
2257 and used correctly otherwise. Before, putting
2258 a FQDN here could cause the whole FQDN to be used as
2259 hostname. Thanks to Michael Heimpold for the bug report.
2260
2261 Massive but trivial edit to make the "daemon" variable
2262 global, instead of copying the same value around as the
2263 first argument to half the functions in the program.
2264
2265 Updated Spanish manpage and message catalog. Thanks
2266 to Chris Chatham.
2267
2268 Added patch for support of DNS LOC records in
2269 contrib/dns-loc. Thanks to Lorenz Schori.
2270
2271 Fixed error in manpage: dhcp-ignore-name ->
2272 dhcp-ignore-names. Thanks to Daniel Mentz for spotting
2273 this.
2274
2275 Use client-id as hash-seed for DHCP address allocation
2276 with Firewire and Infiniband, as these don't supply an MAC
2277 address.
2278
2279 Tweaked TFTP file-open code to make it behave sensibly
2280 when the filesystem changes under its feet.
2281
2282 Added DNSMASQ_TIME_REMAINING environment variable to the
2283 lease-script.
2284
2285 Always send replies to DHCPINFORM requests to the source
2286 of the request and not to the address in ciaddr. This
2287 allows third-party queries.
2288
2289 Return "lease time remaining" in the reply to a DHCPINFORM
2290 request if there exists a lease for the host sending the
2291 request.
2292
2293 Added --dhcp-hostsfile option. This gives a superset of
2294 the functionality provided by /etc/ethers. Thanks to
2295 Greg Kurtzer for the suggestion.
2296
2297 Accept keyword "server" as a synonym for "nameserver" in
2298 resolv.conf. Thanks to Andrew Bartlett for the report.
2299
2300 Add --tftp-unique-root option. Suggestion from Dermot
2301 Bradley.
2302
2303 Tweak TFTP retry timer to avoid problems with difficult
2304 clients. Thanks to Dermot Bradley for assistance with
2305 this.
2306
2307 Continue to use unqualified hostnames provided by DHCP
2308 clients, even if the domain part is illegal. (The domain
2309 is ignored, and an error logged.) Previously in this
2310 situation, the whole name whould have been
2311 rejected. Thanks to Jima for the patch.
2312
2313 Handle EINTR returns from wait() correctly and reap
2314 our children's children if necessary. This fixes
2315 a problem with zombie-creation under *BSD when using
2316 --dhcp-script.
2317
2318 Escape spaces in hostnames when they are stored in the
2319 leases file and passed to the lease-change
2320 script. Suggestion from Ben Voigt.
2321
2322 Re-run the lease chamge script with an "old" event for
2323 each lease when dnsmasq receives a SIGHUP.
2324
2325 Added more useful exit codes, including passing on a
2326 non-zero exit code from the lease-script "init" call when
2327 --leasefile-ro is set.
2328
2329 Log memory allocation failure whilst the daemon is
2330 running. Allocation failures during startup are fatal,
2331 but lack of memory whilst running is worked around.
2332 This used to be silent, but now is logged.
2333
2334 Fixed misaligned memory access which caused problems on
2335 Blackfin CPUs. Thanks to Alex Landau for the patch.
2336
2337 Don't include (useless) script-calling code when NO_FORK
2338 is set. Since this tends to be used on very small uclinux
2339 systems, it's worth-while to save some code-size.
2340
2341 Don't set REUSEADDR on TFTP listening socket. There's no
2342 need to do so, and it creates confusing behaviour when
2343 inetd is also listening on the same port. Thanks to Erik
2344 Brown for spotting the problem.
2345
2346version 2.41
2347 Remove deprecated calls when compiled against libdbus 1.1.
2348
2349 Fix "strict-alias" warning in bpf.c
2350
2351 Reduce dependency on Gnu-make in build system: dnsmasq now
2352 builds with system make under OpenBSD.
2353
2354 Port to Solaris. Dnsmasq 1.x used to run under Solaris,
2355 and this release does so again, for Solaris 9 or better.
2356
2357 Allow the DNS function to be completely disabled, by
2358 setting the port to zero "--port=0". The allows dnsmasq to
2359 be used as a simple DHCP server, simple TFTP server, or
2360 both, but without the DNS server getting in the way.
2361
2362 Fix a bug where NXDOMAIN could be returned for a query
2363 even if the name's value was known for a different query
2364 type. This bug could be prodded with
2365 --local=/domain/ --address=/name.domain/1.2.3.4
2366 An IPv6 query for name.domain would return NXDOMAIN, and
2367 not the correct NOERROR. Thanks to Lars Nooden for
2368 spotting the bug and Jima for diagnosis of the problem.
2369
2370 Added per-server stats to the information logged when
2371 dnsmasq gets SIGUSR1.
2372
2373 Added counts of queries forwarded and queries answered
2374 locally (from the cache, /etc/hosts or config).
2375
2376 Fixed possible crash bug in DBus IPv6 code. Thanks to Matt
2377 Domsch and Jima.
2378
2379 Tighten checks for clashes between hosts-file and
2380 DHCP-derived names. Multiple addresses associated with a
2381 name in hosts-file no longer confuses the check.
2382
2383 Add --dhcp-no-override option to fix problems with some
2384 combinations of stage zero and stage one
2385 bootloaders. Thanks to Steve Alexander for the bug report.
2386
2387 Add --tftp-port-range option. Thanks to Daniel Mierswa for
2388 the suggestion.
2389
2390 Add --stop-dns-rebind option. Thanks to Collin Mulliner
2391 for the patch.
2392
2393 Added GPL version 3 as a license option.
2394
2395 Added --all-servers option. Thanks to Peter Naulls for the
2396 patch.
2397
2398 Extend source address mechanism so that the interface used
2399 to contact an upstream DNS server can be nailed
2400 down. Something like "--server=1.2.3.4@eth1" will force
2401 the use of eth1 for traffic to DNS-server 1.2.3.4. This
2402 facility is only available on Linux and Solaris. Thanks to
2403 Peter Naulls for prompting this.
2404
2405 Add --dhcp-optsfile option. Thanks to Carlos Carvalho for
2406 the suggestion.
2407
2408 Fixed failure to set source address for server connections
2409 when using TCP. Thanks to Simon Capper for finding this
2410 bug.
2411
2412 Refuse to give a DHCP client the address it asks for if
2413 the address range in question is not available to that
2414 particular host. Thanks to Cedric Duval for the bug
2415 report.
2416
2417 Changed behavior of DHCP server to always return total length of
2418 a new lease in DHCPOFFER, even if an existing lease
2419 exists. (It used to return the time remaining on the lease
2420 whne one existed.) This fixes problems with the Sony Ericsson
2421 K610i phone. Thanks to Hakon Stordahl for finding and
2422 fixing this.
2423
2424 Add DNSMASQ_INTERFACE to the environment of the
2425 lease-change script. Thanks to Nikos Mavrogiannopoulos for
2426 the patch.
2427
2428 Fixed broken --alias functionality. Thanks to Michael
2429 Meelis for the bug report.
2430
2431 Added French translation of the man page. Thank to Gildas
2432 Le Nadan for that.
2433
2434 Add --dhcp-match flag, to check for arbitrary options in
2435 DHCP messages from clients. This enables use of dnsmasq
2436 with gPXE. Thanks to Rance Hall for the suggestion.
2437
2438 Added --dhcp-broadcast, to force broadcast replies to DHCP
2439 clients which need them but are too dumb or too old to
2440 ask. Thanks to Bodo Bellut for the suggestion.
2441
2442 Disable path-MTU discovery on DHCP and TFTP sockets. This
2443 is never needed, and the presence of DF flags in the IP
2444 header confuses some broken PXE ROMS. Thanks again to Bodo
2445 Bellut for spotting this.
2446
2447 Fix problems with addresses which have multiple PTR
2448 records - all but one of these could get lost.
2449
2450 Fix bug with --address and ANY query type seeing REFUSED
2451 return code in replies. Thanks to Mike Wright for spotting
2452 the problem.
2453
2454 Update Spanish translation. Thanks to Chris Chatham.
2455
2456 Add --neg-ttl option.
2457
2458 Add warnings about the bad effects of --filterwin2k on
2459 SIP, XMPP and Google-talk to the example config file.
2460
2461 Fix va_list abuse in log.c. This fixes crashes on powerpc
2462 when debug mode is set. Thanks to Cedric Duval for the
2463 patch.
2464
2465version 2.42
2466 Define _GNU_SOURCE to avoid problems with later glibc
2467 headers. Thanks to Jima for spotting the problem.
2468
2469 Add --dhcp-alternate-port option. Thanks to Jan Psota for
2470 the suggestion.
2471
2472 Fix typo in code which is only used on BSD, when Dbus and
2473 IPv6 support is enabled. Thanks to Roy Marples.
2474
2475 Updated Polish translations - thank to Jan Psota.
2476
2477 Fix OS detection logic to cope with GNU/FreeBSD.
2478
2479 Fix unitialised variable in DBus code - thanks to Roy
2480 Marples.
2481
2482 Fix network enumeration code to work on later NetBSD -
2483 thanks to Roy Marples.
2484
2485 Provide --dhcp-bridge on all BSD variants.
2486
2487 Define _LARGEFILE_SOURCE which removes an arbitrary 2GB
2488 limit on logfiles. Thanks to Paul Chambers for spotting
2489 the problem.
2490
2491 Fix RFC3046 agent-id echo code, broken for many
2492 releases. Thanks to Jeremy Laine for spotting the problem
2493 and providing a patch.
2494
2495 Added Solaris 10 service manifest from David Connelly in
2496 contrib/Solaris10
2497
2498 Add --dhcp-scriptuser option.
2499
2500 Support new capability interface on suitable Linux
2501 kernels, removes "legacy support in use" messages. Thanks
2502 to Jorge Bastos for pointing this out.
2503
2504 Fix subtle bug in cache code which could cause dnsmasq to
2505 lock spinning CPU in rare circumstances. Thanks to Alex
2506 Chekholko for bug reports and help debugging.
2507
2508 Support netascii transfer mode for TFTP.
2509