blob: e1daeefc9b845e65e5287ae93c3eab63f916b5ca [file] [log] [blame]
Simon Kelley078a6302012-06-07 13:56:23 +01001version 2.63
2 Do duplicate dhcp-host address check in --test mode.
3
Simon Kelley8b3ae2f2012-06-13 13:43:49 +01004 Check that tftp-root directories are accessible before
5 start-up. Thanks to Daniel Veillard for the initial patch.
6
7 Allow more than one --tfp-root flag. The per-interface
8 stuff is pointless without that.
9
Simon Kelley54dd3932012-06-20 11:23:38 +010010 Add --bind-dynamic. A hybrid mode between the default and
11 --bind-interfaces which copes with dynamically created
12 interfaces.
Simon Kelley6b617c02012-06-29 21:15:42 +010013
14 A couple of fixes to the build system for Android. Thanks
15 to Metin Kaya for the patches.
Simon Kelley54dd3932012-06-20 11:23:38 +010016
Simon Kelley8bc4cec2012-07-03 21:04:11 +010017 Remove the interface:<interface> argument in --dhcp-range, and
18 the interface argument to --enable-tftp. These were a
19 still-born attempt to allow automatic isolated
20 configuration by libvirt, but have never (to my knowledge)
21 been used, had very strange semantics, and have been
22 superceded by other mechanisms.
23
Simon Kelleyc4a7f902012-07-12 20:52:12 +010024 Fixed bug logging filenames when duplicate dhcp-host
25 addresses are found. Thanks to John Hanks for the patch.
26
Simon Kelley611ebc52012-07-16 16:23:46 +010027 Fix regression in 2.61 which broke caching of CNAME
28 chains. Thanks to Atul Gupta for the bug report.
29
Simon Kelleyb2714462012-07-17 12:09:26 +010030 Allow the target of a --cname flag to be another --cname.
Simon Kelley611ebc52012-07-16 16:23:46 +010031
Simon Kelley42243212012-07-20 15:19:18 +010032 Teach DHCPv6 about the RFC 4242 information-refresh-time
33 option, and add parsing if the minutes, hours and days
34 format for options. Thanks to Francois-Xavier Le Bail for
35 the suggestion.
36
37 Allow "w" (for week) as multiplier in lease times, as well
38 as seconds, minutes, hours and days. Álvaro Gámez Machado
39 spotted the ommission.
Simon Kelleyc4c04882012-08-06 20:09:15 +010040
41 Update French translation. Thanks to Gildas Le Nadan.
Simon Kelley42243212012-07-20 15:19:18 +010042
Simon Kelleyad094272012-08-10 17:10:54 +010043 Allow a DBus service name to be given with --enable-dbus
44 which overrides the default,
45 uk.org.thekelleys.dnsmasq. Thanks to Mathieu
46 Trudel-Lapierre for the patch.
47
Simon Kelleyfd05f122012-08-12 17:48:50 +010048 Set the "prefix on-link" bit in Router
49 Advertisements. Thanks to Gui Iribarren for the patch.
50
Simon Kelley078a6302012-06-07 13:56:23 +010051
Simon Kelley8358e0f2012-04-29 21:53:09 +010052version 2.62
53 Update German translation. Thanks to Conrad Kostecki.
54
Simon Kelleyf632e562012-05-12 15:05:34 +010055 Cope with router-solict packets wich don't have a valid
56 source address. Thanks to Vladislav Grishenko for the patch.
57
Simon Kelley919dd7c2012-05-12 15:23:09 +010058 Fixed bug which caused missing periodic router
59 advertisements with some configurations. Thanks to
60 Vladislav Grishenko for the patch.
61
Simon Kelleyc64b7f62012-05-18 10:19:59 +010062 Fixed bug which broke DHCPv6/RA with prefix lengths
63 which are not divisible by 8. Thanks to Andre Coetzee
64 for spotting this.
65
Simon Kelley18c63ef2012-05-21 14:34:15 +010066 Fix non-response to router-solicitations when
67 router-advertisement configured, but DHCPv6 not
68 configured. Thanks to Marien Zwart for the patch.
69
Simon Kelley9f7f3b12012-05-28 21:39:57 +010070 Add --dns-rr, to allow arbitrary DNS resource records.
71
Simon Kelley5ae34bf2012-06-04 21:14:03 +010072 Fixed bug which broke RA scheduling when an interface had
73 two addresses in the same network. Thanks to Jim Bos for
74 his help nailing this.
75
Simon Kelleyeabc6dd2012-03-07 20:28:20 +000076version 2.61
77 Re-write interface discovery code on *BSD to use
78 getifaddrs. This is more portable, more straightforward,
79 and allows us to find the prefix length for IPv6
80 addresses.
81
Simon Kelley01d1b8d2012-03-28 21:37:25 +010082 Add ra-names, ra-stateless and slaac keywords for DHCPv6.
83 Dnsmasq can now synthesise AAAA records for dual-stack
84 hosts which get IPv6 addresses via SLAAC. It is also now
85 possible to use SLAAC and stateless DHCPv6, and to
86 tell clients to use SLAAC addresses as well as DHCP ones.
87 Thanks to Dave Taht for help with this.
Simon Kelley7023e382012-03-09 12:05:49 +000088
Simon Kelley8b372702012-03-09 17:45:10 +000089 Add --dhcp-duid to allow DUID-EN uids to be used.
90
Simon Kelley8643ec72012-03-12 20:04:14 +000091 Explicity send DHCPv6 replies to the correct port, instead
92 of relying on clients to send requests with the correct
93 source address, since at least one client in the wild gets
Simon Kelley8358e0f2012-04-29 21:53:09 +010094 this wrong. Thanks to Conrad Kostecki for help tracking
Simon Kelley8643ec72012-03-12 20:04:14 +000095 this down.
Simon Kelleyeabc6dd2012-03-07 20:28:20 +000096
Simon Kelley8643ec72012-03-12 20:04:14 +000097 Send a preference value of 255 in DHCPv6 replies when
98 --dhcp-authoritative is in effect. This tells clients not
99 to wait around for other DHCP servers.
100
101 Better logging of DHCPv6 options.
102
Simon Kelleye759d422012-03-16 13:18:57 +0000103 Add --host-record. Thanks to Rob Zwissler for the
104 suggestion.
105
Simon Kelleya9530962012-03-20 22:07:35 +0000106 Invoke the DHCP script with action "tftp" when a TFTP file
107 transfer completes. The size of the file, address to which
108 it was sent and complete pathname are supplied. Note that
109 version 2.60 introduced some script incompatibilties
110 associated with DHCPv6, and this is a further change. To
111 be safe, scripts should ignore unknown actions, and if
112 not IPv6-aware, should exit if the environment
113 variable DNSMASQ_IAID is set. The use-case for this is
114 to track netboot/install. Suggestion from Shantanu
115 Gadgil.
116
117 Update contrib/port-forward/dnsmasq-portforward to reflect
118 the above.
119
120 Set the environment variable DNSMASQ_LOG_DHCP when running
121 the script id --log-dhcp is in effect, so that script can
Simon Kelley52d4abf2012-03-21 21:39:48 +0000122 taylor their logging verbosity. Suggestion from Malte
123 Forkel.
124
125 Arrange that addresses specified with --listen-address
126 work even if there is no interface carrying the
127 address. This is chiefly useful for IPv4 loopback
128 addresses, where any address in 127.0.0.0/8 is a valid
129 loopback address, but normally only 127.0.0.1 appears on
130 the lo interface. Thanks to Mathieu Trudel-Lapierre for
131 the idea and initial patch.
Simon Kelleya9530962012-03-20 22:07:35 +0000132
Simon Kelley7d2b5c92012-03-23 10:00:02 +0000133 Fix crash, introduced in 2.60, when a DHCPINFORM is
134 received from a network which has no valid dhcp-range.
135 Thanks to Stephane Glondu for the bug report.
136
Simon Kelleyc8257542012-03-28 21:15:41 +0100137 Add a new DHCP lease time keyword, "deprecated" for
138 --dhcp-range. This is only valid for IPv6, and sets the
139 preffered lease time for both DHCP and RA to zero. The
140 effect is that clients can continue to use the address
141 for existing connections, but new connections will use
142 other addresses, if they exist. This makes hitless
143 renumbering at least possible.
144
145 Fix bug in address6_available() which caused DHCPv6 lease
Simon Kelley8358e0f2012-04-29 21:53:09 +0100146 aquisition to fail if more than one dhcp-range in use.
Simon Kelley18f0fb02012-03-31 21:18:55 +0100147
148 Provide RDNSS and DNSSL data in router advertisements,
149 using the settings provided for DHCP options
150 option6:domain-search and option6:dns-server.
Simon Kelley6c559c32012-04-02 20:40:34 +0100151
152 Tweak logo/favicon.ico to add some transparency. Thanks to
153 SamLT for work on this.
Simon Kelleyc8257542012-03-28 21:15:41 +0100154
Simon Kelley1023dcb2012-04-09 18:00:08 +0100155 Don't cache data from non-recursive nameservers, since it
156 may erroneously look like a valid CNAME to a non-exitant
157 name. Thanks to Ben Winslow for finding this.
Simon Kelley9380ba72012-04-16 14:41:56 +0100158
159 Call SO_BINDTODEVICE on the DHCP socket(s) when doing DHCP
Simon Kelley8358e0f2012-04-29 21:53:09 +0100160 on exactly one interface and --bind-interfaces is set. This
Simon Kelley9380ba72012-04-16 14:41:56 +0100161 makes the OpenStack use-case of one dnsmasq per virtual
162 interface work. This is only available on Linux; it's not
163 supported on other platforms. Thanks to Vishvananda Ishaya
Simon Kelleye46164e2012-04-16 16:39:38 +0100164 and the OpenStack team for the suggestion.
165
166 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelleyd1c759c2012-04-16 17:26:19 +0100167
168 Give correct from-cache answers to explict CNAME queries.
169 Thanks to Rob Zwissler for spotting this.
Simon Kelley1023dcb2012-04-09 18:00:08 +0100170
Simon Kelleyfc92ead2012-04-22 21:28:24 +0100171 Add --tftp-lowercase option. Thanks to Oliver Rath for the
Simon Kelley61ce6002012-04-20 21:28:49 +0100172 patch.
Simon Kelleydcffad22012-04-24 15:25:18 +0100173
174 Ensure that the DBus DhcpLeaseUpdated events are generated
175 when a lease goes through INIT_REBOOT state, even if the
Simon Kelley8358e0f2012-04-29 21:53:09 +0100176 dhcp-script is not in use. Thanks to Antoaneta-Ecaterina
Simon Kelleydcffad22012-04-24 15:25:18 +0100177 Ene for the patch.
Simon Kelley19d69be2012-04-27 10:14:34 +0100178
179 Fix failure of TFTP over IPv4 on OpenBSD platform. Thanks
180 to Brad Smith for spotting this.
Simon Kelley61ce6002012-04-20 21:28:49 +0100181
Simon Kelleyc8257542012-03-28 21:15:41 +0100182
Simon Kelleyc72daea2012-01-05 21:33:27 +0000183version 2.60
184 Fix compilation problem in Mac OS X Lion. Thanks to Olaf
185 Flebbe for the patch.
Simon Kelley74c95c22011-10-19 09:33:39 +0100186
Simon Kelleyc72daea2012-01-05 21:33:27 +0000187 Fix DHCP when using --listen-address with an IP address
188 which is not the primary address of an interface.
189
190 Add --dhcp-client-update option.
191
192 Add Lua integration. Dnsmasq can now execute a DHCP
193 lease-change script written in Lua. This needs to be
194 enabled at compile time by setting HAVE_LUASCRIPT in
195 src/config.h or running "make COPTS=-DHAVE_LUASCRIPT"
196 Thanks to Jan-Piet Mens for the idea and proof-of-concept
197 implementation.
198
199 Tidied src/config.h to distinguish between
200 platform-dependent compile-time options which are selected
201 automatically, and builder-selectable compile time
202 options. Document the latter better, and describe how to
203 set them from the make command line.
204
205 Tidied up IPPROTO_IP/SOL_IP (and IPv6 equivalent)
206 confusion. IPPROTO_IP works everywhere now.
207
208 Set TOS on DHCP sockets, this improves things on busy
209 wireless networks. Thanks to Dave Taht for the patch.
210
Simon Kelley984d2fd2012-01-06 14:34:32 +0000211 Determine VERSION automatically based on git magic:
212 release tags or hash values.
Simon Kelleyc72daea2012-01-05 21:33:27 +0000213
Simon Kelleya2761752012-01-18 16:07:21 +0000214 Improve start-up speed when reading large hosts files
215 containing many distinct addresses.
216
217 Fix problem if dnsmasq is started without the stdin,
218 stdout and stderr file descriptors open. This can manifest
219 itself as 100% CPU use. Thanks to Chris Moore for finding
220 this.
221
Simon Kelley9bbc8872012-02-09 21:33:09 +0000222 Fix shell-scripting bug in bld/pkg-wrapper. Thanks to
223 Mark Mitchell for the patch.
224
Simon Kelley751d6f42012-02-10 15:24:51 +0000225 Allow the TFP server or boot server in --pxe-service, to
226 be a domain name instead of an IP address. This allows for
227 round-robin to multiple servers, in the same way as
228 --dhcp-boot. A good suggestion from Cristiano Cumer.
229
Simon Kelleyfdacfb02012-02-28 15:20:25 +0000230 Support BUILDDIR variable in the Makefile. Allows builds
231 for multiple archs from the same source tree with eg.
232 make BUILDDIR=linux (relative to dnsmasq tree)
233 make BUILDDIR=/tmp/openbsd (absolute path)
Simon Kelleye5ffdb92012-02-13 14:19:25 +0000234 If BUILDDIR is not set, compilation happens in the src
Simon Kelleyb36ae192012-02-13 12:54:34 +0000235 directory, as before. Suggestion from Mark Mitchell.
236
Simon Kelleyfdacfb02012-02-28 15:20:25 +0000237 Support DHCPv6. Support is there for the sort of things
238 the existing v4 server does, including tags, options,
239 static addresses and relay support. Missing is prefix
240 delegation, which is probably not required in the dnsmasq
241 niche, and an easy way to accept prefix delegations from
242 an upstream DHCPv6 server, which is. Future plans include
243 support for DHCPv6 router option and MAC address option
244 (to make selecting clients by MAC address work like IPv4).
245 These will be added as the standards mature.
246 This code has been tested, but this is the first release,
247 so don't bet the farm on it just yet. Many thanks to all
248 testers who have got it this far.
Simon Kelley1adadf52012-02-13 22:15:58 +0000249
Simon Kelleyac8540c2012-02-26 20:57:31 +0000250 Support IPv6 router advertisements. This is a
251 simple-minded implementation, aimed at providing the
252 vestigial RA needed to go alongside IPv6. Is picks up
253 configuration from the DHCPv6 conf, and should just need
254 enabling with --enable-ra.
255
Simon Kelley552af8b2012-02-29 20:10:31 +0000256 Fix long-standing wrinkle with --localise-queries that
257 could result in wrong answers when DNS packets arrive
258 via an interface other than the expected one. Thanks to
259 Lorenzo Milesi and John Hanks for spotting this one.
Simon Kelley71ee7ee2012-03-03 18:06:49 +0000260
261 Update French translation. Thanks to Gildas Le Nadan.
Simon Kelley552af8b2012-02-29 20:10:31 +0000262
Simon Kelleydf66e342012-03-04 20:04:22 +0000263 Update Polish translation. Thanks to Jan Psota.
264
265
Simon Kelleyc72daea2012-01-05 21:33:27 +0000266version 2.59
267 Fix regression in 2.58 which caused failure to start up
268 with some combinations of dnsmasq config and IPv6 kernel
269 network config. Thanks to Brielle Bruns for the bug
270 report.
271
272 Improve dnsmasq's behaviour when network interfaces are
273 still doing duplicate address detection (DAD). Previously,
274 dnsmasq would wait up to 20 seconds at start-up for the
275 DAD state to terminate. This is broken for bridge
276 interfaces on recent Linux kernels, which don't start DAD
277 until the bridge comes up, and so can take arbitrary
278 time. The new behaviour lets dnsmasq poll for an arbitrary
279 time whilst providing service on other interfaces. Thanks
280 to Stephen Hemminger for pointing out the problem.
Simon Kelley74c95c22011-10-19 09:33:39 +0100281
282
Simon Kelley7de060b2011-08-26 17:24:52 +0100283version 2.58
284 Provide a definition of the SA_SIZE macro where it's
285 missing. Fixes build failure on openBSD.
286
287 Don't include a zero terminator at the end of messages
288 sent to /dev/log when /dev/log is a datagram socket.
289 Thanks to Didier Rabound for spotting the problem.
290
291 Add --dhcp-sequential-ip flag, to force allocation of IP
292 addresses in ascending order. Note that the default
293 pseudo-random mode is in general better but some
294 server-deployment applications need this.
295
296 Fix problem where a server-id of 0.0.0.0 is sent to a
297 client when a dhcp-relay is in use if a client renews a
298 lease after dnsmasq restart and before any clients on the
299 subnet get a new lease. Thanks to Mike Ruiz for assistance
300 in chasing this one down.
301
302 Don't return NXDOMAIN to an AAAA query if we have CNAME
303 which points to an A record only: NODATA is the correct
304 reply in this case. Thanks to Tom Fernandes for spotting
305 the problem.
306
307 Relax the need to supply a netmask in --dhcp-range for
308 networks which use a DHCP relay. Whilst this is still
309 desireable, in the absence of a netmask dnsmasq will use
310 a default based on the class (A, B, or C) of the address.
311 This should at least remove a cause of mysterious failure
312 for people using RFC1918 addresses and relays.
313
314 Add support for Linux conntrack connection marking. If
315 enabled with --conntrack, the connection mark for incoming
316 DNS queries will be copied to the outgoing connections
317 used to answer those queries. This allows clever firewall
318 and accounting stuff. Only available if dnsmasq is
319 compiled with HAVE_CONNTRACK and adds a dependency on
320 libnetfilter-conntrack. Thanks to Ed Wildgoose for the
321 initial idea, testing and sponsorship of this function.
322
323 Provide a sane error message when someone attempts to
324 match a tag in --dhcp-host.
325
326 Tweak the behaviour of --domain-needed, to avoid problems
327 with recursive nameservers downstream of dnsmasq. The new
328 behaviour only stops A and AAAA queries, and returns
329 NODATA rather than NXDOMAIN replies.
330
331 Efficiency fix for very large DHCP configurations, thanks
332 to James Gartrell and Mike Ruiz for help with this.
333
334 Allow the TFTP-server address in --dhcp-boot to be a
335 domain-name which is looked up in /etc/hosts. This can
336 give multiple IP addresses which are used round-robin,
337 thus doing TFTP server load-balancing. Thanks to Sushil
338 Agrawal for the patch.
339
340 When two tagged dhcp-options for a particular option
341 number are both valid, use the one which is valid without
342 a tag from the dhcp-range. Allows overriding of the value
343 of a DHCP option for a particular host as well as
344 per-network values. So
345 --dhcp-range=set:interface1,......
346 --dhcp-host=set:myhost,.....
347 --dhcp-option=tag:interface1,option:nis-domain,"domain1"
348 --dhcp-option=tag:myhost,option:nis-domain,"domain2"
349 will set the NIS-domain to domain1 for hosts in the range, but
350 override that to domain2 for a particular host.
351
352 Fix bug which resulted in truncated files and timeouts for
353 some TFTP transfers. The bug only occurs with netascii
354 transfers and needs an unfortunate relationship between
355 file size, blocksize and the number of newlines in the
356 last block before it manifests itself. Many thanks to
357 Alkis Georgopoulos for spotting the problem and providing
358 a comprehensive test-case.
359
360 Fix regression in TFTP server on *BSD platforms introduced
361 in version 2.56, due to confusion with sockaddr
362 length. Many thanks to Loïc Pefferkorn for finding this.
363
364 Support scope-ids in IPv6 addresses of nameservers from
365 /etc/resolv.conf and in --server options. Eg
366 nameserver fe80::202:a412:4512:7bbf%eth0 or
367 server=fe80::202:a412:4512:7bbf%eth0. Thanks to
368 Michael Stapelberg for the suggestion.
369
370 Update Polish translation, thanks to Jan Psota.
371
372 Update French translation. Thanks to Gildas Le Nadan.
373
374
Simon Kelley572b41e2011-02-18 18:11:18 +0000375version 2.57
376 Add patches to allow build under Android.
377
378 Provide our own header for the DNS protocol, rather than
379 relying on arpa/nameser.h. This has proved more or less
380 defective over the years and the final straw is that it's
381 effectively empty on Android.
382
383 Fix regression in 2.56 which caused hex constants in
384 configuration to be rejected if they contain the '*'
385 wildcard.
386
387 Correct wrong casts of arguments to ctype.h functions,
388 isdigit(), isxdigit() etc. Thanks to Matthias Andree for
389 spotting this.
390
391 Allow build with IDN support independently from i18n.
392 IDN support continues to be included automatically
393 when i18n is included.
394 'make COPTS=-DHAVE_IDN' is the magic incantation.
395
396 Modify check on extraneous command line junk (added in
397 2.56) so that it doesn't complain about extra _empty_
398 arguments. Otherwise this breaks libvirt.
399
400
Simon Kelley28866e92011-02-14 20:19:14 +0000401version 2.56
402 Add a patch to allow dnsmasq to get interface names right in a
403 Solaris zone. Thanks to Dj Padzensky for this.
404
405 Improve data-type parsing heuristics so that
406 --dhcp-option=option:domain-search,.
407 treats the value as a string and not an IP address.
408 Thanks to Clemens Fischer for spotting that.
409
410 Add IPv6 support to the TFTP server. Many thanks to Jan
411 'RedBully' Seiffert for the patches.
412
413 Log DNS queries at level LOG_INFO, rather then
414 LOG_DEBUG. This makes things consistent with DHCP
415 logging. Thanks to Adam Pribyl for spotting the problem.
416
417 Ensure that dnsmasq terminates cleanly when using
418 --syslog-async even if it cannot make a connection to the
419 syslogd.
420
421 Add --add-mac option. This is to support currently
422 experimental DNS filtering facilities. Thanks to Benjamin
423 Petrin for the orignal patch.
424
425 Fix bug which meant that tags were ignored in dhcp-range
426 configuration specifying PXE-proxy service. Thanks to
427 Cristiano Cumer for spotting this.
428
429 Raise an error if there is extra junk, not part of an
430 option, on the command line.
431
432 Flag a couple of log messages in cache.c as coming from
433 the DHCP subsystem. Thanks to Olaf Westrik for the patch.
434
435 Omit timestamps from logs when a) logging to stderr and
436 b) --keep-in-forground is set. The logging facility on the
437 other end of stderr can be assumned to supply them. Thanks
438 to John Hallam for the patch.
439
440 Don't complain about strings longer than 255 characters in
441 --txt-record, just split the long strings into 255
442 character chunks instead.
443
444 Fix crash on double-free. This bug can only happen when
445 dhcp-script is in use and then only in rare circumstances
446 triggered by high DHCP transaction rate and a slow
447 script. Thanks to Ferenc Wagner for finding the problem.
448
449 Only log that a file has been sent by TFTP after the
450 transfer has completed succesfully.
451
452 A good suggestion from Ferenc Wagner: extend
453 the --domain option to allow this sort of thing:
454 --domain=thekelleys.org.uk,192.168.0.0/24,local
455 which automatically creates
456 --local=/thekelleys.org.uk/
457 --local=/0.168.192.in-addr.arpa/
458
459 Tighten up syntax checking of hex contants in the config
460 file. Thanks to Fred Damen for spotting this.
461
462 Add dnsmasq logo/icon, contributed by Justin Swift. Many
463 thanks for that.
464
465 Never cache DNS replies which have the 'cd' bit set, or
466 which result from queries forwarded with the 'cd' bit
467 set. The 'cd' bit instructs a DNSSEC validating server
468 upstream to ignore signature failures and return replies
469 anyway. Without this change it's possible to pollute the
470 dnsmasq cache with bad data by making a query with the
471 'cd' bit set and subsequent queries would return this data
472 without its being marked as suspect. Thanks to Anders
473 Kaseorg for pointing out this problem.
474
475 Add --proxy-dnssec flag, for compliance with RFC
476 4035. Dnsmasq will now clear the 'ad' bit in answers returned
477 from upstream validating nameservers unless this option is
478 set.
479
480 Allow a filename of "-" for --conf-file to read
481 stdin. Suggestion from Timothy Redaelli.
482
483 Rotate the order of SRV records in replies, to provide
484 round-robin load balancing when all the priorities are
485 equal. Thanks to Peter McKinney for the suggestion.
486
487 Edit
488 contrib/MacOSX-launchd/uk.org.thekelleys.dnsmasq.plist
489 so that it doesn't log all queries to a file by
490 default. Thanks again to Peter McKinney.
491
492 By default, setting an IPv4 address for a domain but not
493 an IPv6 address causes dnsmasq to return
494 an NODATA reply for IPv6 (or vice-versa). So
495 --address=/google.com/1.2.3.4 stops IPv6 queries for
496 *google.com from being forwarded. Make it possible to
497 override this behaviour by defining the sematics if the
498 same domain appears in both --server and --address.
499 In that case, the --address has priority for the address
500 family in which is appears, but the --server has priority
501 of the address family which doesn't appear in --adddress
502 So:
503 --address=/google.com/1.2.3.4
504 --server=/google.com/#
505 will return 1.2.3.4 for IPv4 queries for *.google.com but
506 forward IPv6 queries to the normal upstream nameserver.
507 Similarly when setting an IPv6 address
508 only this will allow forwarding of IPv4 queries. Thanks to
509 William for pointing out the need for this.
510
511 Allow more than one --dhcp-optsfile and --dhcp-hostsfile
512 and make them understand directories as arguments in the
513 same way as --addn-hosts. Suggestion from John Hanks.
514
515 Ignore rebinding requests for leases we don't know
516 about. Rebind is broadcast, so we might get to overhear a
517 request meant for another DHCP server. NAKing this is
518 wrong. Thanks to Brad D'Hondt for assistance with this.
519
Simon Kelley572b41e2011-02-18 18:11:18 +0000520 Fix cosmetic bug which produced strange output when
521 dumping cache statistics with some configurations. Thanks
522 to Fedor Kozhevnikov for spotting this.
Simon Kelley28866e92011-02-14 20:19:14 +0000523
524
Simon Kelleyc52e1892010-06-07 22:01:39 +0100525version 2.55
Simon Kelley28866e92011-02-14 20:19:14 +0000526 Fix crash when /etc/ethers is in use. Thanks to
527 Gianluigi Tiesi for finding this.
Simon Kelleyc52e1892010-06-07 22:01:39 +0100528
Simon Kelley28866e92011-02-14 20:19:14 +0000529 Fix crash in netlink_multicast(). Thanks to Arno Wald for
530 finding this one.
Simon Kelleyc52e1892010-06-07 22:01:39 +0100531
Simon Kelley28866e92011-02-14 20:19:14 +0000532 Allow the empty domain "." in dhcp domain-search (119)
533 options.
Simon Kelleyc52e1892010-06-07 22:01:39 +0100534
535
536version 2.54
Simon Kelley28866e92011-02-14 20:19:14 +0000537 There is no version 2.54 to avoid confusion with 2.53,
538 which incorrectly identifies itself as 2.54.
Simon Kelleyc52e1892010-06-07 22:01:39 +0100539
540
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100541version 2.53
542 Fix failure to compile on Debian/kFreeBSD. Thanks to
543 Axel Beckert and Petr Salinger.
544
545 Fix code to avoid scary strict-aliasing warnings
546 generated by gcc 4.4.
547
548 Added FAQ entry warning about DHCP failures with Vista
549 when firewalls block 255.255.255.255.
550
551 Fixed bug which caused bad things to happen if a
552 resolv.conf file which exists is subsequently removed.
553 Thanks to Nikolai Saoukh for the patch.
554
555 Rationalised the DHCP tag system. Every configuration item
556 which can set a tag does so by adding "set:<tag>" and
557 every configuration item which is conditional on a tag is
558 made so by "tag:<tag>". The NOT operator changes to '!',
559 which is a bit more intuitive too. Dhcp-host directives
560 can set more than one tag now. The old '#' NOT,
561 "net:" prefix and no-prefixes are still honoured, so
562 no existing config file needs to be changed, but
563 the documentation and new-style config files should be
564 much less confusing.
565
566 Added --tag-if to allow boolean operations on tags.
567 This allows complicated logic to be clearer and more
568 general. A great suggestion from Richard Voigt.
569
570 Add broadcast/unicast information to DHCP logging.
571
572 Allow --dhcp-broadcast to be unconditional.
573
574 Fixed incorrect behaviour with NOT <tag> conditionals in
575 dhcp-options. Thanks to Max Turkewitz for assistance
576 finding this.
577
578 If we send vendor-class encapsulated options based on the
579 vendor-class supplied by the client, and no explicit
580 vendor-class option is given, echo back the vendor-class
581 from the client.
582
583 Fix bug which stopped dnsmasq from matching both a
584 circuitid and a remoteid. Thanks to Ignacio Bravo for
585 finding this.
586
587 Add --dhcp-proxy, which makes it possible to configure
588 dnsmasq to use a DHCP relay agent as a full proxy, with
589 all DHCP messages passing through the proxy. This is
590 useful if the relay adds extra information to the packets
591 it forwards, but cannot be configured with the RFC 5107
592 server-override option.
593
594 Added interface:<iface name> part to dhcp-range. The
595 semantics of this are very odd at first sight, but it
596 allows a single line of the form
597 dhcp-range=interface:virt0,192.168.0.4,192.168.0.200
598 to be added to dnsmasq configuration which then supplies
599 DHCP and DNS services to that interface, without affecting
600 what services are supplied to other interfaces and
601 irrespective of the existance or lack of
602 interface=<interface>
603 lines elsewhere in the dnsmasq configuration. The idea is
604 that such a line can be added automatically by libvirt
605 or equivalent systems, without disturbing any manual
606 configuration.
607
608 Similarly to the above, allow --enable-tftp=<interface>
609
610 Allow a TFTP root to be set separately for requests via
611 different interfaces, --tftp-root=<path>,<interface>
612
613 Correctly handle and log clashes between CNAMES and
614 DNS names being given to DHCP leases. This fixes a bug
615 which caused nonsense IP addresses to be logged. Thanks to
616 Sergei Zhirikov for finding and analysing the problem.
617
618 Tweak flush_log so as to avoid leaving the log
619 file in non-blocking mode. O_NONBLOCK is a property of the
620 file, not the process/descriptor.
621
622 Fix contrib/Solaris10/create_package
623 (/usr/man -> /usr/share/man) Thanks to Vita Batrla.
624
625 Fix a problem where, if a client got a lease, then went
626 to another subnet and got another lease, then moved back,
627 it couldn't resume the old lease, but would instead get
628 a new address. Thanks to Leonardo Rodrigues for spotting
629 this and testing the fix.
630
631 Fix weird bug which sometimes omitted certain characters
632 from the start of quoted strings in dhcp-options. Thanks
633 to Dayton Turner for spotting the problem.
634
635 Add facility to redirect some domains to the standard
636 upstream servers: this allows something like
637 --server=/google.com/1.2.3.4 --server=/www.google.com/#
638 which will send queries for *.google.com to 1.2.3.4,
639 except *www.google.com which will be forwarded as usual.
640 Thanks to AJ Weber for prompting this addition.
641
642 Improve the hash-algorithm used to generate IP addresses
643 from MAC addresses during initial DHCP address
644 allocation. This improves performance when large numbers
645 of hosts with similar MAC addresses all try and get an IP
646 address at the same time. Thanks to Paul Smith for his
647 work on this.
648
649 Tweak DHCP code so that --bridge-interface can be used to
650 select which IP alias of an interface should be used for
651 DHCP purposes on Linux. If eth0 has an alias eth0:dhcp
652 then adding --bridge-interface=eth0:dhcp,eth0 will use
653 the address of eth0:dhcp to determine the correct subnet
654 for DHCP address allocation. Thanks to Pawel Golaszewski
655 for prompting this and Eric Cooper for further testing.
656
657 Add --dhcp-generate-names. Suggestion by Ferenc Wagner.
658
659 Tweak DNS server selection algorithm when there is more
660 than one server available for a domain, eg.
661 --server=/mydomain/1.1.1.1
662 --server=/mydomain/2.2.2.2
663 Thanks to Alberto Cuesta-Canada for spotting a weakness
664 here.
665
666 Add --max-ttl. Thanks to Fredrik Ringertz for the patch.
667
668 Allow --log-facility=- to force all logging to
669 stderr. Suggestion from Clemens Fischer.
670
671 Fix regression which caused configuration like
672 --address=/.domain.com/1.2.3.4 to be rejected. The dot to the
673 left of the domain has been implied and not required for a
674 long time, but it should be accepted for backward
675 compatibility. Thanks to Andrew Burcin for spotting this.
676
677 Add --rebind-domain-ok and --rebind-localhost-ok.
678 Suggestion from Clemens Fischer.
679
680 Log replies to queries of type TXT, when --log-queries
681 is set.
682
683 Fix compiler warnings when compiled with -DNO_DHCP. Thanks
684 to Shantanu Gadgil for the patch.
685
686 Updated French translation. Thanks to Gildas Le Nadan.
687
688 Updated Polish translation. Thanks to Jan Psota.
689
690 Updated German translation. Thanks to Matthias Andree.
691
692 Added contrib/static-arp, thanks to Darren Hoo.
693
694 Fix corruption of the domain when a name from /etc/hosts
695 overrides one supplied by a DHCP client. Thanks to Fedor
696 Kozhevnikov for spotting the problem.
697
698 Updated Spanish translation. Thanks to Chris Chatham.
699
700
Simon Kelley316e2732010-01-22 20:16:09 +0000701version 2.52
702 Work around a Linux kernel bug which insists that the
703 length of the option passed to setsockopt must be at least
704 sizeof(int) bytes, even if we're calling SO_BINDTODEVICE
705 and the device name is "lo". Note that this is fixed
706 in kernel 2.6.31, but the workaround is harmless and
707 allows earlier kernels to be used. Also fix dnsmasq
708 bug which reported the wrong address when this failed.
709 Thanks to Fedor for finding this.
710
711 The API for IPv6 PKTINFO changed around Linux kernel
712 2.6.14. Workaround the case where dnsmasq is compiled
713 against newer headers, but then run on an old kernel:
714 necessary for some *WRT distros.
715
716 Re-read the set of network interfaces when re-loading
717 /etc/resolv.conf if --bind-interfaces is not set. This
718 handles the case that loopback interfaces do not exist
719 when dnsmasq is first started.
720
721 Tweak the PXE code to support port 4011. This should
722 reduce broadcasts and make things more reliable when other
723 servers are around. It also improves inter-operability
724 with certain clients.
725
726 Make a pxe-service configuration with no filename or boot
727 service type legal: this does a local boot. eg.
728 pxe-service=x86PC, "Local boot"
729
730 Be more conservative in detecting "A for A"
731 queries. Dnsmasq checks if the name in a type=A query looks
732 like a dotted-quad IP address and answers the query itself
733 if so, rather than forwarding it. Previously dnsmasq
734 relied in the library function inet_addr() to convert
735 addresses, and that will accept some things which are
736 confusing in this context, like 1.2.3 or even just
737 1234. Now we only do A for A processing for four decimal
738 numbers delimited by dots.
739
740 A couple of tweaks to fix compilation on Solaris. Thanks
741 to Joel Macklow for help with this.
742
743 Another Solaris compilation tweak, needed for Solaris
744 2009.06. Thanks to Lee Essen for that.
745
746 Added extract packaging stuff from Lee Essen to
747 contrib/Solaris10.
748
749 Increased the default limit on number of leases to 1000
750 (from 150). This is mainly a defence against DoS attacks,
751 and for the average "one for two class C networks"
752 installation, IP address exhaustion does that just as
753 well. Making the limit greater than the number of IP
754 addresses available in such an installation removes a
755 surprise which otherwise can catch people out.
756
757 Removed extraneous trailing space in the value of the
758 DNSMASQ_TIME_REMAINING DNSMASQ_LEASE_LENGTH and
759 DNSMASQ_LEASE_EXPIRES environment variables. Thanks to
760 Gildas Le Nadan for spotting this.
761
762 Provide the network-id tags for a DHCP transaction to
763 the lease-change script in the environment variable
764 DNSMASQ_TAGS. A good suggestion from Gildas Le Nadan.
765
766 Add support for RFC3925 "Vendor-Identifying Vendor
767 Options". The syntax looks like this:
768 --dhcp-option=vi-encap:<enterprise number>, .........
769
770 Add support to --dhcp-match to allow matching against
771 RFC3925 "Vendor-Identifying Vendor Classes". The syntax
772 looks like this:
773 --dhcp-match=tag,vi-encap<enterprise number>, <value>
774
775 Add some application specific code to assist in
776 implementing the Broadband forum TR069 CPE-WAN
777 specification. The details are in contrib/CPE-WAN/README
778
779 Increase the default DNS packet size limit to 4096, as
780 recommended by RFC5625 section 4.4.3. This can be
781 reconfigured using --edns-packet-max if needed. Thanks to
782 Francis Dupont for pointing this out.
783
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100784 Rewrite query-ids even for TSIG signed packets, since
Simon Kelley316e2732010-01-22 20:16:09 +0000785 this is allowed by RFC5625 section 4.5.
786
787 Use getopt_long by default on OS X. It has been supported
788 since version 10.3.0. Thanks to Arek Dreyer for spotting
789 this.
790
791 Added up-to-date startup configuration for MacOSX/launchd
792 in contrib/MacOSX-launchd. Thanks to Arek Dreyer for
793 providing this.
794
795 Fix link error when including Dbus but excluding DHCP.
796 Thanks to Oschtan for the bug report.
797
798 Updated French translation. Thanks to Gildas Le Nadan.
799
800 Updated Polish translation. Thanks to Jan Psota.
801
802 Updated Spanish translation. Thanks to Chris Chatham.
803
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100804 Fixed confusion about domains, when looking up DHCP hosts
805 in /etc/hosts. This could cause spurious "Ignoring
806 domain..." messages. Thanks to Fedor Kozhevnikov for
807 finding and analysing the problem.
Simon Kelley316e2732010-01-22 20:16:09 +0000808
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100809
Simon Kelley1f15b812009-10-13 17:49:32 +0100810version 2.51
811 Add support for internationalised DNS. Non-ASCII characters
812 in domain names found in /etc/hosts, /etc/ethers and
813 /etc/dnsmasq.conf will be correctly handled by translation to
814 punycode, as specified in RFC3490. This function is only
815 available if dnsmasq is compiled with internationalisation
816 support, and adds a dependency on GNU libidn. Without i18n
817 support, dnsmasq continues to be compilable with just
818 standard tools. Thanks to Yves Dorfsman for the
819 suggestion.
820
821 Add two more environment variables for lease-change scripts:
822 First, DNSMASQ_SUPPLIED_HOSTNAME; this is set to the hostname
823 supplied by a client, even if the actual hostname used is
824 over-ridden by dhcp-host or dhcp-ignore-names directives.
825 Also DNSMASQ_RELAY_ADDRESS which gives the address of
826 a DHCP relay, if used.
827 Suggestions from Michael Rack.
828
829 Fix regression which broke echo of relay-agent
830 options. Thanks to Michael Rack for spotting this.
831
832 Don't treat option 67 as being interchangeable with
833 dhcp-boot parameters if it's specified as
834 dhcp-option-force.
835
836 Make the code to call scripts on lease-change compile-time
837 optional. It can be switched off by editing src/config.h
838 or building with "make COPTS=-DNO_SCRIPT".
839
840 Make the TFTP server cope with filenames from Windows/DOS
841 which use '\' as pathname separator. Thanks to Ralf for
842 the patch.
843
844 Updated Polish translation. Thanks to Jan Psota.
845
846 Warn if an IP address is duplicated in /etc/ethers. Thanks
847 to Felix Schwarz for pointing this out.
848
849 Teach --conf-dir to take an option list of file suffices
850 which will be ignored when scanning the directory. Useful
851 for backup files etc. Thanks to Helmut Hullen for the
852 suggestion.
853
854 Add new DHCP option named tftpserver-address, which
855 corresponds to the third argument of dhcp-boot. This
856 allows the complete functionality of dhcp-boot to be
857 replicated with dhcp-option. Useful when using
858 dhcp-optsfile.
859
860 Test which upstream nameserver to use every 10 seconds
861 or 50 queries and not just when a query times out and
862 is retried. This should improve performance when there
863 is a slow nameserver in the list. Thanks to Joe for the
864 suggestion.
865
866 Don't do any PXE processing, even for clients with the
867 correct vendorclass, unless at least one pxe-prompt or
868 pxe-service option is given. This stops dnsmasq
869 interfering with proxy PXE subsystems when it is just
870 the DHCP server. Thanks to Spencer Clark for spotting this.
871
872 Limit the blocksize used for TFTP transfers to a value
873 which avoids packet fragmentation, based on the MTU of the
874 local interface. Many netboot ROMs can't cope with
875 fragmented packets.
876
877 Honour dhcp-ignore configuration for PXE and proxy-PXE
878 requests. Thanks to Niels Basjes for the bug report.
879
880 Updated French translation. Thanks to Gildas Le Nadan.
881
882
Simon Kelley77e94da2009-08-31 17:32:17 +0100883version 2.50
Simon Kelley1f15b812009-10-13 17:49:32 +0100884 Fix security problem which allowed any host permitted to
Simon Kelley77e94da2009-08-31 17:32:17 +0100885 do TFTP to possibly compromise dnsmasq by remote buffer
886 overflow when TFTP enabled. Thanks to Core Security
887 Technologies and Iván Arce, Pablo Hernán Jorge, Alejandro
888 Pablo Rodriguez, Martín Coco, Alberto Soliño Testa and
889 Pablo Annetta. This problem has Bugtraq id: 36121
890 and CVE: 2009-2957
891
892 Fix a problem which allowed a malicious TFTP client to
893 crash dnsmasq. Thanks to Steve Grubb at Red Hat for
894 spotting this. This problem has Bugtraq id: 36120 and
895 CVE: 2009-2958
896
897
Simon Kelley03a97b62009-06-10 20:55:49 +0100898version 2.49
899 Fix regression in 2.48 which disables the lease-change
900 script. Thanks to Jose Luis Duran for spotting this.
901
902 Log TFTP "file not found" errors. These were not logged,
903 since a normal PXELinux boot generates many of them, but
904 the lack of the messages seems to be more confusing than
905 routinely seeing them when there is no real error.
906
907 Update Spanish translation. Thanks to Chris Chatham.
908
909
Simon Kelley7622fc02009-06-04 20:32:05 +0100910version 2.48
911 Archived the extensive, backwards, changelog to
912 CHANGELOG.archive. The current changelog now runs from
913 version 2.43 and runs conventionally.
Simon Kelley9e4abcb2004-01-22 19:47:41 +0000914
Simon Kelley7622fc02009-06-04 20:32:05 +0100915 Fixed bug which broke binding of servers to physical
916 interfaces when interface names were longer than four
917 characters. Thanks to MURASE Katsunori for the patch.
Simon Kelley9e4abcb2004-01-22 19:47:41 +0000918
Simon Kelley7622fc02009-06-04 20:32:05 +0100919 Fixed netlink code to check that messages come from the
920 correct source, and not another userspace process. Thanks
921 to Steve Grubb for the patch.
Simon Kelley9e4abcb2004-01-22 19:47:41 +0000922
Simon Kelley7622fc02009-06-04 20:32:05 +0100923 Maintainability drive: removed bug and missing feature
924 workarounds for some old platforms. Solaris 9, OpenBSD
925 older than 4.1, Glibc older than 2.2, Linux 2.2.x and
926 DBus older than 1.1.x are no longer supported.
Simon Kelley9e4abcb2004-01-22 19:47:41 +0000927
Simon Kelley7622fc02009-06-04 20:32:05 +0100928 Don't read included configuration files more than once:
929 allows complex configuration structures without problems.
Simon Kelley9e4abcb2004-01-22 19:47:41 +0000930
Simon Kelley7622fc02009-06-04 20:32:05 +0100931 Mark log messages from the various subsystems in dnsmasq:
932 messages from the DHCP subsystem now have the ident string
933 "dnsmasq-dhcp" and messages from TFTP have ident
934 "dnsmasq-tftp". Thanks to Olaf Westrik for the patch.
Simon Kelley9e4abcb2004-01-22 19:47:41 +0000935
Simon Kelley7622fc02009-06-04 20:32:05 +0100936 Fix possible infinite DHCP protocol loop when an IP
937 address nailed to a hostname (not a MAC address) and a
938 host sometimes provides the name, sometimes not.
Simon Kelley9e4abcb2004-01-22 19:47:41 +0000939
Simon Kelley7622fc02009-06-04 20:32:05 +0100940 Allow --addn-hosts to take a directory: all the files
941 in the directory are read. Thanks to Phil Cornelius for
942 the suggestion.
Simon Kelley9e4abcb2004-01-22 19:47:41 +0000943
Simon Kelley7622fc02009-06-04 20:32:05 +0100944 Support --bridge-interface on all platforms, not just BSD.
Simon Kelley1ab84e22004-01-29 16:48:35 +0000945
Simon Kelley7622fc02009-06-04 20:32:05 +0100946 Added support for advanced PXE functions. It's now
947 possible to define a prompt and menu options which will
948 be displayed when a client PXE boots. It's also possible to
949 hand-off booting to other boot servers. Proxy-DHCP, where
950 dnsmasq just supplies the PXE information and another DHCP
951 server does address allocation, is also allowed. See the
952 --pxe-prompt and --pxe-service keywords. Thanks to
953 Alkis Georgopoulos for the suggestion and Guilherme Moro
954 and Michael Brown for assistance.
Simon Kelley1ab84e22004-01-29 16:48:35 +0000955
Simon Kelley7622fc02009-06-04 20:32:05 +0100956 Improvements to DHCP logging. Thanks to Tom Metro for
957 useful suggestions.
958
959 Add ability to build dnsmasq without DHCP support. To do
960 this, edit src/config.h or build with
961 "make COPTS=-DNO_DHCP". Thanks to Mahavir Jain for the patch.
962
963 Added --test command-line switch - syntax check
964 configuration files only.
Simon Kelley33820b72004-04-03 21:10:00 +0100965
Simon Kelley7622fc02009-06-04 20:32:05 +0100966 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley9009d742008-11-14 20:04:27 +0000967
Simon Kelley73a08a22009-02-05 20:28:08 +0000968
969version 2.47
970 Updated French translation. Thanks to Gildas Le Nadan.
971
972 Fixed interface enumeration code to work on NetBSD
973 5.0. Thanks to Roy Marples for the patch.
974
975 Updated config.h to use the same location for the lease
976 file on NetBSD as the other *BSD variants. Also allow
977 LEASEFILE and CONFFILE symbols to be overriden in CFLAGS.
978
979 Handle duplicate address detection on IPv6 more
980 intelligently. In IPv6, an interface can have an address
981 which is not usable, because it is still undergoing DAD
982 (such addresses are marked "tentative"). Attempting to
983 bind to an address in this state returns an error,
984 EADDRNOTAVAIL. Previously, on getting such an error,
985 dnsmasq would silently abandon the address, and never
986 listen on it. Now, it retries once per second for 20
987 seconds before generating a fatal error. 20 seconds should
988 be long enough for any DAD process to complete, but can be
989 adjusted in src/config.h if necessary. Thanks to Martin
990 Krafft for the bug report.
991
992 Add DBus introspection. Patch from Jeremy Laine.
993
994 Update Dbus configuration file. Patch from Colin Walters.
995 Fix for this bug:
996 http://bugs.freedesktop.org/show_bug.cgi?id=18961
997
998 Support arbitrarily encapsulated DHCP options, suggestion
999 and initial patch from Samium Gromoff. This is useful for
1000 (eg) gPXE, which expect all its private options to be
1001 encapsulated inside a single option 175. So, eg,
1002
1003 dhcp-option = encap:175, 190, "iscsi-client0"
1004 dhcp-option = encap:175, 191, "iscsi-client0-secret"
1005
1006 will provide iSCSI parameters to gPXE.
1007
1008 Enhance --dhcp-match to allow testing of the contents of a
1009 client-sent option, as well as its presence. This
1010 application in mind for this is RFC 4578
1011 client-architecture specifiers, but it's generally useful.
1012 Joey Korkames suggested the enhancement.
1013
1014 Move from using the IP_XMIT_IF ioctl to IP_BOUND_IF on
1015 OpenSolaris. Thanks to Bastian Machek for the heads-up.
1016
1017 No longer complain about blank lines in
1018 /etc/ethers. Thanks to Jon Nelson for the patch.
1019
1020 Fix binding of servers to physical devices, eg
1021 --server=/domain/1.2.3.4@eth0 which was broken from 2.43
1022 onwards unless --query-port=0 set. Thanks to Peter Naulls
1023 for the bug report.
1024
1025 Reply to DHCPINFORM requests even when the supplied ciaddr
1026 doesn't fall in any dhcp-range. In this case it's not
1027 possible to supply a complete configuration, but
1028 individually-configured options (eg PAC) may be useful.
1029
1030 Allow the source address of an alias to be a range:
1031 --alias=192.168.0.0,10.0.0.0,255.255.255.0 maps the whole
1032 subnet 192.168.0.0->192.168.0.255 to 10.0.0.0->10.0.0.255,
1033 as before.
1034 --alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0
1035 maps only the 192.168.0.10->192.168.0.40 region. Thanks to
1036 Ib Uhrskov for the suggestion.
1037
1038 Don't dynamically allocate DHCP addresses which may break
1039 Windows. Addresses which end in .255 or .0 are broken in
1040 Windows even when using supernetting.
1041 --dhcp-range=192.168.0.1,192.168.1.254,255,255,254.0 means
1042 192.168.0.255 is a valid IP address, but not for Windows.
1043 See Microsoft KB281579. We therefore no longer allocate
1044 these addresses to avoid hard-to-diagnose problems.
1045
1046 Update Polish translation. Thanks to Jan Psota.
1047
1048 Delete the PID-file when dnsmasq shuts down. Note that by
1049 this time, dnsmasq is normally not running as root, so
1050 this will fail if the PID-file is stored in a root-owned
1051 directory; such failure is silently ignored. To take
1052 advantage of this feature, the PID-file must be stored in a
1053 directory owned and write-able by the user running
1054 dnsmasq.
Simon Kelley7622fc02009-06-04 20:32:05 +01001055
1056
1057version 2.46
1058 Allow --bootp-dynamic to take a netid tag, so that it may
1059 be selectively enabled. Thanks to Olaf Westrik for the
1060 suggestion.
1061
1062 Remove ISC-leasefile reading code. This has been
1063 deprecated for a long time, and last time I removed it, it
1064 ended up going back by request of one user. This time,
1065 it's gone for good; otherwise it would need to be
1066 re-worked to support multiple domains (see below).
1067
1068 Support DHCP clients in multiple DNS domains. This is a
1069 long-standing request. Clients are assigned to a domain
1070 based in their IP address.
1071
1072 Add --dhcp-fqdn flag, which changes behaviour if DNS names
1073 assigned to DHCP clients. When this is set, there must be
1074 a domain associated with each client, and only
1075 fully-qualified domain names are added to the DNS. The
1076 advantage is that the only the FQDN needs to be unique,
1077 so that two or more DHCP clients can share a hostname, as
1078 long as they are in different domains.
1079
1080 Set environment variable DNSMASQ_DOMAIN when invoking
1081 lease-change script. This may be useful information to
1082 have now that it's variable.
1083
1084 Tighten up data-checking code for DNS packet
1085 handling. Thanks to Steve Dodd who found certain illegal
1086 packets which could crash dnsmasq. No memory overwrite was
1087 possible, so this is not a security issue beyond the DoS
1088 potential.
1089
1090 Update example config dhcp option 47, the previous
1091 suggestion generated an illegal, zero-length,
1092 option. Thanks to Matthias Andree for finding this.
1093
1094 Rewrite hosts-file reading code to remove the limit of
1095 1024 characters per line. John C Meuser found this.
1096
1097 Create a net-id tag with the name of the interface on
1098 which the DHCP request was received.
1099
1100 Fixed minor memory leak in DBus code, thanks to Jeremy
1101 Laine for the patch.
1102
1103 Emit DBus signals as the DHCP lease database
1104 changes. Thanks to Jeremy Laine for the patch.
1105
1106 Allow for more that one MAC address in a dhcp-host
1107 line. This configuration tells dnsmasq that it's OK to
1108 abandon a DHCP lease of the fixed address to one MAC
1109 address, if another MAC address in the dhcp-host statement
1110 asks for an address. This is useful to give a fixed
1111 address to a host which has two network interfaces
1112 (say, a laptop with wired and wireless interfaces.)
1113 It's very important to ensure that only one interface
1114 at a time is up, since dnsmasq abandons the first lease
1115 and re-uses the address before the leased time has
1116 elapsed. John Gray suggested this.
1117
1118 Tweak the response to a DHCP request packet with a wrong
1119 server-id when --dhcp-authoritative is set; dnsmasq now
1120 returns a DHCPNAK, rather than silently ignoring the
1121 packet. Thanks to Chris Marget for spotting this
1122 improvement.
1123
1124 Add --cname option. This provides a limited alias
1125 function, usable for DHCP names. Thanks to AJ Weber for
1126 suggestions on this.
1127
1128 Updated contrib/webmin with latest version from Neil
1129 Fisher.
1130
1131 Updated Polish translation. Thanks to Jan Psota.
1132
1133 Correct the text names for DHCP options 64 and 65 to be
1134 "nis+-domain" and "nis+-servers".
1135
1136 Updated Spanish translation. Thanks to Chris Chatham.
1137
1138 Force re-reading of /etc/resolv.conf when an "interface
1139 up" event occurs.
1140
1141
1142version 2.45
1143 Fix total DNS failure in release 2.44 unless --min-port
1144 specified. Thanks to Steven Barth and Grant Coady for
1145 bugreport. Also reject out-of-range port spec, which could
1146 break things too: suggestion from Gilles Espinasse.
1147
1148
1149version 2.44
1150 Fix crash when unknown client attempts to renew a DHCP
1151 lease, problem introduced in version 2.43. Thanks to
1152 Carlos Carvalho for help chasing this down.
1153
1154 Fix potential crash when a host which doesn't have a lease
1155 does DHCPINFORM. Again introduced in 2.43. This bug has
1156 never been reported in the wild.
1157
1158 Fix crash in netlink code introduced in 2.43. Thanks to
1159 Jean Wolter for finding this.
1160
1161 Change implementation of min_port to work even if min-port
1162 is large.
1163
1164 Patch to enable compilation of latest Mac OS X. Thanks to
1165 David Gilman.
1166
1167 Update Spanish translation. Thanks to Christopher Chatham.
1168
1169
1170version 2.43
1171 Updated Polish translation. Thanks to Jan Psota.
1172
1173 Flag errors when configuration options are repeated
1174 illegally.
1175
1176 Further tweaks for GNU/kFreeBSD
1177
1178 Add --no-wrap to msgmerge call - provides nicer .po file
1179 format.
1180
1181 Honour lease-time spec in dhcp-host lines even for
1182 BOOTP. The user is assumed to known what they are doing in
1183 this case. (Hosts without the time spec still get infinite
1184 leases for BOOTP, over-riding the default in the
1185 dhcp-range.) Thanks to Peter Katzmann for uncovering this.
1186
1187 Fix problem matching relay-agent ids. Thanks to Michael
1188 Rack for the bug report.
1189
1190 Add --naptr-record option. Suggestion from Johan
1191 Bergquist.
1192
1193 Implement RFC 5107 server-id-override DHCP relay agent
1194 option.
1195
1196 Apply patches from Stefan Kruger for compilation on
1197 Solaris 10 under Sun studio.
1198
1199 Yet more tweaking of Linux capability code, to suppress
1200 pointless wingeing from kernel 2.6.25 and above.
1201
1202 Improve error checking during startup. Previously, some
1203 errors which occurred during startup would be worked
1204 around, with dnsmasq still starting up. Some were logged,
1205 some silent. Now, they all cause a fatal error and dnsmasq
1206 terminates with a non-zero exit code. The errors are those
1207 associated with changing uid and gid, setting process
1208 capabilities and writing the pidfile. Thanks to Uwe
1209 Gansert and the Suse security team for pointing out
1210 this improvement, and Bill Reimers for good implementation
1211 suggestions.
1212
1213 Provide NO_LARGEFILE compile option to switch off largefile
1214 support when compiling against versions of uclibc which
1215 don't support it. Thanks to Stephane Billiart for the patch.
1216
1217 Implement random source ports for interactions with
1218 upstream nameservers. New spoofing attacks have been found
1219 against nameservers which do not do this, though it is not
1220 clear if dnsmasq is vulnerable, since to doesn't implement
1221 recursion. By default dnsmasq will now use a different
1222 source port (and socket) for each query it sends
1223 upstream. This behaviour can suppressed using the
1224 --query-port option, and the old default behaviour
1225 restored using --query-port=0. Explicit source-port
1226 specifications in --server configs are still honoured.
1227
1228 Replace the random number generator, for better
1229 security. On most BSD systems, dnsmasq uses the
1230 arc4random() RNG, which is secure, but on other platforms,
1231 it relied on the C-library RNG, which may be
1232 guessable and therefore allow spoofing. This release
1233 replaces the libc RNG with the SURF RNG, from Daniel
1234 J. Berstein's DJBDNS package.
1235
1236 Don't attempt to change user or group or set capabilities
1237 if dnsmasq is run as a non-root user. Without this, the
1238 change from soft to hard errors when these fail causes
1239 problems for non-root daemons listening on high
1240 ports. Thanks to Patrick McLean for spotting this.
1241
1242 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley1f15b812009-10-13 17:49:32 +01001243
1244
1245version 2.42
1246 The changelog for version 2.42 and earlier is
1247 available in CHANGELOG.archive.