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