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