]> git.ipfire.org Git - people/ms/dnsmasq.git/blob - CHANGELOG
import of dnsmasq-2.5.tar.gz
[people/ms/dnsmasq.git] / CHANGELOG
1 release 0.4 - initial public release
2
3 release 0.5 - added caching, removed compiler warning on linux PPC
4
5 release 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
17 release 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
32 release 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 it's 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
59 release 0.96 Fixed embarrasing thinko in cache linked-list code.
60
61 release 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
83 release 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
105 release 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
109 release 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
121 release 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
142 release 0.995 Small tidy-ups to signal handling and cache code.
143
144 release 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
154 release 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
174 release 1.0 Stable release: dnsmasq is now considered feature-complete
175 and stable.
176
177 release 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
192 release 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
207 release 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
217 release 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
223 release 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
242 release 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
257 release 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
270 release 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
290 release 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
321 release 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
362 release 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
399 release 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
433 release 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
455 release 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
512 release 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
523 release 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
550 release 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
563 release 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
609 release 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
623 release 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
669 release 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
722 release 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
730 release 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
824 release 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
846 release 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
863