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 (a] 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 (a] 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 (a] gmx.net> 21 22 Set sockaddr.sa_family on outgoing address, patch from 23 David Symonds <xoxus (a] usa.net> 24 25 Patch to clear cache on SIGHUP 26 from Jason L. Wagner <nialscorva (a] 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 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 (a] 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 (a] laposte.net> and Martin 63 Otte <otte (a] 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 (a] 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 (a] 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 (a] 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 release 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 920 release 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 965 release 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 1007 release 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 1060 release 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 1126 version 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 1145 version 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 1160 version 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 1164 version 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 1194 version 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 1216 version 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 1256 version 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 1294 version 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 1310 version 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 1327 version 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 1373 version 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 1425 version 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 1447 version 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 1547 version 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 1614 version 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 1634 version 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 1642 version 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 1698 version 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 1788 version 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 1804 version 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 1809 version 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 1836 version 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 1886 version 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 1939 version 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 2012 version 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 2039 version 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 2089 version 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 2122 release 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 2154 release 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 2238 version 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 2346 version 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 2465 version 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 2510