blob: 177b13c025bb51be55c5d91e636455d4f0a2943f [file] [log] [blame]
Simon Kelley30858e32017-10-09 22:36:11 +01001version 2.79
2 Fix parsing of CNAME arguments, which are confused by extra spaces.
3 Thanks to Diego Aguirre for spotting the bug.
4
Simon Kelley9d6918d2017-10-13 17:55:09 +01005 Where available, use IP_UNICAST_IF or IPV6_UNICAST_IF to bind
6 upstream servers to an interface, rather than SO_BINDTODEVICE.
7 Thanks to Beniamino Galvani for the patch.
8
Simon Kelley087eb762017-10-30 23:16:54 +00009 Always return a SERVFAIL answer to DNS queries without the
Ville Skyttäfaaf3062018-01-14 17:32:52 +000010 recursion desired bit set, UNLESS acting as an authoritative
Simon Kelley087eb762017-10-30 23:16:54 +000011 DNS server. This avoids a potential route to cache snooping.
12
Simon Kelley8e8b2d62017-10-30 23:21:52 +000013 Add support for Ed25519 signatures in DNSSEC validation.
14
15 No longer support RSA/MD5 signatures in DNSSEC validation,
16 since these are not secure. This behaviour is mandated in
17 RFC-6944.
18
Simon Kelleya6cee692017-12-14 22:40:48 +000019 Fix incorrect error exit code from dhcp_release6 utility.
20 Thanks Gaudenz Steinlin for the bug report.
21
Simon Kelley3c973ad2018-01-14 21:05:37 +000022 Use SIGINT (instead of overloading SIGHUP) to turn on DNSSEC
23 time validation when --dnssec-no-timecheck is in use.
24 Note that this is an incompatible change from earlier releases.
25
Simon Kelley22cd8602018-01-14 22:57:14 +000026 Allow more than one --bridge-interface option to refer to an
27 interface, so that we can use
28 --bridge-interface=int1,alias1
29 --bridge-interface=int1,alias2
30 as an alternative to
31 --bridge-interface=int1,alias1,alias2
32 Thanks to Neil Jerram for work on this.
Simon Kelley4fe67442018-01-19 12:26:08 +000033
34 Fix for DNSSEC with wildcard-derived NSEC records.
35 It's OK for NSEC records to be expanded from wildcards,
36 but in that case, the proof of non-existence is only valid
37 starting at the wildcard name, *.<domain> NOT the name expanded
38 from the wildcard. Without this check it's possible for an
39 attacker to craft an NSEC which wrongly proves non-existence.
40 Thanks to Ralph Dolmans for finding this, and co-ordinating
41 the vulnerability tracking and fix release.
42 CVE-2017-15107 applies.
43
Simon Kelley17214532018-02-14 22:56:09 +000044 Remove special handling of A-for-A DNS queries. These
45 are no longer a significant problem in the global DNS.
46 http://cs.northwestern.edu/~ychen/Papers/DNS_ToN15.pdf
47 Thanks to Mattias Hellström for the initial patch.
48
Simon Kelley30858e32017-10-09 22:36:11 +010049
Simon Kelley1649f702017-06-25 21:19:30 +010050version 2.78
Simon Kelley32be32e2017-06-25 21:33:28 +010051 Fix logic of appending ".<layer>" to PXE basename. Thanks to Chris
52 Novakovic for the patch.
Simon Kelley1649f702017-06-25 21:19:30 +010053
54 Revert ping-check of address in DHCPDISCOVER if there
55 already exists a lease for the address. Under some
56 circumstances, and netbooted windows installation can reply
57 to pings before if has a DHCP lease and block allocation
58 of the address it already used during netboot. Thanks to
59 Jan Psota for spotting this.
60
61 Fix DHCP relaying, broken in 2.76 and 2.77 by commit
62 ff325644c7afae2588583f935f4ea9b9694eb52e. Thanks to
63 John Fitzgibbon for the diagnosis and patch.
Simon Kelley32be32e2017-06-25 21:33:28 +010064
Hans Dedecker93967522017-06-27 22:08:47 +010065 Try other servers if first returns REFUSED when
66 --strict-order active. Thanks to Hans Dedecker
67 for the patch
Simon Kelley32be32e2017-06-25 21:33:28 +010068
Simon Kelley63437ff2017-09-06 22:34:21 +010069 Fix regression in 2.77, ironically added as a security
70 improvement, which resulted in a crash when a DNS
71 query exceeded 512 bytes (or the EDNS0 packet size,
72 if different.) Thanks to Christian Kujau, Arne Woerner
73 Juan Manuel Fernandez and Kevin Darbyshire-Bryant for
74 chasing this one down. CVE-2017-13704 applies.
75
Simon Kelley0549c732017-09-25 18:17:11 +010076 Fix heap overflow in DNS code. This is a potentially serious
77 security hole. It allows an attacker who can make DNS
78 requests to dnsmasq, and who controls the contents of
79 a domain, which is thereby queried, to overflow
80 (by 2 bytes) a heap buffer and either crash, or
81 even take control of, dnsmasq.
82 CVE-2017-14491 applies.
83 Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
Simon Kelley39921d02017-09-26 18:43:19 +010084 Kevin Hamacher and Ron Bowes of the Google Security Team for
Simon Kelley0549c732017-09-25 18:17:11 +010085 finding this.
86
Simon Kelley24036ea2017-09-25 18:47:15 +010087 Fix heap overflow in IPv6 router advertisement code.
88 This is a potentially serious security hole, as a
89 crafted RA request can overflow a buffer and crash or
90 control dnsmasq. Attacker must be on the local network.
91 CVE-2017-14492 applies.
92 Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
93 and Kevin Hamacher of the Google Security Team for
94 finding this.
Simon Kelley3d4ff1b2017-09-25 18:52:50 +010095
96 Fix stack overflow in DHCPv6 code. An attacker who can send
97 a DHCPv6 request to dnsmasq can overflow the stack frame and
98 crash or control dnsmasq.
99 CVE-2017-14493 applies.
100 Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
Simon Kelley39921d02017-09-26 18:43:19 +0100101 Kevin Hamacher and Ron Bowes of the Google Security Team for
Simon Kelley3d4ff1b2017-09-25 18:52:50 +0100102 finding this.
Simon Kelley33e3f102017-09-25 20:05:11 +0100103
104 Fix information leak in DHCPv6. A crafted DHCPv6 packet can
105 cause dnsmasq to forward memory from outside the packet
106 buffer to a DHCPv6 server when acting as a relay.
107 CVE-2017-14494 applies.
108 Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
Simon Kelley39921d02017-09-26 18:43:19 +0100109 Kevin Hamacher and Ron Bowes of the Google Security Team for
Simon Kelley33e3f102017-09-25 20:05:11 +0100110 finding this.
Simon Kelley39921d02017-09-26 18:43:19 +0100111
Simon Kelley897c1132017-09-25 20:11:58 +0100112 Fix DoS in DNS. Invalid boundary checks in the
113 add_pseudoheader function allows a memcpy call with negative
114 size An attacker which can send malicious DNS queries
115 to dnsmasq can trigger a DoS remotely.
116 dnsmasq is vulnerable only if one of the following option is
117 specified: --add-mac, --add-cpe-id or --add-subnet.
118 CVE-2017-14496 applies.
119 Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
Simon Kelley39921d02017-09-26 18:43:19 +0100120 Kevin Hamacher and Ron Bowes of the Google Security Team for
Simon Kelley897c1132017-09-25 20:11:58 +0100121 finding this.
Simon Kelley51eadb62017-09-25 20:16:50 +0100122
123 Fix out-of-memory Dos vulnerability. An attacker which can
124 send malicious DNS queries to dnsmasq can trigger memory
125 allocations in the add_pseudoheader function
126 The allocated memory is never freed which leads to a DoS
127 through memory exhaustion. dnsmasq is vulnerable only
128 if one of the following option is specified:
129 --add-mac, --add-cpe-id or --add-subnet.
130 CVE-2017-14495 applies.
131 Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
Simon Kelley39921d02017-09-26 18:43:19 +0100132 Kevin Hamacher and Ron Bowes of the Google Security Team for
Simon Kelley51eadb62017-09-25 20:16:50 +0100133 finding this.
Simon Kelley39921d02017-09-26 18:43:19 +0100134
135
Simon Kelley294d36d2016-07-06 21:30:25 +0100136version 2.77
Simon Kelley32be32e2017-06-25 21:33:28 +0100137 Generate an error when configured with a CNAME loop,
138 rather than a crash. Thanks to George Metz for
139 spotting this problem.
Simon Kelley903df072017-01-19 17:22:00 +0000140
Simon Kelley32be32e2017-06-25 21:33:28 +0100141 Calculate the length of TFTP error reply packet
142 correctly. This fixes a problem when the error
143 message in a TFTP packet exceeds the arbitrary
144 limit of 500 characters. The message was correctly
145 truncated, but not the packet length, so
146 extra data was appended. This is a possible
147 security risk, since the extra data comes from
148 a buffer which is also used for DNS, so that
149 previous DNS queries or replies may be leaked.
150 Thanks to Mozilla for funding the security audit
151 which spotted this bug.
Simon Kelley294d36d2016-07-06 21:30:25 +0100152
Simon Kelley32be32e2017-06-25 21:33:28 +0100153 Fix logic error in Linux netlink code. This could
154 cause dnsmasq to enter a tight loop on systems
155 with a very large number of network interfaces.
156 Thanks to Ivan Kokshaysky for the diagnosis and
157 patch.
Ivan Kokshaysky1d076672016-07-11 18:36:05 +0100158
Simon Kelley32be32e2017-06-25 21:33:28 +0100159 Fix problem with --dnssec-timestamp whereby receipt
160 of SIGHUP would erroneously engage timestamp checking.
161 Thanks to Kevin Darbyshire-Bryant for this work.
Simon Kelleyc8328ec2016-08-05 16:54:58 +0100162
Simon Kelley32be32e2017-06-25 21:33:28 +0100163 Bump zone serial on reloading /etc/hosts and friends
164 when providing authoritative DNS. Thanks to Harrald
165 Dunkel for spotting this.
Simon Kelley6d950992016-08-11 23:38:54 +0100166
Simon Kelley32be32e2017-06-25 21:33:28 +0100167 Handle v4-mapped IPv6 addresses sanely in --synth-domain.
168 These have standard representation like ::ffff:1.2.3.4
169 and are now converted to names like
170 <prefix>--ffff-1-2-3-4.<domain>
Simon Kelley6d950992016-08-11 23:38:54 +0100171
Simon Kelley32be32e2017-06-25 21:33:28 +0100172 Handle binding upstream servers to an interface
173 (--server=1.2.3.4@eth0) when the named interface
174 is destroyed and recreated in the kernel. Thanks to
175 Beniamino Galvani for the patch.
Beniamino Galvani2675f202016-08-28 20:44:05 +0100176
Simon Kelley32be32e2017-06-25 21:33:28 +0100177 Allow wildcard CNAME records in authoritative zones.
178 For example --cname=*.example.com,default.example.com
179 Thanks to Pro Backup for sponsoring this development.
Simon Kelleyb637d782016-12-13 16:44:11 +0000180
Simon Kelley32be32e2017-06-25 21:33:28 +0100181 Bump the allowed backlog of TCP connections from 5 to 32,
182 and make this a compile-time configurable option. Thanks
183 to Donatas Abraitis for diagnosing this as a potential
184 problem.
Simon Kelley09b768e2016-12-22 22:16:58 +0000185
Simon Kelley32be32e2017-06-25 21:33:28 +0100186 Add DNSMASQ_REQUESTED_OPTIONS environment variable to the
187 lease-change script. Thanks to ZHAO Yu for the patch.
Simon Kelley294d36d2016-07-06 21:30:25 +0100188
Simon Kelley32be32e2017-06-25 21:33:28 +0100189 Fix foobar in rrfilter code, that could cause malformed
190 replies, especially when DNSSEC validation on, and
191 the upstream server returns answer with the RRs in a
192 particular order. The only DNS server known to tickle
193 this is Nominum's. Thanks to Dave Täht for spotting the
194 bug and assisting in the fix.
Simon Kelley0740e432017-01-26 18:02:54 +0000195
Simon Kelley32be32e2017-06-25 21:33:28 +0100196 Fix the manpage which lied that only the primary address
197 of an interface is used by --interface-name.
Simon Kelleyd42d4702017-02-02 16:52:06 +0000198
Simon Kelley32be32e2017-06-25 21:33:28 +0100199 Make --localise-queries apply to names from --interface-name.
200 Thanks to Kevin Darbyshire-Bryant and Eric Luehrsen
201 for pushing this.
Simon Kelleyd42d4702017-02-02 16:52:06 +0000202
Simon Kelley32be32e2017-06-25 21:33:28 +0100203 Improve connection handling when talking to TCP upstream
204 servers. Specifically, be prepared to open a new TCP
205 connection when we want to make multiple queries
206 but the upstream server accepts fewer queries per connection.
Simon Kelley361dfe52017-02-10 21:12:30 +0000207
Simon Kelley32be32e2017-06-25 21:33:28 +0100208 Improve logging of upstream servers when there are a lot
209 of "local addresses only" entries. Thanks to Hannu Nyman for
210 the patch.
Floris Bos60704f52017-04-09 22:22:49 +0100211
Simon Kelley32be32e2017-06-25 21:33:28 +0100212 Make --bogus-priv apply to IPv6, for the prefixes specified
213 in RFC6303. Thanks to Kevin Darbyshire-Bryant for work on this.
Floris Bos503c6092017-04-09 23:07:13 +0100214
Simon Kelley32be32e2017-06-25 21:33:28 +0100215 Allow use of MAC addresses with --tftp-unique-root. Thanks
216 to Floris Bos for the patch.
David Flamand005c46d2017-04-11 11:49:54 +0100217
Simon Kelley32be32e2017-06-25 21:33:28 +0100218 Add --dhcp-reply-delay option. Thanks to Floris Bos
219 for the patch.
Petr Menšíkc77fb9d2017-04-16 20:20:08 +0100220
Simon Kelley32be32e2017-06-25 21:33:28 +0100221 Add mtu setting facility to --ra-param. Thanks to David
222 Flamand for the patch.
Petr Menšíkc77fb9d2017-04-16 20:20:08 +0100223
Simon Kelley32be32e2017-06-25 21:33:28 +0100224 Capture STDOUT and STDERR output from dhcp-script and log
225 it as part of the dnsmasq log stream. Makes life easier
226 for diagnosing unexpected problems in scripts.
227 Thanks to Petr Mensik for the patch.
Petr Menšík3a8b0f62017-04-23 14:12:37 +0100228
Simon Kelley32be32e2017-06-25 21:33:28 +0100229 Generate fatal errors when failing to parse the output
230 of the dhcp-script in "init" mode. Avoids strange errors
231 when the script accidentally emits error messages.
232 Thanks to Petr Mensik for the patch.
Simon Kelley88a77a72017-02-11 17:02:02 +0000233
Simon Kelley32be32e2017-06-25 21:33:28 +0100234 Make --rev-server for an RFC1918 subnet work even in the
235 presence of the --bogus-priv flag. Thanks to
236 Vladislav Grishenko for the patch.
Vladislav Grishenko6ec5f5c2017-04-24 22:34:45 +0100237
Simon Kelley32be32e2017-06-25 21:33:28 +0100238 Extend --ra-param mtu: field to allow an interface name.
239 This allows the MTU of a WAN interface to be advertised on
240 the internal interfaces of a router. Thanks to
241 Vladislav Grishenko for the patch.
Simon Kelley5ce3e762017-04-28 22:14:20 +0100242
Simon Kelley32be32e2017-06-25 21:33:28 +0100243 Do ICMP-ping check for address-in-use for DHCPv4 when
244 the client specifies an address in DHCPDISCOVER, and when
245 an address in configured locally. Thanks to Alin Năstac
246 for spotting the problem.
Simon Kelleyb2a9c572017-04-30 18:21:31 +0100247
Simon Kelley32be32e2017-06-25 21:33:28 +0100248 Add new DHCP tag "known-othernet" which is set when only a
249 dhcp-host exists for another subnet. Can be used to ensure
250 that privileged hosts are not given "guest" addresses by
251 accident. Thanks to Todd Sanket for the suggestion.
Vladislav Grishenko6ec5f5c2017-04-24 22:34:45 +0100252
Simon Kelley32be32e2017-06-25 21:33:28 +0100253 Remove historic automatic inclusion of IDN support when
254 building internationalisation support. This doesn't
255 fit now there is a choice of IDN libraries. Be sure
256 to include either -DHAVE_IDN or -DHAVE_LIBIDN2 for
257 IDN support.
258
259
Simon Kelleyd2aa7df2015-08-03 21:52:12 +0100260version 2.76
Simon Kelley32be32e2017-06-25 21:33:28 +0100261 Include 0.0.0.0/8 in DNS rebind checks. This range
262 translates to hosts on the local network, or, at
263 least, 0.0.0.0 accesses the local host, so could
264 be targets for DNS rebinding. See RFC 5735 section 3
265 for details. Thanks to Stephen Röttger for the bug report.
Simon Kelley77607cb2015-09-10 23:08:43 +0100266
Simon Kelley32be32e2017-06-25 21:33:28 +0100267 Enhance --add-subnet to allow arbitrary subnet addresses.
268 Thanks to Ed Barsley for the patch.
Simon Kelley77607cb2015-09-10 23:08:43 +0100269
Simon Kelley32be32e2017-06-25 21:33:28 +0100270 Respect the --no-resolv flag in inotify code. Fixes bug
271 which caused dnsmasq to fail to start if a resolv-file
272 was a dangling symbolic link, even of --no-resolv set.
273 Thanks to Alexander Kurtz for spotting the problem.
Edwin Török41a8d9e2015-11-14 17:45:48 +0000274
Simon Kelley32be32e2017-06-25 21:33:28 +0100275 Fix crash when an A or AAAA record is defined locally,
276 in a hosts file, and an upstream server sends a reply
277 that the same name is empty. Thanks to Edwin Török for
278 the patch.
André Glüpkereddf3652016-01-12 12:54:17 +0000279
Simon Kelley32be32e2017-06-25 21:33:28 +0100280 Fix failure to correctly calculate cache-size when
281 reading a hosts-file fails. Thanks to André Glüpker
282 for the patch.
Simon Kelleyd05dd582016-01-19 21:23:30 +0000283
Simon Kelley32be32e2017-06-25 21:33:28 +0100284 Fix wrong answer to simple name query when --domain-needed
285 set, but no upstream servers configured. Dnsmasq returned
286 REFUSED, in this case, when it should be the same as when
287 upstream servers are configured - NOERROR. Thanks to
288 Allain Legacy for spotting the problem.
Simon Kelleyd05dd582016-01-19 21:23:30 +0000289
Simon Kelley32be32e2017-06-25 21:33:28 +0100290 Return REFUSED when running out of forwarding table slots,
291 not SERVFAIL.
Simon Kelley1e505122016-01-25 21:29:23 +0000292
Simon Kelley32be32e2017-06-25 21:33:28 +0100293 Add --max-port configuration. Thanks to Hans Dedecker for
294 the patch.
Simon Kelley1e505122016-01-25 21:29:23 +0000295
Simon Kelley32be32e2017-06-25 21:33:28 +0100296 Add --script-arp and two new functions for the dhcp-script.
297 These are "arp" and "arp-old" which announce the arrival and
298 removal of entries in the ARP or neighbour tables.
Simon Kelley1e505122016-01-25 21:29:23 +0000299
Simon Kelley32be32e2017-06-25 21:33:28 +0100300 Extend --add-mac to allow a new encoding of the MAC address
301 as base64, by configuring --add-mac=base64
Simon Kelleyfdc97e12016-02-13 17:47:17 +0000302
Simon Kelley32be32e2017-06-25 21:33:28 +0100303 Add --add-cpe-id option.
Simon Kelleye06e6e32016-02-24 21:26:16 +0000304
Simon Kelley32be32e2017-06-25 21:33:28 +0100305 Don't crash with divide-by-zero if an IPv6 dhcp-range
306 is declared as a whole /64.
307 (ie xx::0 to xx::ffff:ffff:ffff:ffff)
308 Thanks to Laurent Bendel for spotting this problem.
Simon Kelleyfdc97e12016-02-13 17:47:17 +0000309
Simon Kelley32be32e2017-06-25 21:33:28 +0100310 Add support for a TTL parameter in --host-record and
311 --cname.
Simon Kelleybec366b2016-02-24 22:03:26 +0000312
Simon Kelley32be32e2017-06-25 21:33:28 +0100313 Add --dhcp-ttl option.
Simon Kelleya2bc2542016-04-21 22:34:22 +0100314
Simon Kelley32be32e2017-06-25 21:33:28 +0100315 Add --tftp-mtu option. Thanks to Patrick McLean for the
316 initial patch.
Simon Kelley14ffa072016-04-25 16:36:44 +0100317
Simon Kelley32be32e2017-06-25 21:33:28 +0100318 Check return-code of inet_pton() when parsing dhcp-option.
319 Bad addresses could fail to generate errors and result in
320 garbage dhcp-options being sent. Thanks to Marc Branchaud
321 for spotting this.
Simon Kelley69cbf782016-05-03 21:33:38 +0100322
Simon Kelley32be32e2017-06-25 21:33:28 +0100323 Fix wrong value for EDNS UDP packet size when using
324 --servers-file to define upstream DNS servers. Thanks to
325 Scott Bonar for the bug report.
Simon Kelley69cbf782016-05-03 21:33:38 +0100326
Simon Kelley32be32e2017-06-25 21:33:28 +0100327 Move the dhcp_release and dhcp_lease_time tools from
328 contrib/wrt to contrib/lease-tools.
Simon Kelley68bea102016-05-11 22:15:06 +0100329
Simon Kelley32be32e2017-06-25 21:33:28 +0100330 Add dhcp_release6 to contrib/lease-tools. Many thanks
331 to Sergey Nechaev for this code.
Simon Kelley68bea102016-05-11 22:15:06 +0100332
Simon Kelley32be32e2017-06-25 21:33:28 +0100333 To avoid filling logs in configurations which define
334 many upstream nameservers, don't log more that 30 servers.
335 The number to be logged can be changed as SERVERS_LOGGED
336 in src/config.h.
Simon Kelleyb9702602016-05-03 22:34:06 +0100337
Simon Kelley32be32e2017-06-25 21:33:28 +0100338 Swap the values if BC_EFI and x86-64_EFI in --pxe-service.
339 These were previously wrong due to an error in RFC 4578.
340 If you're using BC_EFI to boot 64-bit EFI machines, you
341 will need to update your config.
Simon Kelley0a4a0492016-05-15 20:13:45 +0100342
Simon Kelley32be32e2017-06-25 21:33:28 +0100343 Add ARM32_EFI and ARM64_EFI as valid architectures in
344 --pxe-service.
Simon Kelley0a4a0492016-05-15 20:13:45 +0100345
Simon Kelley32be32e2017-06-25 21:33:28 +0100346 Fix PXE booting for UEFI architectures. Modify PXE boot
347 sequence in this case to force the client to talk to dnsmasq
348 over port 4011. This makes PXE and especially proxy-DHCP PXE
349 work with these architectures.
Simon Kelley0a4a0492016-05-15 20:13:45 +0100350
Simon Kelley32be32e2017-06-25 21:33:28 +0100351 Workaround problems with UEFI PXE clients. There exist
352 in the wild PXE clients which have problems with PXE
353 boot menus. To work around this, when there's a single
354 --pxe-service which applies to client, then that target
355 will be booted directly, rather then sending a
356 single-item boot menu.
357
358 Many thanks to Jarek Polok, Michael Kuron and Dreamcat4
359 for their work on the long-standing UEFI PXE problem.
360
361 Subtle change in the semantics of "basename" in
362 --pxe-service. The historical behaviour has always been
363 that the actual filename downloaded from the TFTP server
364 is <basename>.<layer> where <layer> is an integer which
365 corresponds to the layer parameter supplied by the client.
366 It's not clear what the function of the "layer"
367 actually is in the PXE protocol, and in practise layer
368 is always zero, so the filename is <basename>.0
369 The new behaviour is the same as the old, except when
370 <basename> includes a file suffix, in which case
371 the layer suffix is no longer added. This allows
372 sensible suffices to be used, rather then the
373 meaningless ".0". Only in the unlikely event that you
374 have a config with a basename which already has a
375 suffix, is this an incompatible change, since the file
376 downloaded will change from name.suffix.0 to just
377 name.suffix
Simon Kelleyda2cad42016-05-18 15:14:08 +0100378
Simon Kelleybec366b2016-02-24 22:03:26 +0000379
Simon Kelley63ec5d12015-07-30 20:59:07 +0100380version 2.75
Simon Kelley32be32e2017-06-25 21:33:28 +0100381 Fix reversion on 2.74 which caused 100% CPU use when a
382 dhcp-script is configured. Thanks to Adrian Davey for
383 reporting the bug and testing the fix.
Simon Kelley63ec5d12015-07-30 20:59:07 +0100384
Simon Kelley32be32e2017-06-25 21:33:28 +0100385
Simon Kelley90cb2222015-07-05 21:59:10 +0100386version 2.74
Simon Kelley32be32e2017-06-25 21:33:28 +0100387 Fix reversion in 2.73 where --conf-file would attempt to
388 read the default file, rather than no file.
Simon Kelley90cb2222015-07-05 21:59:10 +0100389
Simon Kelley32be32e2017-06-25 21:33:28 +0100390 Fix inotify code to handle dangling symlinks better and
391 not SEGV in some circumstances.
Simon Kelley362c9302015-07-06 21:48:49 +0100392
Simon Kelley32be32e2017-06-25 21:33:28 +0100393 DNSSEC fix. In the case of a signed CNAME generated by a
394 wildcard which pointed to an unsigned domain, the wrong
395 status would be logged, and some necessary checks omitted.
396
Simon Kelley362c9302015-07-06 21:48:49 +0100397
Simon Kelley00cd9d52014-10-02 21:44:21 +0100398version 2.73
Simon Kelley32be32e2017-06-25 21:33:28 +0100399 Fix crash at startup when an empty suffix is supplied to
400 --conf-dir, also trivial memory leak. Thanks to
401 Tomas Hozza for spotting this.
Simon Kelley800c5cc2014-12-15 17:50:15 +0000402
Simon Kelley32be32e2017-06-25 21:33:28 +0100403 Remove floor of 4096 on advertised EDNS0 packet size when
404 DNSSEC in use, the original rationale for this has long gone.
405 Thanks to Anders Kaseorg for spotting this.
Simon Kelley800c5cc2014-12-15 17:50:15 +0000406
Simon Kelley32be32e2017-06-25 21:33:28 +0100407 Use inotify for checking on updates to /etc/resolv.conf and
408 friends under Linux. This fixes race conditions when the files are
409 updated rapidly and saves CPU by noy polling. To build
410 a binary that runs on old Linux kernels without inotify,
411 use make COPTS=-DNO_INOTIFY
Simon Kelley3ad3f3b2014-12-16 18:25:17 +0000412
Simon Kelley32be32e2017-06-25 21:33:28 +0100413 Fix breakage of --domain=<domain>,<subnet>,local - only reverse
414 queries were intercepted. THis appears to have been broken
415 since 2.69. Thanks to Josh Stone for finding the bug.
Simon Kelley47669362014-12-17 12:41:56 +0000416
Simon Kelley32be32e2017-06-25 21:33:28 +0100417 Eliminate IPv6 privacy addresses and deprecated addresses from
418 the answers given by --interface-name. Note that reverse queries
419 (ie looking for names, given addresses) are not affected.
420 Thanks to Michael Gorbach for the suggestion.
Simon Kelley094b5c32014-12-21 16:11:52 +0000421
Simon Kelley32be32e2017-06-25 21:33:28 +0100422 Fix crash in DNSSEC code with long RRs. Thanks to Marco Davids
423 for the bug report.
Simon Kelley00cd9d52014-10-02 21:44:21 +0100424
Simon Kelley32be32e2017-06-25 21:33:28 +0100425 Add --ignore-address option. Ignore replies to A-record
426 queries which include the specified address. No error is
427 generated, dnsmasq simply continues to listen for another
428 reply. This is useful to defeat blocking strategies which
429 rely on quickly supplying a forged answer to a DNS
430 request for certain domains, before the correct answer can
431 arrive. Thanks to Glen Huang for the patch.
Simon Kelley25cf5e32015-01-09 15:53:03 +0000432
Simon Kelley32be32e2017-06-25 21:33:28 +0100433 Revisit the part of DNSSEC validation which determines if an
434 unsigned answer is legit, or is in some part of the DNS
435 tree which should be signed. Dnsmasq now works from the
436 DNS root downward looking for the limit of signed
437 delegations, rather than working bottom up. This is
438 both more correct, and less likely to trip over broken
439 nameservers in the unsigned parts of the DNS tree
440 which don't respond well to DNSSEC queries.
Simon Kelley39341552015-01-18 22:11:10 +0000441
Simon Kelley32be32e2017-06-25 21:33:28 +0100442 Add --log-queries=extra option, which makes logs easier
443 to search automatically.
Simon Kelley5f4dc5c2015-01-20 20:51:02 +0000444
Simon Kelley32be32e2017-06-25 21:33:28 +0100445 Add --min-cache-ttl option. I've resisted this for a long
446 time, on the grounds that disbelieving TTLs is never a
447 good idea, but I've been persuaded that there are
448 sometimes reasons to do it. (Step forward, GFW).
449 To avoid misuse, there's a hard limit on the TTL
450 floor of one hour. Thanks to RinSatsuki for the patch.
Win King Wan61b838d2015-01-21 20:41:48 +0000451
Simon Kelley32be32e2017-06-25 21:33:28 +0100452 Cope with multiple interfaces with the same link-local
453 address. (IPv6 addresses are scoped, so this is allowed.)
454 Thanks to Cory Benfield for help with this.
Simon Kelleyf6e62e22015-03-01 18:17:54 +0000455
Simon Kelley32be32e2017-06-25 21:33:28 +0100456 Add --dhcp-hostsdir. This allows addition of new host
457 configurations to a running dnsmasq instance much more
458 cheaply than having dnsmasq re-read all its existing
459 configuration each time.
Stefan Tomanek30d08792015-03-31 22:32:11 +0100460
Simon Kelley32be32e2017-06-25 21:33:28 +0100461 Don't reply to DHCPv6 SOLICIT messages if we're not
462 configured to do stateful DHCPv6. Thanks to Win King Wan
463 for the patch.
Simon Kelley04b0ac02015-04-06 17:19:13 +0100464
Simon Kelley32be32e2017-06-25 21:33:28 +0100465 Fix broken DNSSEC validation of ECDSA signatures.
Simon Kelley38440b22015-04-12 21:52:47 +0100466
Simon Kelley32be32e2017-06-25 21:33:28 +0100467 Add --dnssec-timestamp option, which provides an automatic
468 way to detect when the system time becomes valid after
469 boot on systems without an RTC, whilst allowing DNS
470 queries before the clock is valid so that NTP can run.
471 Thanks to Kevin Darbyshire-Bryant for developing this idea.
Simon Kelley38440b22015-04-12 21:52:47 +0100472
Simon Kelley32be32e2017-06-25 21:33:28 +0100473 Add --tftp-no-fail option. Thanks to Stefan Tomanek for
474 the patch.
Simon Kelley04b0ac02015-04-06 17:19:13 +0100475
Simon Kelley32be32e2017-06-25 21:33:28 +0100476 Fix crash caused by looking up servers.bind, CHAOS text
477 record, when more than about five --servers= lines are
478 in the dnsmasq config. This causes memory corruption
479 which causes a crash later. Thanks to Matt Coddington for
480 sterling work chasing this down.
Simon Kelleya5ae1f82015-04-25 21:46:10 +0100481
Simon Kelley32be32e2017-06-25 21:33:28 +0100482 Fix crash on receipt of certain malformed DNS requests.
483 Thanks to Nick Sampanis for spotting the problem.
484 Note that this is could allow the dnsmasq process's
485 memory to be read by an attacker under certain
486 circumstances, so it has a CVE, CVE-2015-3294
Simon Kelley78c61842015-04-16 15:05:30 +0100487
Simon Kelley32be32e2017-06-25 21:33:28 +0100488 Fix crash in authoritative DNS code, if a .arpa zone
489 is declared as authoritative, and then a PTR query which
490 is not to be treated as authoritative arrived. Normally,
491 directly declaring .arpa zone as authoritative is not
492 done, so this crash wouldn't be seen. Instead the
493 relevant .arpa zone should be specified as a subnet
494 in the auth-zone declaration. Thanks to Johnny S. Lee
495 for the bugreport and initial patch.
Simon Kelleya77cec82015-05-08 16:25:38 +0100496
Simon Kelley32be32e2017-06-25 21:33:28 +0100497 Fix authoritative DNS code to correctly reply to NS
498 and SOA queries for .arpa zones for which we are
499 declared authoritative by means of a subnet in auth-zone.
500 Previously we provided correct answers to PTR queries
501 in such zones (including NS and SOA) but not direct
502 NS and SOA queries. Thanks to Johnny S. Lee for
503 pointing out the problem.
Simon Kelleyb059c962015-05-08 20:25:51 +0100504
Simon Kelley32be32e2017-06-25 21:33:28 +0100505 Fix logging of DHCPREPLY which should be suppressed
506 by quiet-dhcp6. Thanks to J. Pablo Abonia for
507 spotting the problem.
Simon Kelleyca85a282015-05-13 22:33:04 +0100508
Simon Kelley32be32e2017-06-25 21:33:28 +0100509 Try and handle net connections with broken fragmentation
510 that lose large UDP packets. If a server times out,
511 reduce the maximum UDP packet size field in the EDNS0
512 header to 1280 bytes. If it then answers, make that
513 change permanent.
Nicolas Cavallaric6d82c92015-06-09 20:42:20 +0100514
Simon Kelley32be32e2017-06-25 21:33:28 +0100515 Check IPv4-mapped IPv6 addresses when --stop-rebind
516 is active. Thanks to Jordan Milne for spotting this.
Neil Jerram4918bd52015-06-10 22:23:20 +0100517
Simon Kelley32be32e2017-06-25 21:33:28 +0100518 Allow DHCPv4 options T1 and T2 to be set using --dhcp-option.
519 Thanks to Kevin Benton for patches and work on this.
Neil Jerram4918bd52015-06-10 22:23:20 +0100520
Simon Kelley32be32e2017-06-25 21:33:28 +0100521 Fix code for DHCPCONFIRM DHCPv6 messages to confirm addresses
522 in the correct subnet, even of not in dynamic address
523 allocation range. Thanks to Steve Hirsch for spotting
524 the problem.
525
526 Add AddDhcpLease and DeleteDhcpLease DBus methods. Thanks
527 to Nicolas Cavallari for the patch.
528
529 Allow configuration of router advertisements without the
530 "on-link" bit set. Thanks to Neil Jerram for the patch.
531
532 Extend --bridge-interface to DHCPv6 and router
533 advertisements. Thanks to Neil Jerram for the patch.
534
535
Simon Kelley8e9ffba2014-05-20 20:38:25 +0100536version 2.72
Simon Kelley32be32e2017-06-25 21:33:28 +0100537 Add ra-advrouter mode, for RFC-3775 mobile IPv6 support.
Simon Kelleyc4a09372014-06-02 20:30:07 +0100538
Simon Kelley32be32e2017-06-25 21:33:28 +0100539 Add support for "ipsets" in *BSD, using pf. Thanks to
540 Sven Falempin for the patch.
Simon Kelley8e9ffba2014-05-20 20:38:25 +0100541
Simon Kelley32be32e2017-06-25 21:33:28 +0100542 Fix race condition which could lock up dnsmasq when an
543 interface goes down and up rapidly. Thanks to Conrad
544 Kostecki for helping to chase this down.
Daniel Collinsc4638f92014-06-07 21:21:44 +0100545
Simon Kelley32be32e2017-06-25 21:33:28 +0100546 Add DBus methods SetFilterWin2KOption and SetBogusPrivOption
547 Thanks to the Smoothwall project for the patch.
Simon Kelleycdb755c2014-06-18 20:52:53 +0100548
Simon Kelley32be32e2017-06-25 21:33:28 +0100549 Fix failure to build against Nettle-3.0. Thanks to Steven
550 Barth for spotting this and finding the fix.
Simon Kelleyb5ea1cc2014-07-29 16:34:14 +0100551
Simon Kelley32be32e2017-06-25 21:33:28 +0100552 When assigning existing DHCP leases to interfaces by comparing
553 networks, handle the case that two or more interfaces have the
554 same network part, but different prefix lengths (favour the
555 longer prefix length.) Thanks to Lung-Pin Chang for the
556 patch.
Simon Kelley57826492014-09-18 22:08:58 +0100557
Simon Kelley32be32e2017-06-25 21:33:28 +0100558 Add a mode which detects and removes DNS forwarding loops, ie
559 a query sent to an upstream server returns as a new query to
560 dnsmasq, and would therefore be forwarded again, resulting in
561 a query which loops many times before being dropped. Upstream
562 servers which loop back are disabled and this event is logged.
563 Thanks to Smoothwall for their sponsorship of this feature.
Simon Kelleybf2db4b2014-09-18 22:10:46 +0100564
Simon Kelley32be32e2017-06-25 21:33:28 +0100565 Extend --conf-dir to allow filtering of files. So
566 --conf-dir=/etc/dnsmasq.d,\*.conf
567 will load all the files in /etc/dnsmasq.d which end in .conf
568
569 Fix bug when resulted in NXDOMAIN answers instead of NODATA in
570 some circumstances.
571
572 Fix bug which caused dnsmasq to become unresponsive if it
573 failed to send packets due to a network interface disappearing.
574 Thanks to Niels Peen for spotting this.
575
576 Fix problem with --local-service option on big-endian platforms
577 Thanks to Richard Genoud for the patch.
578
579
Simon Kelley9d1b22a2014-04-29 13:02:41 +0100580version 2.71
Simon Kelley32be32e2017-06-25 21:33:28 +0100581 Subtle change to error handling to help DNSSEC validation
582 when servers fail to provide NODATA answers for
583 non-existent DS records.
Simon Kelley9d1b22a2014-04-29 13:02:41 +0100584
Simon Kelley32be32e2017-06-25 21:33:28 +0100585 Tweak code which removes DNSSEC records from answers when
586 not required. Fixes broken answers when additional section
587 has real records in it. Thanks to Marco Davids for the bug
588 report.
Simon Kelley9d1b22a2014-04-29 13:02:41 +0100589
Simon Kelley32be32e2017-06-25 21:33:28 +0100590 Fix DNSSEC validation of ANY queries. Thanks to Marco Davids
591 for spotting that too.
Simon Kelley9d1b22a2014-04-29 13:02:41 +0100592
Simon Kelley32be32e2017-06-25 21:33:28 +0100593 Fix total DNS failure and 100% CPU use if cachesize set to zero,
594 regression introduced in 2.69. Thanks to James Hunt and
595 the Ubuntu crowd for assistance in fixing this.
Simon Kelleyb692f232014-05-09 10:29:43 +0100596
Simon Kelley9d1b22a2014-04-29 13:02:41 +0100597
Simon Kelley63758382014-04-16 22:20:55 +0100598version 2.70
Simon Kelley32be32e2017-06-25 21:33:28 +0100599 Fix crash, introduced in 2.69, on TCP request when dnsmasq
600 compiled with DNSSEC support, but running without DNSSEC
601 enabled. Thanks to Manish Sing for spotting that one.
Simon Kelley63758382014-04-16 22:20:55 +0100602
Simon Kelley32be32e2017-06-25 21:33:28 +0100603 Fix regression which broke ipset functionality. Thanks to
604 Wang Jian for the bug report.
Simon Kelley3b1b3e92014-04-23 15:46:05 +0100605
Simon Kelley63758382014-04-16 22:20:55 +0100606
Simon Kelley1ee9be42013-12-09 16:50:19 +0000607version 2.69
Simon Kelley32be32e2017-06-25 21:33:28 +0100608 Implement dynamic interface discovery on *BSD. This allows
609 the constructor: syntax to be used in dhcp-range for DHCPv6
610 on the BSD platform. Thanks to Matthias Andree for
611 valuable research on how to implement this.
Simon Kelley1ee9be42013-12-09 16:50:19 +0000612
Simon Kelley32be32e2017-06-25 21:33:28 +0100613 Fix infinite loop associated with some --bogus-nxdomain
614 configs. Thanks fogobogo for the bug report.
Simon Kelley8db957d2013-12-17 15:47:10 +0000615
Simon Kelley32be32e2017-06-25 21:33:28 +0100616 Fix missing RA RDNS option with configuration like
617 --dhcp-option=option6:23,[::] Thanks to Tsachi Kimeldorfer
618 for spotting the problem.
Simon Kelleyae762422014-01-10 18:15:16 +0000619
Simon Kelley32be32e2017-06-25 21:33:28 +0100620 Add [fd00::] and [fe80::] as special addresses in DHCPv6
621 options, analogous to [::]. [fd00::] is replaced with the
622 actual ULA of the interface on the machine running
623 dnsmasq, [fe80::] with the link-local address.
624 Thanks to Tsachi Kimeldorfer for championing this.
Simon Kelleyc3a04082014-01-11 22:18:19 +0000625
Simon Kelley32be32e2017-06-25 21:33:28 +0100626 DNSSEC validation and caching. Dnsmasq needs to be
627 compiled with this enabled, with
Simon Kelley198d9402014-04-09 20:36:53 +0100628
Simon Kelley32be32e2017-06-25 21:33:28 +0100629 make dnsmasq COPTS=-DHAVE_DNSSEC
Simon Kelley1ee9be42013-12-09 16:50:19 +0000630
Simon Kelley32be32e2017-06-25 21:33:28 +0100631 this adds dependencies on the nettle crypto library and the
632 gmp maths library. It's possible to have these linked
633 statically with
Simon Kelley613d6c52014-02-04 11:50:11 +0000634
Simon Kelley32be32e2017-06-25 21:33:28 +0100635 make dnsmasq COPTS='-DHAVE_DNSSEC -DHAVE_DNSSEC_STATIC'
Simon Kelley198d9402014-04-09 20:36:53 +0100636
Simon Kelley32be32e2017-06-25 21:33:28 +0100637 which bloats the dnsmasq binary, but saves the size of
638 the shared libraries which are much bigger.
Simon Kelleyde73a492014-02-17 21:43:27 +0000639
Simon Kelley32be32e2017-06-25 21:33:28 +0100640 To enable, DNSSEC, you will need a set of
641 trust-anchors. Now that the TLDs are signed, this can be
642 the keys for the root zone, and for convenience they are
643 included in trust-anchors.conf in the dnsmasq
644 distribution. You should of course check that these are
645 legitimate and up-to-date. So, adding
Simon Kelleyc8a80482014-03-05 14:29:54 +0000646
Simon Kelley32be32e2017-06-25 21:33:28 +0100647 conf-file=/path/to/trust-anchors.conf
648 dnssec
Simon Kelley604f7592014-03-22 19:33:43 +0000649
Simon Kelley32be32e2017-06-25 21:33:28 +0100650 to your config is all that's needed to get things
651 working. The upstream nameservers have to be DNSSEC-capable
652 too, of course. Many ISP nameservers aren't, but the
653 Google public nameservers (8.8.8.8 and 8.8.4.4) are.
654 When DNSSEC is configured, dnsmasq validates any queries
655 for domains which are signed. Query results which are
656 bogus are replaced with SERVFAIL replies, and results
657 which are correctly signed have the AD bit set. In
658 addition, and just as importantly, dnsmasq supplies
659 correct DNSSEC information to clients which are doing
660 their own validation, and caches DNSKEY, DS and RRSIG
661 records, which significantly improve the performance of
662 downstream validators. Setting --log-queries will show
663 DNSSEC in action.
Simon Kelley10068602014-04-03 21:16:40 +0100664
Simon Kelley32be32e2017-06-25 21:33:28 +0100665 If a domain is returned from an upstream nameserver without
666 DNSSEC signature, dnsmasq by default trusts this. This
667 means that for unsigned zone (still the majority) there
668 is effectively no cost for having DNSSEC enabled. Of course
669 this allows an attacker to replace a signed record with a
670 false unsigned record. This is addressed by the
671 --dnssec-check-unsigned flag, which instructs dnsmasq
672 to prove that an unsigned record is legitimate, by finding
673 a secure proof that the zone containing the record is not
674 signed. Doing this has costs (typically one or two extra
675 upstream queries). It also has a nasty failure mode if
676 dnsmasq's upstream nameservers are not DNSSEC capable.
677 Without --dnssec-check-unsigned using such an upstream
678 server will simply result in not queries being validated;
679 with --dnssec-check-unsigned enabled and a
680 DNSSEC-ignorant upstream server, _all_ queries will fail.
681
682 Note that DNSSEC requires that the local time is valid and
683 accurate, if not then DNSSEC validation will fail. NTP
684 should be running. This presents a problem for routers
685 without a battery-backed clock. To set the time needs NTP
686 to do DNS lookups, but lookups will fail until NTP has run.
687 To address this, there's a flag, --dnssec-no-timecheck
688 which disables the time checks (only) in DNSSEC. When dnsmasq
689 is started and the clock is not synced, this flag should
690 be used. As soon as the clock is synced, SIGHUP dnsmasq.
691 The SIGHUP clears the cache of partially-validated data and
692 resets the no-timecheck flag, so that all DNSSEC checks
693 henceforward will be complete.
694
695 The development of DNSSEC in dnsmasq was started by
696 Giovanni Bajo, to whom huge thanks are owed. It has been
697 supported by Comcast, whose techfund grant has allowed for
698 an invaluable period of full-time work to get it to
699 a workable state.
700
701 Add --rev-server. Thanks to Dave Taht for suggesting this.
702
703 Add --servers-file. Allows dynamic update of upstream servers
704 full access to configuration.
705
706 Add --local-service. Accept DNS queries only from hosts
707 whose address is on a local subnet, ie a subnet for which
708 an interface exists on the server. This option
709 only has effect if there are no --interface --except-interface,
710 --listen-address or --auth-server options. It is intended
711 to be set as a default on installation, to allow
712 unconfigured installations to be useful but also safe from
713 being used for DNS amplification attacks.
714
715 Fix crashes in cache_get_cname_target() when dangling CNAMEs
716 encountered. Thanks to Andy and the rt-n56u project for
717 find this and helping to chase it down.
718
719 Fix wrong RCODE in authoritative DNS replies to PTR queries. The
720 correct answer was included, but the RCODE was set to NXDOMAIN.
721 Thanks to Craig McQueen for spotting this.
722
723 Make statistics available as DNS queries in the .bind TLD as
724 well as logging them.
Simon Kelley198d9402014-04-09 20:36:53 +0100725
Simon Kelleyc8a80482014-03-05 14:29:54 +0000726
Simon Kelley376d48c2013-11-13 13:04:30 +0000727version 2.68
Simon Kelley32be32e2017-06-25 21:33:28 +0100728 Use random addresses for DHCPv6 temporary address
729 allocations, instead of algorithmically determined stable
730 addresses.
Simon Kelley376d48c2013-11-13 13:04:30 +0000731
Simon Kelley32be32e2017-06-25 21:33:28 +0100732 Fix bug which meant that the DHCPv6 DUID was not available
733 in DHCP script runs during the lifetime of the dnsmasq
734 process which created the DUID de-novo. Once the DUID was
735 created and stored in the lease file and dnsmasq
736 restarted, this bug disappeared.
Simon Kelley376d48c2013-11-13 13:04:30 +0000737
Simon Kelley32be32e2017-06-25 21:33:28 +0100738 Fix bug introduced in 2.67 which could result in erroneous
739 NXDOMAIN returns to CNAME queries.
Simon Kelley376d48c2013-11-13 13:04:30 +0000740
Simon Kelley32be32e2017-06-25 21:33:28 +0100741 Fix build failures on MacOS X and openBSD.
Simon Kelley376d48c2013-11-13 13:04:30 +0000742
Simon Kelley32be32e2017-06-25 21:33:28 +0100743 Allow subnet specifications in --auth-zone to be interface
744 names as well as address literals. This makes it possible
745 to configure authoritative DNS when local address ranges
746 are dynamic and works much better than the previous
747 work-around which exempted constructed DHCP ranges from the
748 IP address filtering. As a consequence, that work-around
749 is removed. Under certain circumstances, this change wil
750 break existing configuration: if you're relying on the
751 constructed-range exception, you need to change --auth-zone
752 to specify the same interface as is used to construct your
753 DHCP ranges, probably with a trailing "/6" like this:
754 --auth-zone=example.com,eth0/6 to limit the addresses to
755 IPv6 addresses of eth0.
Simon Kelleydd9d9ce2013-11-15 11:24:00 +0000756
Simon Kelley32be32e2017-06-25 21:33:28 +0100757 Fix problems when advertising deleted IPv6 prefixes. If
758 the prefix is deleted (rather than replaced), it doesn't
759 get advertised with zero preferred time. Thanks to Tsachi
760 for the bug report.
Simon Kelley25439062013-11-25 21:14:51 +0000761
Simon Kelley32be32e2017-06-25 21:33:28 +0100762 Fix segfault with some locally configured CNAMEs. Thanks
763 to Andrew Childs for spotting the problem.
Simon Kelley25439062013-11-25 21:14:51 +0000764
Simon Kelley32be32e2017-06-25 21:33:28 +0100765 Fix memory leak on re-reading /etc/hosts and friends,
766 introduced in 2.67.
Simon Kelley2329bef2013-12-03 13:41:16 +0000767
Simon Kelley32be32e2017-06-25 21:33:28 +0100768 Check the arrival interface of incoming DNS and TFTP
769 requests via IPv6, even in --bind-interfaces mode. This
770 isn't possible for IPv4 and can generate scary warnings,
771 but as it's always possible for IPv6 (the API always
772 exists) then we should do it always.
773
774 Tweak the rules on prefix-lengths in --dhcp-range for
775 IPv6. The new rule is that the specified prefix length
776 must be larger than or equal to the prefix length of the
777 corresponding address on the local interface.
Vladislav Grishenko4c82efc2013-12-03 16:05:30 +0000778
Simon Kelley376d48c2013-11-13 13:04:30 +0000779
Giacomo Tazzari797a7af2013-04-22 13:16:37 +0100780version 2.67
Simon Kelley32be32e2017-06-25 21:33:28 +0100781 Fix crash if upstream server returns SERVFAIL when
782 --conntrack in use. Thanks to Giacomo Tazzari for finding
783 this and supplying the patch.
Simon Kelleyaa63a212013-04-22 15:01:52 +0100784
Simon Kelley32be32e2017-06-25 21:33:28 +0100785 Repair regression in 2.64. That release stopped sending
786 lease-time information in the reply to DHCPINFORM
787 requests, on the correct grounds that it was a standards
788 violation. However, this broke the dnsmasq-specific
789 dhcp_lease_time utility. Now, DHCPINFORM returns
790 lease-time only if it's specifically requested
791 (maintaining standards) and the dhcp_lease_time utility
792 has been taught to ask for it (restoring functionality).
Simon Kelley86e92f92013-04-23 11:31:39 +0100793
Simon Kelley32be32e2017-06-25 21:33:28 +0100794 Fix --dhcp-match, --dhcp-vendorclass and --dhcp-userclass
795 to work with BOOTP and well as DHCP. Thanks to Peter
796 Korsgaard for spotting the problem.
Simon Kelley2bb73af2013-04-24 17:38:19 +0100797
Simon Kelley32be32e2017-06-25 21:33:28 +0100798 Add --synth-domain. Thanks to Vishvananda Ishaya for
799 suggesting this.
Simon Kelleyd5052fb2013-04-25 12:44:20 +0100800
Simon Kelley32be32e2017-06-25 21:33:28 +0100801 Fix failure to compile ipset.c if old kernel headers are
802 in use. Thanks to Eugene Rudoy for pointing this out.
Simon Kelley3f2873d2013-05-14 11:28:47 +0100803
Simon Kelley32be32e2017-06-25 21:33:28 +0100804 Handle IPv4 interface-address labels in Linux. These are
805 often used to emulate the old IP-alias addresses. Before,
806 using --interface=eth0 would service all the addresses of
807 eth0, including ones configured as aliases, which appear
808 in ifconfig as eth0:0. Now, only addresses with the label
809 eth0 are active. This is not backwards compatible: if you
810 want to continue to bind the aliases too, you need to add
811 eg. --interface=eth0:0 to the config.
Giacomo Tazzari797a7af2013-04-22 13:16:37 +0100812
Simon Kelley32be32e2017-06-25 21:33:28 +0100813 Fix "failed to set SO_BINDTODEVICE on DHCP socket: Socket
814 operation on non-socket" error on startup with
815 configurations which have exactly one --interface option
816 and do RA but _not_ DHCPv6. Thanks to Trever Adams for the
817 bug report.
Simon Kelley115ac3e2013-05-20 11:28:32 +0100818
Simon Kelley32be32e2017-06-25 21:33:28 +0100819 Generalise --interface-name to cope with IPv6 addresses
820 and multiple addresses per interface per address family.
Simon Kelleybaa80ae2013-05-29 16:32:07 +0100821
Simon Kelley32be32e2017-06-25 21:33:28 +0100822 Fix option parsing for --dhcp-host, which was generating a
823 spurious error when all seven possible items were
824 included. Thanks to Zhiqiang Wang for the bug report.
Simon Kelleybaa80ae2013-05-29 16:32:07 +0100825
Simon Kelley32be32e2017-06-25 21:33:28 +0100826 Remove restriction on prefix-length in --auth-zone. Thanks
827 to Toke Hoiland-Jorgensen for suggesting this.
Marcelo Salhab Brogliato0da5e892013-05-31 11:49:06 +0100828
Simon Kelley32be32e2017-06-25 21:33:28 +0100829 Log when the maximum number of concurrent DNS queries is
830 reached. Thanks to Marcelo Salhab Brogliato for the patch.
Simon Kelleye2ba0df2013-05-31 17:04:25 +0100831
Simon Kelley32be32e2017-06-25 21:33:28 +0100832 If wildcards are used in --interface, don't assume that
833 there will only ever be one available interface for DHCP
834 just because there is one at start-up. More may appear, so
835 we can't use SO_BINDTODEVICE. Thanks to Natrio for the bug
836 report.
Simon Kelleyb4b93082013-06-19 10:31:23 +0100837
Simon Kelley32be32e2017-06-25 21:33:28 +0100838 Increase timeout/number of retries in TFTP to accommodate
839 AudioCodes Voice Gateways doing streaming writes to flash.
840 Thanks to Damian Kaczkowski for spotting the problem.
Simon Kelley625ac282013-07-02 21:19:32 +0100841
Simon Kelley32be32e2017-06-25 21:33:28 +0100842 Fix crash with empty DHCP string options when adding zero
843 terminator. Thanks to Patrick McLean for the bug report.
Kyle Mesteryd859ca22013-07-24 13:11:58 +0100844
Simon Kelley32be32e2017-06-25 21:33:28 +0100845 Allow hostnames to start with a number, as allowed in
846 RFC-1123. Thanks to Kyle Mestery for the patch.
Roy Marples3f3adae2013-07-25 16:22:46 +0100847
Simon Kelley32be32e2017-06-25 21:33:28 +0100848 Fixes to DHCP FQDN option handling: don't terminate FQDN
849 if domain not known and allow a FQDN option with blank
850 name to request that a FQDN option is returned in the
851 reply. Thanks to Roy Marples for the patch.
Simon Kelleyd9fb0be2013-07-25 21:47:17 +0100852
Simon Kelley32be32e2017-06-25 21:33:28 +0100853 Make --clear-on-reload apply to setting upstream servers
854 via DBus too.
Simon Kelleyef1a94a2013-07-26 13:59:03 +0100855
Simon Kelley32be32e2017-06-25 21:33:28 +0100856 When the address which triggered the construction of an
857 advertised IPv6 prefix disappears, continue to advertise
858 the prefix for up to 2 hours, with the preferred lifetime
859 set to zero. This satisfies RFC 6204 4.3 L-13 and makes
860 things work better if a prefix disappears without being
861 deprecated first. Thanks to Uwe Schindler for persuasively
862 arguing for this.
Simon Kelleyb4b93082013-06-19 10:31:23 +0100863
Simon Kelley32be32e2017-06-25 21:33:28 +0100864 Fix MAC address enumeration on *BSD. Thanks to Brad Smith
865 for the bug report.
Simon Kelley871d4562013-07-27 21:32:32 +0100866
Simon Kelley32be32e2017-06-25 21:33:28 +0100867 Support RFC-4242 information-refresh-time options in the
868 reply to DHCPv6 information-request. The lease time of the
869 smallest valid dhcp-range is sent. Thanks to Uwe Schindler
870 for suggesting this.
Simon Kelleyedf0bde2013-07-29 17:21:48 +0100871
Simon Kelley32be32e2017-06-25 21:33:28 +0100872 Make --listen-address higher priority than --except-interface
873 in all circumstances. Thanks to Thomas Hood for the bugreport.
Simon Kelley2937f8a2013-07-29 19:49:07 +0100874
Simon Kelley32be32e2017-06-25 21:33:28 +0100875 Provide independent control over which interfaces get TFTP
876 service. If enable-tftp is given a list of interfaces, then TFTP
877 is provided on those. Without the list, the previous behaviour
878 (provide TFTP to the same interfaces we provide DHCP to)
879 is retained. Thanks to Lonnie Abelbeck for the suggestion.
Simon Kelleyff7eea22013-09-04 18:01:38 +0100880
Simon Kelley32be32e2017-06-25 21:33:28 +0100881 Add --dhcp-relay config option. Many thanks to vtsl.net
882 for sponsoring this development.
Simon Kelley0932f9c2013-09-05 11:30:30 +0100883
Simon Kelley32be32e2017-06-25 21:33:28 +0100884 Fix crash with empty tag: in --dhcp-range. Thanks to
885 Kaspar Schleiser for the bug report.
Simon Kelleyceae52d2013-09-12 15:05:47 +0100886
Simon Kelley32be32e2017-06-25 21:33:28 +0100887 Add "baseline" and "bloatcheck" makefile targets, for
888 revealing size changes during development. Thanks to
889 Vladislav Grishenko for the patch.
Simon Kelleyc8f2dd82013-09-13 11:22:55 +0100890
Simon Kelley32be32e2017-06-25 21:33:28 +0100891 Cope with DHCPv6 clients which send REQUESTs without
892 address options - treat them as SOLICIT with rapid commit.
Simon Kelley89500e32013-09-20 16:29:20 +0100893
Simon Kelley32be32e2017-06-25 21:33:28 +0100894 Support identification of clients by MAC address in
895 DHCPv6. When using a relay, the relay must support RFC
896 6939 for this to work. It always works for directly
897 connected clients. Thanks to Vladislav Grishenko
898 for prompting this feature.
Simon Kelley889d8a12013-10-02 13:12:09 +0100899
Simon Kelley32be32e2017-06-25 21:33:28 +0100900 Remove the rule for constructed DHCP ranges that the local
901 address must be either the first or last address in the
902 range. This was originally to avoid SLAAC addresses, but
903 we now explicitly autoconfig and privacy addresses instead.
Tanguy Bouzelocef1d7422013-10-03 11:06:31 +0100904
Simon Kelley32be32e2017-06-25 21:33:28 +0100905 Update Polish translation. Thanks to Jan Psota.
Simon Kelley871d4562013-07-27 21:32:32 +0100906
Simon Kelley32be32e2017-06-25 21:33:28 +0100907 Fix problem in DHCPv6 vendorclass/userclass matching
908 code. Thanks to Tanguy Bouzeloc for the patch.
Simon Kelleyc4cd95d2013-10-10 20:58:11 +0100909
Simon Kelley32be32e2017-06-25 21:33:28 +0100910 Update Spanish translation. Thanks to Vicente Soriano.
Simon Kelleyed4c0762013-10-08 20:46:34 +0100911
Simon Kelley32be32e2017-06-25 21:33:28 +0100912 Add --ra-param option. Thanks to Vladislav Grishenko for
913 inspiration on this.
Kevin Darbyshire-Bryant8c0b73d2013-10-11 11:56:33 +0100914
Simon Kelley32be32e2017-06-25 21:33:28 +0100915 Add --add-subnet configuration, to tell upstream DNS
916 servers where the original client is. Thanks to DNSthingy
917 for sponsoring this feature.
Simon Kelleyd56a6042013-10-11 14:39:03 +0100918
Simon Kelley32be32e2017-06-25 21:33:28 +0100919 Add --quiet-dhcp, --quiet-dhcp6 and --quiet-ra. Thanks to
920 Kevin Darbyshire-Bryant for the initial patch.
Simon Kelley24b5a5d2013-10-11 15:19:28 +0100921
Simon Kelley32be32e2017-06-25 21:33:28 +0100922 Allow A/AAAA records created by --interface-name to be the
923 target of --cname. Thanks to Hadmut Danisch for the
924 suggestion.
Simon Kelley45cca582013-10-15 10:20:13 +0100925
Simon Kelley32be32e2017-06-25 21:33:28 +0100926 Avoid treating a --dhcp-host which has an IPv6 address
927 as eligible for use with DHCPv4 on the grounds that it has
928 no address, and vice-versa. Thanks to Yury Konovalov for
929 spotting the problem.
930
931 Do a better job caching dangling CNAMEs. Thanks to Yves
932 Dorfsman for spotting the problem.
933
934
Simon Kelley333b2ce2013-01-07 21:46:03 +0000935version 2.66
Simon Kelley32be32e2017-06-25 21:33:28 +0100936 Add the ability to act as an authoritative DNS
937 server. Dnsmasq can now answer queries from the wider 'net
938 with local data, as long as the correct NS records are set
939 up. Only local data is provided, to avoid creating an open
940 DNS relay. Zone transfer is supported, to allow secondary
941 servers to be configured.
Simon Kelley333b2ce2013-01-07 21:46:03 +0000942
Simon Kelley32be32e2017-06-25 21:33:28 +0100943 Add "constructed DHCP ranges" for DHCPv6. This is intended
944 for IPv6 routers which get prefixes dynamically via prefix
945 delegation. With suitable configuration, stateful DHCPv6
946 and RA can happen automatically as prefixes are delegated
947 and then deprecated, without having to re-write the
948 dnsmasq configuration file or restart the daemon. Thanks to
949 Steven Barth for extensive testing and development work on
950 this idea.
Simon Kelley71c73ac2013-01-08 21:22:24 +0000951
Simon Kelley32be32e2017-06-25 21:33:28 +0100952 Fix crash on startup on Solaris 11. Regression probably
953 introduced in 2.61. Thanks to Geoff Johnstone for the
954 patch.
Simon Kelley22ce5502013-01-22 13:53:04 +0000955
Simon Kelley32be32e2017-06-25 21:33:28 +0100956 Add code to make behaviour for TCP DNS requests that same
957 as for UDP requests, when a request arrives for an allowed
958 address, but via a banned interface. This change is only
959 active on Linux, since the relevant API is missing (AFAIK)
960 on other platforms. Many thanks to Tomas Hozza for
961 spotting the problem, and doing invaluable discovery of
962 the obscure and undocumented API required for the solution.
Simon Kelleya21e27b2013-02-17 16:41:35 +0000963
Simon Kelley32be32e2017-06-25 21:33:28 +0100964 Don't send the default DHCP option advertising dnsmasq as
965 the local DNS server if dnsmasq is configured to not act
966 as DNS server, or it's configured to a non-standard port.
Simon Kelley4038ae22013-02-19 16:47:07 +0000967
Simon Kelley32be32e2017-06-25 21:33:28 +0100968 Add DNSMASQ_CIRCUIT_ID, DNSMASQ_SUBSCRIBER_ID,
969 DNSMASQ_REMOTE_ID variables to the environment of the
970 lease-change script (and the corresponding Lua). These hold
971 information inserted into the DHCP request by a DHCP relay
972 agent. Thanks to Lakefield Communications for providing a
973 bounty for this addition.
Jason A. Donenfeld13d86c72013-02-22 18:20:53 +0000974
Simon Kelley32be32e2017-06-25 21:33:28 +0100975 Fixed crash, introduced in 2.64, whilst handling DHCPv6
976 information-requests with some common configurations.
977 Thanks to Robert M. Albrecht for the bug report and
978 chasing the problem.
Simon Kelleyc7961072013-02-28 15:17:58 +0000979
Simon Kelley32be32e2017-06-25 21:33:28 +0100980 Add --ipset option. Thanks to Jason A. Donenfeld for the
981 patch.
Simon Kelley56a11422013-04-02 17:02:58 +0100982
Simon Kelley32be32e2017-06-25 21:33:28 +0100983 Don't erroneously reject some option names in --dhcp-match
984 options. Thanks to Benedikt Hochstrasser for the bug report.
Simon Kelley0b0a73c2013-04-11 14:07:02 +0100985
Simon Kelley32be32e2017-06-25 21:33:28 +0100986 Allow a trailing '*' wildcard in all interface-name
987 configurations. Thanks to Christian Parpart for the patch.
Simon Kelley834f36f2013-04-17 13:52:49 +0100988
Simon Kelley32be32e2017-06-25 21:33:28 +0100989 Handle the situation where libc headers define
990 SO_REUSEPORT, but the kernel in use doesn't, to cope with
991 the introduction of this option to Linux. Thanks to Rich
992 Felker for the bug report.
993
994 Update Polish translation. Thanks to Jan Psota.
995
996 Fix crash if the configured DHCP lease limit is
997 reached. Regression occurred in 2.61. Thanks to Tsachi for
998 the bug report.
999
1000 Update the French translation. Thanks to Gildas le Nadan.
1001
1002
Simon Kelleyee86ce62012-12-07 11:54:46 +00001003version 2.65
Simon Kelley32be32e2017-06-25 21:33:28 +01001004 Fix regression which broke forwarding of queries sent via
1005 TCP which are not for A and AAAA and which were directed to
1006 non-default servers. Thanks to Niax for the bug report.
Simon Kelleyee86ce62012-12-07 11:54:46 +00001007
Simon Kelley32be32e2017-06-25 21:33:28 +01001008 Fix failure to build with DHCP support excluded. Thanks to
1009 Gustavo Zacarias for the patch.
1010
1011 Fix nasty regression in 2.64 which completely broke caching.
Simon Kelleyb5a8dd12012-12-10 11:37:25 +00001012
1013
Simon Kelley2e34ac12012-08-29 14:15:25 +01001014version 2.64
Simon Kelley32be32e2017-06-25 21:33:28 +01001015 Handle DHCP FQDN options with all flag bits zero and
1016 --dhcp-client-update set. Thanks to Bernd Krumbroeck for
1017 spotting the problem.
Simon Kelley2e34ac12012-08-29 14:15:25 +01001018
Simon Kelley32be32e2017-06-25 21:33:28 +01001019 Finesse the check for /etc/hosts names which conflict with
1020 DHCP names. Previously a name/address pair in /etc/hosts
1021 which didn't match the name/address of a DHCP lease would
1022 generate a warning. Now that only happens if there is not
1023 also a match. This allows multiple addresses for a name in
1024 /etc/hosts with one of them assigned via DHCP.
Simon Kelley12d71ed2012-08-30 15:16:41 +01001025
Simon Kelley32be32e2017-06-25 21:33:28 +01001026 Fix broken vendor-option processing for BOOTP. Thanks to
1027 Hans-Joachim Baader for the bug report.
Simon Kelley4d0f5b42012-09-05 23:29:30 +01001028
Simon Kelley32be32e2017-06-25 21:33:28 +01001029 Don't report spurious netlink errors, regression in
1030 2.63. Thanks to Vladislav Grishenko for the patch.
Simon Kelleydfb23b32012-09-18 21:44:47 +01001031
Simon Kelley32be32e2017-06-25 21:33:28 +01001032 Flag DHCP or DHCPv6 in startup logging. Thanks to
1033 Vladislav Grishenko for the patch.
Simon Kelley2b127a12012-09-18 21:51:22 +01001034
Simon Kelley32be32e2017-06-25 21:33:28 +01001035 Add SetServersEx method in DBus interface. Thanks to Dan
1036 Williams for the patch.
Simon Kelleyfaafb3f2012-09-20 14:17:39 +01001037
Simon Kelley32be32e2017-06-25 21:33:28 +01001038 Add SetDomainServers method in DBus interface. Thanks to
1039 Roy Marples for the patch.
Simon Kelley295a54e2012-12-01 21:02:15 +00001040
Simon Kelley32be32e2017-06-25 21:33:28 +01001041 Fix build with later Lua libraries. Thanks to Cristian
1042 Rodriguez for the patch.
Simon Kelley2e34ac12012-08-29 14:15:25 +01001043
Simon Kelley32be32e2017-06-25 21:33:28 +01001044 Add --max-cache-ttl option. Thanks to Dennis Kaarsemaker
1045 for the patch.
Simon Kelley1d860412012-09-20 20:48:04 +01001046
Simon Kelley32be32e2017-06-25 21:33:28 +01001047 Fix breakage of --host-record parsing, resulting in
1048 infinite loop at startup. Regression in 2.63. Thanks to
1049 Haim Gelfenbeyn for spotting this.
Simon Kelleye4807d82012-09-27 21:52:26 +01001050
Simon Kelley32be32e2017-06-25 21:33:28 +01001051 Set SO_REUSEADDRESS and SO_V6ONLY options on the DHCPv6
1052 socket, this allows multiple instances of dnsmasq on a
1053 single machine, in the same way as for DHCPv4. Thanks to
1054 Gene Czarcinski and Vladislav Grishenko for work on this.
Simon Kelley20223102012-10-15 10:41:17 +01001055
Simon Kelley32be32e2017-06-25 21:33:28 +01001056 Fix DHCPv6 to do access control correctly when it's
1057 configured with --listen-address. Thanks to
1058 Gene Czarcinski for sorting this out.
Simon Kelleybe6cfb42012-10-16 20:38:31 +01001059
Simon Kelley32be32e2017-06-25 21:33:28 +01001060 Add a "wildcard" dhcp-range which works for any IPv6
1061 subnet, --dhcp-range=::,static Useful for Stateless
1062 DHCPv6. Thanks to Vladislav Grishenko for the patch.
Simon Kelley819ff4d2012-10-21 18:25:12 +01001063
Simon Kelley32be32e2017-06-25 21:33:28 +01001064 Don't include lease-time in DHCPACK replies to DHCPINFORM
1065 queries, since RFC-2131 says we shouldn't. Thanks to
1066 Wouter Ibens for pointing this out.
Simon Kelley8e4b8792012-11-14 14:12:56 +00001067
Simon Kelley32be32e2017-06-25 21:33:28 +01001068 Makefile tweak to do dependency checking on header files.
1069 Thanks to Johan Peeters for the patch.
Simon Kelleyd89fb4e2012-12-01 21:21:13 +00001070
Simon Kelley32be32e2017-06-25 21:33:28 +01001071 Check interface for outgoing unsolicited router
1072 advertisements, rather than relying on interface address
1073 configuration. Thanks to Gene Czarinski for the patch.
Simon Kelley29d28dd2012-12-03 14:05:59 +00001074
Simon Kelley32be32e2017-06-25 21:33:28 +01001075 Handle better attempts to transmit on interfaces which are
1076 still doing DAD, and specifically do not just transmit
1077 without setting source address and interface, since this
1078 can cause very puzzling effects when a router
1079 advertisement goes astray. Thanks again to Gene Czarinski.
Simon Kelley29d28dd2012-12-03 14:05:59 +00001080
Simon Kelley32be32e2017-06-25 21:33:28 +01001081 Get RA timers right when there is more than one
1082 dhcp-range on a subnet.
1083
Simon Kelleyd1a59752012-11-05 16:50:30 +00001084
Simon Kelley078a6302012-06-07 13:56:23 +01001085version 2.63
Simon Kelley32be32e2017-06-25 21:33:28 +01001086 Do duplicate dhcp-host address check in --test mode.
Simon Kelley078a6302012-06-07 13:56:23 +01001087
Simon Kelley32be32e2017-06-25 21:33:28 +01001088 Check that tftp-root directories are accessible before
1089 start-up. Thanks to Daniel Veillard for the initial patch.
Simon Kelley8b3ae2f2012-06-13 13:43:49 +01001090
Simon Kelley32be32e2017-06-25 21:33:28 +01001091 Allow more than one --tfp-root flag. The per-interface
1092 stuff is pointless without that.
Simon Kelley8b3ae2f2012-06-13 13:43:49 +01001093
Simon Kelley32be32e2017-06-25 21:33:28 +01001094 Add --bind-dynamic. A hybrid mode between the default and
1095 --bind-interfaces which copes with dynamically created
1096 interfaces.
Simon Kelley54dd3932012-06-20 11:23:38 +01001097
Simon Kelley32be32e2017-06-25 21:33:28 +01001098 A couple of fixes to the build system for Android. Thanks
1099 to Metin Kaya for the patches.
Simon Kelley8bc4cec2012-07-03 21:04:11 +01001100
Simon Kelley32be32e2017-06-25 21:33:28 +01001101 Remove the interface:<interface> argument in --dhcp-range, and
1102 the interface argument to --enable-tftp. These were a
1103 still-born attempt to allow automatic isolated
1104 configuration by libvirt, but have never (to my knowledge)
1105 been used, had very strange semantics, and have been
1106 superseded by other mechanisms.
Simon Kelleyc4a7f902012-07-12 20:52:12 +01001107
Simon Kelley32be32e2017-06-25 21:33:28 +01001108 Fixed bug logging filenames when duplicate dhcp-host
1109 addresses are found. Thanks to John Hanks for the patch.
Simon Kelley611ebc52012-07-16 16:23:46 +01001110
Simon Kelley32be32e2017-06-25 21:33:28 +01001111 Fix regression in 2.61 which broke caching of CNAME
1112 chains. Thanks to Atul Gupta for the bug report.
Simon Kelley611ebc52012-07-16 16:23:46 +01001113
Simon Kelley32be32e2017-06-25 21:33:28 +01001114 Allow the target of a --cname flag to be another --cname.
Simon Kelley42243212012-07-20 15:19:18 +01001115
Simon Kelley32be32e2017-06-25 21:33:28 +01001116 Teach DHCPv6 about the RFC 4242 information-refresh-time
1117 option, and add parsing if the minutes, hours and days
1118 format for options. Thanks to Francois-Xavier Le Bail for
1119 the suggestion.
Simon Kelley42243212012-07-20 15:19:18 +01001120
Simon Kelley32be32e2017-06-25 21:33:28 +01001121 Allow "w" (for week) as multiplier in lease times, as well
1122 as seconds, minutes, hours and days. Álvaro Gámez Machado
1123 spotted the omission.
Simon Kelleyad094272012-08-10 17:10:54 +01001124
Simon Kelley32be32e2017-06-25 21:33:28 +01001125 Update French translation. Thanks to Gildas Le Nadan.
1126
1127 Allow a DBus service name to be given with --enable-dbus
1128 which overrides the default,
1129 uk.org.thekelleys.dnsmasq. Thanks to Mathieu
1130 Trudel-Lapierre for the patch.
1131
1132 Set the "prefix on-link" bit in Router
1133 Advertisements. Thanks to Gui Iribarren for the patch.
Simon Kelleyfd05f122012-08-12 17:48:50 +01001134
Simon Kelley078a6302012-06-07 13:56:23 +01001135
Simon Kelley8358e0f2012-04-29 21:53:09 +01001136version 2.62
Simon Kelley32be32e2017-06-25 21:33:28 +01001137 Update German translation. Thanks to Conrad Kostecki.
Simon Kelley8358e0f2012-04-29 21:53:09 +01001138
Simon Kelley32be32e2017-06-25 21:33:28 +01001139 Cope with router-solict packets which don't have a valid
1140 source address. Thanks to Vladislav Grishenko for the patch.
Simon Kelleyf632e562012-05-12 15:05:34 +01001141
Simon Kelley32be32e2017-06-25 21:33:28 +01001142 Fixed bug which caused missing periodic router
1143 advertisements with some configurations. Thanks to
1144 Vladislav Grishenko for the patch.
Simon Kelley919dd7c2012-05-12 15:23:09 +01001145
Simon Kelley32be32e2017-06-25 21:33:28 +01001146 Fixed bug which broke DHCPv6/RA with prefix lengths
1147 which are not divisible by 8. Thanks to Andre Coetzee
1148 for spotting this.
Simon Kelleyc64b7f62012-05-18 10:19:59 +01001149
Simon Kelley32be32e2017-06-25 21:33:28 +01001150 Fix non-response to router-solicitations when
1151 router-advertisement configured, but DHCPv6 not
1152 configured. Thanks to Marien Zwart for the patch.
Simon Kelley18c63ef2012-05-21 14:34:15 +01001153
Simon Kelley32be32e2017-06-25 21:33:28 +01001154 Add --dns-rr, to allow arbitrary DNS resource records.
Simon Kelley9f7f3b12012-05-28 21:39:57 +01001155
Simon Kelley32be32e2017-06-25 21:33:28 +01001156 Fixed bug which broke RA scheduling when an interface had
1157 two addresses in the same network. Thanks to Jim Bos for
1158 his help nailing this.
Simon Kelley5ae34bf2012-06-04 21:14:03 +01001159
Simon Kelleyeabc6dd2012-03-07 20:28:20 +00001160version 2.61
Simon Kelley32be32e2017-06-25 21:33:28 +01001161 Re-write interface discovery code on *BSD to use
1162 getifaddrs. This is more portable, more straightforward,
1163 and allows us to find the prefix length for IPv6
1164 addresses.
Simon Kelleyeabc6dd2012-03-07 20:28:20 +00001165
Simon Kelley32be32e2017-06-25 21:33:28 +01001166 Add ra-names, ra-stateless and slaac keywords for DHCPv6.
1167 Dnsmasq can now synthesise AAAA records for dual-stack
1168 hosts which get IPv6 addresses via SLAAC. It is also now
1169 possible to use SLAAC and stateless DHCPv6, and to
1170 tell clients to use SLAAC addresses as well as DHCP ones.
1171 Thanks to Dave Taht for help with this.
Simon Kelley7023e382012-03-09 12:05:49 +00001172
Simon Kelley32be32e2017-06-25 21:33:28 +01001173 Add --dhcp-duid to allow DUID-EN uids to be used.
Simon Kelley8b372702012-03-09 17:45:10 +00001174
Simon Kelley32be32e2017-06-25 21:33:28 +01001175 Explicitly send DHCPv6 replies to the correct port, instead
1176 of relying on clients to send requests with the correct
1177 source address, since at least one client in the wild gets
1178 this wrong. Thanks to Conrad Kostecki for help tracking
1179 this down.
Simon Kelleyeabc6dd2012-03-07 20:28:20 +00001180
Simon Kelley32be32e2017-06-25 21:33:28 +01001181 Send a preference value of 255 in DHCPv6 replies when
1182 --dhcp-authoritative is in effect. This tells clients not
1183 to wait around for other DHCP servers.
Simon Kelley8643ec72012-03-12 20:04:14 +00001184
Simon Kelley32be32e2017-06-25 21:33:28 +01001185 Better logging of DHCPv6 options.
Simon Kelley8643ec72012-03-12 20:04:14 +00001186
Simon Kelley32be32e2017-06-25 21:33:28 +01001187 Add --host-record. Thanks to Rob Zwissler for the
1188 suggestion.
Simon Kelleye759d422012-03-16 13:18:57 +00001189
Simon Kelley32be32e2017-06-25 21:33:28 +01001190 Invoke the DHCP script with action "tftp" when a TFTP file
1191 transfer completes. The size of the file, address to which
1192 it was sent and complete pathname are supplied. Note that
1193 version 2.60 introduced some script incompatibilities
1194 associated with DHCPv6, and this is a further change. To
1195 be safe, scripts should ignore unknown actions, and if
1196 not IPv6-aware, should exit if the environment
1197 variable DNSMASQ_IAID is set. The use-case for this is
1198 to track netboot/install. Suggestion from Shantanu
1199 Gadgil.
Simon Kelleya9530962012-03-20 22:07:35 +00001200
Simon Kelley32be32e2017-06-25 21:33:28 +01001201 Update contrib/port-forward/dnsmasq-portforward to reflect
1202 the above.
Simon Kelleya9530962012-03-20 22:07:35 +00001203
Simon Kelley32be32e2017-06-25 21:33:28 +01001204 Set the environment variable DNSMASQ_LOG_DHCP when running
1205 the script id --log-dhcp is in effect, so that script can
1206 taylor their logging verbosity. Suggestion from Malte
1207 Forkel.
Simon Kelleya9530962012-03-20 22:07:35 +00001208
Simon Kelley32be32e2017-06-25 21:33:28 +01001209 Arrange that addresses specified with --listen-address
1210 work even if there is no interface carrying the
1211 address. This is chiefly useful for IPv4 loopback
1212 addresses, where any address in 127.0.0.0/8 is a valid
1213 loopback address, but normally only 127.0.0.1 appears on
1214 the lo interface. Thanks to Mathieu Trudel-Lapierre for
1215 the idea and initial patch.
Simon Kelley7d2b5c92012-03-23 10:00:02 +00001216
Simon Kelley32be32e2017-06-25 21:33:28 +01001217 Fix crash, introduced in 2.60, when a DHCPINFORM is
1218 received from a network which has no valid dhcp-range.
1219 Thanks to Stephane Glondu for the bug report.
Simon Kelleyc8257542012-03-28 21:15:41 +01001220
Simon Kelley32be32e2017-06-25 21:33:28 +01001221 Add a new DHCP lease time keyword, "deprecated" for
1222 --dhcp-range. This is only valid for IPv6, and sets the
1223 preferred lease time for both DHCP and RA to zero. The
1224 effect is that clients can continue to use the address
1225 for existing connections, but new connections will use
1226 other addresses, if they exist. This makes hitless
1227 renumbering at least possible.
Simon Kelley18f0fb02012-03-31 21:18:55 +01001228
Simon Kelley32be32e2017-06-25 21:33:28 +01001229 Fix bug in address6_available() which caused DHCPv6 lease
1230 acquisition to fail if more than one dhcp-range in use.
Simon Kelley6c559c32012-04-02 20:40:34 +01001231
Simon Kelley32be32e2017-06-25 21:33:28 +01001232 Provide RDNSS and DNSSL data in router advertisements,
1233 using the settings provided for DHCP options
1234 option6:domain-search and option6:dns-server.
Simon Kelley9380ba72012-04-16 14:41:56 +01001235
Simon Kelley32be32e2017-06-25 21:33:28 +01001236 Tweak logo/favicon.ico to add some transparency. Thanks to
1237 SamLT for work on this.
Simon Kelleye46164e2012-04-16 16:39:38 +01001238
Simon Kelley32be32e2017-06-25 21:33:28 +01001239 Don't cache data from non-recursive nameservers, since it
1240 may erroneously look like a valid CNAME to a non-existent
1241 name. Thanks to Ben Winslow for finding this.
Simon Kelleyd1c759c2012-04-16 17:26:19 +01001242
Simon Kelley32be32e2017-06-25 21:33:28 +01001243 Call SO_BINDTODEVICE on the DHCP socket(s) when doing DHCP
1244 on exactly one interface and --bind-interfaces is set. This
1245 makes the OpenStack use-case of one dnsmasq per virtual
1246 interface work. This is only available on Linux; it's not
1247 supported on other platforms. Thanks to Vishvananda Ishaya
1248 and the OpenStack team for the suggestion.
Simon Kelleydcffad22012-04-24 15:25:18 +01001249
Simon Kelley32be32e2017-06-25 21:33:28 +01001250 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley19d69be2012-04-27 10:14:34 +01001251
Simon Kelley32be32e2017-06-25 21:33:28 +01001252 Give correct from-cache answers to explicit CNAME queries.
1253 Thanks to Rob Zwissler for spotting this.
1254
1255 Add --tftp-lowercase option. Thanks to Oliver Rath for the
1256 patch.
1257
1258 Ensure that the DBus DhcpLeaseUpdated events are generated
1259 when a lease goes through INIT_REBOOT state, even if the
1260 dhcp-script is not in use. Thanks to Antoaneta-Ecaterina
1261 Ene for the patch.
1262
1263 Fix failure of TFTP over IPv4 on OpenBSD platform. Thanks
1264 to Brad Smith for spotting this.
1265
Simon Kelleyc8257542012-03-28 21:15:41 +01001266
Simon Kelleyc72daea2012-01-05 21:33:27 +00001267version 2.60
Simon Kelley32be32e2017-06-25 21:33:28 +01001268 Fix compilation problem in Mac OS X Lion. Thanks to Olaf
1269 Flebbe for the patch.
Simon Kelley74c95c22011-10-19 09:33:39 +01001270
Simon Kelley32be32e2017-06-25 21:33:28 +01001271 Fix DHCP when using --listen-address with an IP address
1272 which is not the primary address of an interface.
Simon Kelleyc72daea2012-01-05 21:33:27 +00001273
Simon Kelley32be32e2017-06-25 21:33:28 +01001274 Add --dhcp-client-update option.
Simon Kelleyc72daea2012-01-05 21:33:27 +00001275
Simon Kelley32be32e2017-06-25 21:33:28 +01001276 Add Lua integration. Dnsmasq can now execute a DHCP
1277 lease-change script written in Lua. This needs to be
1278 enabled at compile time by setting HAVE_LUASCRIPT in
1279 src/config.h or running "make COPTS=-DHAVE_LUASCRIPT"
1280 Thanks to Jan-Piet Mens for the idea and proof-of-concept
1281 implementation.
Simon Kelleyc72daea2012-01-05 21:33:27 +00001282
Simon Kelley32be32e2017-06-25 21:33:28 +01001283 Tidied src/config.h to distinguish between
1284 platform-dependent compile-time options which are selected
1285 automatically, and builder-selectable compile time
1286 options. Document the latter better, and describe how to
1287 set them from the make command line.
Simon Kelleyc72daea2012-01-05 21:33:27 +00001288
Simon Kelley32be32e2017-06-25 21:33:28 +01001289 Tidied up IPPROTO_IP/SOL_IP (and IPv6 equivalent)
1290 confusion. IPPROTO_IP works everywhere now.
Simon Kelleyc72daea2012-01-05 21:33:27 +00001291
Simon Kelley32be32e2017-06-25 21:33:28 +01001292 Set TOS on DHCP sockets, this improves things on busy
1293 wireless networks. Thanks to Dave Taht for the patch.
Simon Kelleya2761752012-01-18 16:07:21 +00001294
Simon Kelley32be32e2017-06-25 21:33:28 +01001295 Determine VERSION automatically based on git magic:
1296 release tags or hash values.
Simon Kelleya2761752012-01-18 16:07:21 +00001297
Simon Kelley32be32e2017-06-25 21:33:28 +01001298 Improve start-up speed when reading large hosts files
1299 containing many distinct addresses.
Simon Kelley9bbc8872012-02-09 21:33:09 +00001300
Simon Kelley32be32e2017-06-25 21:33:28 +01001301 Fix problem if dnsmasq is started without the stdin,
1302 stdout and stderr file descriptors open. This can manifest
1303 itself as 100% CPU use. Thanks to Chris Moore for finding
1304 this.
Simon Kelley751d6f42012-02-10 15:24:51 +00001305
Simon Kelley32be32e2017-06-25 21:33:28 +01001306 Fix shell-scripting bug in bld/pkg-wrapper. Thanks to
1307 Mark Mitchell for the patch.
Simon Kelleyb36ae192012-02-13 12:54:34 +00001308
Simon Kelley32be32e2017-06-25 21:33:28 +01001309 Allow the TFP server or boot server in --pxe-service, to
1310 be a domain name instead of an IP address. This allows for
1311 round-robin to multiple servers, in the same way as
1312 --dhcp-boot. A good suggestion from Cristiano Cumer.
Simon Kelley1adadf52012-02-13 22:15:58 +00001313
Simon Kelley32be32e2017-06-25 21:33:28 +01001314 Support BUILDDIR variable in the Makefile. Allows builds
1315 for multiple archs from the same source tree with eg.
1316 make BUILDDIR=linux (relative to dnsmasq tree)
1317 make BUILDDIR=/tmp/openbsd (absolute path)
1318 If BUILDDIR is not set, compilation happens in the src
1319 directory, as before. Suggestion from Mark Mitchell.
Simon Kelleyac8540c2012-02-26 20:57:31 +00001320
Simon Kelley32be32e2017-06-25 21:33:28 +01001321 Support DHCPv6. Support is there for the sort of things
1322 the existing v4 server does, including tags, options,
1323 static addresses and relay support. Missing is prefix
1324 delegation, which is probably not required in the dnsmasq
1325 niche, and an easy way to accept prefix delegations from
1326 an upstream DHCPv6 server, which is. Future plans include
1327 support for DHCPv6 router option and MAC address option
1328 (to make selecting clients by MAC address work like IPv4).
1329 These will be added as the standards mature.
1330 This code has been tested, but this is the first release,
1331 so don't bet the farm on it just yet. Many thanks to all
1332 testers who have got it this far.
Simon Kelley552af8b2012-02-29 20:10:31 +00001333
Simon Kelley32be32e2017-06-25 21:33:28 +01001334 Support IPv6 router advertisements. This is a
1335 simple-minded implementation, aimed at providing the
1336 vestigial RA needed to go alongside IPv6. Is picks up
1337 configuration from the DHCPv6 conf, and should just need
1338 enabling with --enable-ra.
1339
1340 Fix long-standing wrinkle with --localise-queries that
1341 could result in wrong answers when DNS packets arrive
1342 via an interface other than the expected one. Thanks to
1343 Lorenzo Milesi and John Hanks for spotting this one.
1344
1345 Update French translation. Thanks to Gildas Le Nadan.
1346
1347 Update Polish translation. Thanks to Jan Psota.
Simon Kelleydf66e342012-03-04 20:04:22 +00001348
1349
Simon Kelleyc72daea2012-01-05 21:33:27 +00001350version 2.59
Simon Kelley32be32e2017-06-25 21:33:28 +01001351 Fix regression in 2.58 which caused failure to start up
1352 with some combinations of dnsmasq config and IPv6 kernel
1353 network config. Thanks to Brielle Bruns for the bug
1354 report.
Simon Kelleyc72daea2012-01-05 21:33:27 +00001355
Simon Kelley32be32e2017-06-25 21:33:28 +01001356 Improve dnsmasq's behaviour when network interfaces are
1357 still doing duplicate address detection (DAD). Previously,
1358 dnsmasq would wait up to 20 seconds at start-up for the
1359 DAD state to terminate. This is broken for bridge
1360 interfaces on recent Linux kernels, which don't start DAD
1361 until the bridge comes up, and so can take arbitrary
1362 time. The new behaviour lets dnsmasq poll for an arbitrary
1363 time whilst providing service on other interfaces. Thanks
1364 to Stephen Hemminger for pointing out the problem.
Simon Kelley74c95c22011-10-19 09:33:39 +01001365
1366
Simon Kelley7de060b2011-08-26 17:24:52 +01001367version 2.58
Simon Kelley32be32e2017-06-25 21:33:28 +01001368 Provide a definition of the SA_SIZE macro where it's
1369 missing. Fixes build failure on openBSD.
Simon Kelley7de060b2011-08-26 17:24:52 +01001370
Simon Kelley32be32e2017-06-25 21:33:28 +01001371 Don't include a zero terminator at the end of messages
1372 sent to /dev/log when /dev/log is a datagram socket.
1373 Thanks to Didier Rabound for spotting the problem.
Simon Kelley7de060b2011-08-26 17:24:52 +01001374
Simon Kelley32be32e2017-06-25 21:33:28 +01001375 Add --dhcp-sequential-ip flag, to force allocation of IP
1376 addresses in ascending order. Note that the default
1377 pseudo-random mode is in general better but some
1378 server-deployment applications need this.
Simon Kelley7de060b2011-08-26 17:24:52 +01001379
Simon Kelley32be32e2017-06-25 21:33:28 +01001380 Fix problem where a server-id of 0.0.0.0 is sent to a
1381 client when a dhcp-relay is in use if a client renews a
1382 lease after dnsmasq restart and before any clients on the
1383 subnet get a new lease. Thanks to Mike Ruiz for assistance
1384 in chasing this one down.
Simon Kelley7de060b2011-08-26 17:24:52 +01001385
Simon Kelley32be32e2017-06-25 21:33:28 +01001386 Don't return NXDOMAIN to an AAAA query if we have CNAME
1387 which points to an A record only: NODATA is the correct
1388 reply in this case. Thanks to Tom Fernandes for spotting
1389 the problem.
Simon Kelley7de060b2011-08-26 17:24:52 +01001390
Simon Kelley32be32e2017-06-25 21:33:28 +01001391 Relax the need to supply a netmask in --dhcp-range for
1392 networks which use a DHCP relay. Whilst this is still
1393 desirable, in the absence of a netmask dnsmasq will use
1394 a default based on the class (A, B, or C) of the address.
1395 This should at least remove a cause of mysterious failure
1396 for people using RFC1918 addresses and relays.
Simon Kelley7de060b2011-08-26 17:24:52 +01001397
Simon Kelley32be32e2017-06-25 21:33:28 +01001398 Add support for Linux conntrack connection marking. If
1399 enabled with --conntrack, the connection mark for incoming
1400 DNS queries will be copied to the outgoing connections
1401 used to answer those queries. This allows clever firewall
1402 and accounting stuff. Only available if dnsmasq is
1403 compiled with HAVE_CONNTRACK and adds a dependency on
1404 libnetfilter-conntrack. Thanks to Ed Wildgoose for the
1405 initial idea, testing and sponsorship of this function.
Simon Kelley7de060b2011-08-26 17:24:52 +01001406
Simon Kelley32be32e2017-06-25 21:33:28 +01001407 Provide a sane error message when someone attempts to
1408 match a tag in --dhcp-host.
Simon Kelley7de060b2011-08-26 17:24:52 +01001409
Simon Kelley32be32e2017-06-25 21:33:28 +01001410 Tweak the behaviour of --domain-needed, to avoid problems
1411 with recursive nameservers downstream of dnsmasq. The new
1412 behaviour only stops A and AAAA queries, and returns
1413 NODATA rather than NXDOMAIN replies.
Simon Kelley7de060b2011-08-26 17:24:52 +01001414
Simon Kelley32be32e2017-06-25 21:33:28 +01001415 Efficiency fix for very large DHCP configurations, thanks
1416 to James Gartrell and Mike Ruiz for help with this.
Simon Kelley7de060b2011-08-26 17:24:52 +01001417
Simon Kelley32be32e2017-06-25 21:33:28 +01001418 Allow the TFTP-server address in --dhcp-boot to be a
1419 domain-name which is looked up in /etc/hosts. This can
1420 give multiple IP addresses which are used round-robin,
1421 thus doing TFTP server load-balancing. Thanks to Sushil
1422 Agrawal for the patch.
Simon Kelley7de060b2011-08-26 17:24:52 +01001423
Simon Kelley32be32e2017-06-25 21:33:28 +01001424 When two tagged dhcp-options for a particular option
1425 number are both valid, use the one which is valid without
1426 a tag from the dhcp-range. Allows overriding of the value
1427 of a DHCP option for a particular host as well as
1428 per-network values. So
1429 --dhcp-range=set:interface1,......
1430 --dhcp-host=set:myhost,.....
1431 --dhcp-option=tag:interface1,option:nis-domain,"domain1"
1432 --dhcp-option=tag:myhost,option:nis-domain,"domain2"
1433 will set the NIS-domain to domain1 for hosts in the range, but
1434 override that to domain2 for a particular host.
Simon Kelley7de060b2011-08-26 17:24:52 +01001435
Simon Kelley32be32e2017-06-25 21:33:28 +01001436 Fix bug which resulted in truncated files and timeouts for
1437 some TFTP transfers. The bug only occurs with netascii
1438 transfers and needs an unfortunate relationship between
1439 file size, blocksize and the number of newlines in the
1440 last block before it manifests itself. Many thanks to
1441 Alkis Georgopoulos for spotting the problem and providing
1442 a comprehensive test-case.
Simon Kelley7de060b2011-08-26 17:24:52 +01001443
Simon Kelley32be32e2017-06-25 21:33:28 +01001444 Fix regression in TFTP server on *BSD platforms introduced
1445 in version 2.56, due to confusion with sockaddr
1446 length. Many thanks to Loic Pefferkorn for finding this.
Simon Kelley7de060b2011-08-26 17:24:52 +01001447
Simon Kelley32be32e2017-06-25 21:33:28 +01001448 Support scope-ids in IPv6 addresses of nameservers from
1449 /etc/resolv.conf and in --server options. Eg
1450 nameserver fe80::202:a412:4512:7bbf%eth0 or
1451 server=fe80::202:a412:4512:7bbf%eth0. Thanks to
1452 Michael Stapelberg for the suggestion.
Simon Kelley7de060b2011-08-26 17:24:52 +01001453
Simon Kelley32be32e2017-06-25 21:33:28 +01001454 Update Polish translation, thanks to Jan Psota.
Simon Kelley7de060b2011-08-26 17:24:52 +01001455
Simon Kelley32be32e2017-06-25 21:33:28 +01001456 Update French translation. Thanks to Gildas Le Nadan.
Simon Kelley7de060b2011-08-26 17:24:52 +01001457
1458
Simon Kelley572b41e2011-02-18 18:11:18 +00001459version 2.57
Simon Kelley32be32e2017-06-25 21:33:28 +01001460 Add patches to allow build under Android.
Simon Kelley572b41e2011-02-18 18:11:18 +00001461
Simon Kelley32be32e2017-06-25 21:33:28 +01001462 Provide our own header for the DNS protocol, rather than
1463 relying on arpa/nameser.h. This has proved more or less
1464 defective over the years and the final straw is that it's
1465 effectively empty on Android.
Simon Kelley572b41e2011-02-18 18:11:18 +00001466
Simon Kelley32be32e2017-06-25 21:33:28 +01001467 Fix regression in 2.56 which caused hex constants in
1468 configuration to be rejected if they contain the '*'
1469 wildcard.
Simon Kelley572b41e2011-02-18 18:11:18 +00001470
Simon Kelley32be32e2017-06-25 21:33:28 +01001471 Correct wrong casts of arguments to ctype.h functions,
1472 isdigit(), isxdigit() etc. Thanks to Matthias Andree for
1473 spotting this.
Simon Kelley572b41e2011-02-18 18:11:18 +00001474
Simon Kelley32be32e2017-06-25 21:33:28 +01001475 Allow build with IDN support independently from i18n.
1476 IDN support continues to be included automatically
1477 when i18n is included.
1478 'make COPTS=-DHAVE_IDN' is the magic incantation.
Simon Kelley572b41e2011-02-18 18:11:18 +00001479
Simon Kelley32be32e2017-06-25 21:33:28 +01001480 Modify check on extraneous command line junk (added in
1481 2.56) so that it doesn't complain about extra _empty_
1482 arguments. Otherwise this breaks libvirt.
Simon Kelley572b41e2011-02-18 18:11:18 +00001483
1484
Simon Kelley28866e92011-02-14 20:19:14 +00001485version 2.56
Simon Kelley32be32e2017-06-25 21:33:28 +01001486 Add a patch to allow dnsmasq to get interface names right in a
1487 Solaris zone. Thanks to Dj Padzensky for this.
Simon Kelley28866e92011-02-14 20:19:14 +00001488
Simon Kelley32be32e2017-06-25 21:33:28 +01001489 Improve data-type parsing heuristics so that
1490 --dhcp-option=option:domain-search,.
1491 treats the value as a string and not an IP address.
1492 Thanks to Clemens Fischer for spotting that.
Simon Kelley28866e92011-02-14 20:19:14 +00001493
Simon Kelley32be32e2017-06-25 21:33:28 +01001494 Add IPv6 support to the TFTP server. Many thanks to Jan
1495 'RedBully' Seiffert for the patches.
Simon Kelley28866e92011-02-14 20:19:14 +00001496
Simon Kelley32be32e2017-06-25 21:33:28 +01001497 Log DNS queries at level LOG_INFO, rather then
1498 LOG_DEBUG. This makes things consistent with DHCP
1499 logging. Thanks to Adam Pribyl for spotting the problem.
Simon Kelley28866e92011-02-14 20:19:14 +00001500
Simon Kelley32be32e2017-06-25 21:33:28 +01001501 Ensure that dnsmasq terminates cleanly when using
1502 --syslog-async even if it cannot make a connection to the
1503 syslogd.
Simon Kelley28866e92011-02-14 20:19:14 +00001504
Simon Kelley32be32e2017-06-25 21:33:28 +01001505 Add --add-mac option. This is to support currently
1506 experimental DNS filtering facilities. Thanks to Benjamin
1507 Petrin for the original patch.
Simon Kelley28866e92011-02-14 20:19:14 +00001508
Simon Kelley32be32e2017-06-25 21:33:28 +01001509 Fix bug which meant that tags were ignored in dhcp-range
1510 configuration specifying PXE-proxy service. Thanks to
1511 Cristiano Cumer for spotting this.
Simon Kelley28866e92011-02-14 20:19:14 +00001512
Simon Kelley32be32e2017-06-25 21:33:28 +01001513 Raise an error if there is extra junk, not part of an
1514 option, on the command line.
Simon Kelley28866e92011-02-14 20:19:14 +00001515
Simon Kelley32be32e2017-06-25 21:33:28 +01001516 Flag a couple of log messages in cache.c as coming from
1517 the DHCP subsystem. Thanks to Olaf Westrik for the patch.
Simon Kelley28866e92011-02-14 20:19:14 +00001518
Simon Kelley32be32e2017-06-25 21:33:28 +01001519 Omit timestamps from logs when a) logging to stderr and
1520 b) --keep-in-foreground is set. The logging facility on the
1521 other end of stderr can be assumed to supply them. Thanks
1522 to John Hallam for the patch.
Simon Kelley28866e92011-02-14 20:19:14 +00001523
Simon Kelley32be32e2017-06-25 21:33:28 +01001524 Don't complain about strings longer than 255 characters in
1525 --txt-record, just split the long strings into 255
1526 character chunks instead.
Simon Kelley28866e92011-02-14 20:19:14 +00001527
Simon Kelley32be32e2017-06-25 21:33:28 +01001528 Fix crash on double-free. This bug can only happen when
1529 dhcp-script is in use and then only in rare circumstances
1530 triggered by high DHCP transaction rate and a slow
1531 script. Thanks to Ferenc Wagner for finding the problem.
Simon Kelley28866e92011-02-14 20:19:14 +00001532
Simon Kelley32be32e2017-06-25 21:33:28 +01001533 Only log that a file has been sent by TFTP after the
1534 transfer has completed successfully.
Simon Kelley28866e92011-02-14 20:19:14 +00001535
Simon Kelley32be32e2017-06-25 21:33:28 +01001536 A good suggestion from Ferenc Wagner: extend
1537 the --domain option to allow this sort of thing:
1538 --domain=thekelleys.org.uk,192.168.0.0/24,local
1539 which automatically creates
1540 --local=/thekelleys.org.uk/
1541 --local=/0.168.192.in-addr.arpa/
Simon Kelley28866e92011-02-14 20:19:14 +00001542
Simon Kelley32be32e2017-06-25 21:33:28 +01001543 Tighten up syntax checking of hex constants in the config
1544 file. Thanks to Fred Damen for spotting this.
Simon Kelley28866e92011-02-14 20:19:14 +00001545
Simon Kelley32be32e2017-06-25 21:33:28 +01001546 Add dnsmasq logo/icon, contributed by Justin Swift. Many
1547 thanks for that.
Simon Kelley28866e92011-02-14 20:19:14 +00001548
Simon Kelley32be32e2017-06-25 21:33:28 +01001549 Never cache DNS replies which have the 'cd' bit set, or
1550 which result from queries forwarded with the 'cd' bit
1551 set. The 'cd' bit instructs a DNSSEC validating server
1552 upstream to ignore signature failures and return replies
1553 anyway. Without this change it's possible to pollute the
1554 dnsmasq cache with bad data by making a query with the
1555 'cd' bit set and subsequent queries would return this data
1556 without its being marked as suspect. Thanks to Anders
1557 Kaseorg for pointing out this problem.
Simon Kelley28866e92011-02-14 20:19:14 +00001558
Simon Kelley32be32e2017-06-25 21:33:28 +01001559 Add --proxy-dnssec flag, for compliance with RFC
1560 4035. Dnsmasq will now clear the 'ad' bit in answers returned
1561 from upstream validating nameservers unless this option is
1562 set.
Simon Kelley28866e92011-02-14 20:19:14 +00001563
Simon Kelley32be32e2017-06-25 21:33:28 +01001564 Allow a filename of "-" for --conf-file to read
1565 stdin. Suggestion from Timothy Redaelli.
Simon Kelley28866e92011-02-14 20:19:14 +00001566
Simon Kelley32be32e2017-06-25 21:33:28 +01001567 Rotate the order of SRV records in replies, to provide
1568 round-robin load balancing when all the priorities are
1569 equal. Thanks to Peter McKinney for the suggestion.
Simon Kelley28866e92011-02-14 20:19:14 +00001570
Simon Kelley32be32e2017-06-25 21:33:28 +01001571 Edit
1572 contrib/MacOSX-launchd/uk.org.thekelleys.dnsmasq.plist
1573 so that it doesn't log all queries to a file by
1574 default. Thanks again to Peter McKinney.
Simon Kelley28866e92011-02-14 20:19:14 +00001575
Simon Kelley32be32e2017-06-25 21:33:28 +01001576 By default, setting an IPv4 address for a domain but not
1577 an IPv6 address causes dnsmasq to return
Ville Skyttäfaaf3062018-01-14 17:32:52 +00001578 a NODATA reply for IPv6 (or vice-versa). So
Simon Kelley32be32e2017-06-25 21:33:28 +01001579 --address=/google.com/1.2.3.4 stops IPv6 queries for
1580 *google.com from being forwarded. Make it possible to
1581 override this behaviour by defining the semantics if the
1582 same domain appears in both --server and --address.
1583 In that case, the --address has priority for the address
1584 family in which is appears, but the --server has priority
1585 of the address family which doesn't appear in --address
1586 So:
1587 --address=/google.com/1.2.3.4
1588 --server=/google.com/#
1589 will return 1.2.3.4 for IPv4 queries for *.google.com but
1590 forward IPv6 queries to the normal upstream nameserver.
1591 Similarly when setting an IPv6 address
1592 only this will allow forwarding of IPv4 queries. Thanks to
1593 William for pointing out the need for this.
Simon Kelley28866e92011-02-14 20:19:14 +00001594
Simon Kelley32be32e2017-06-25 21:33:28 +01001595 Allow more than one --dhcp-optsfile and --dhcp-hostsfile
1596 and make them understand directories as arguments in the
1597 same way as --addn-hosts. Suggestion from John Hanks.
Simon Kelley28866e92011-02-14 20:19:14 +00001598
Simon Kelley32be32e2017-06-25 21:33:28 +01001599 Ignore rebinding requests for leases we don't know
1600 about. Rebind is broadcast, so we might get to overhear a
1601 request meant for another DHCP server. NAKing this is
1602 wrong. Thanks to Brad D'Hondt for assistance with this.
1603
1604 Fix cosmetic bug which produced strange output when
1605 dumping cache statistics with some configurations. Thanks
1606 to Fedor Kozhevnikov for spotting this.
Simon Kelley28866e92011-02-14 20:19:14 +00001607
1608
Simon Kelleyc52e1892010-06-07 22:01:39 +01001609version 2.55
Simon Kelley32be32e2017-06-25 21:33:28 +01001610 Fix crash when /etc/ethers is in use. Thanks to
1611 Gianluigi Tiesi for finding this.
Simon Kelleyc52e1892010-06-07 22:01:39 +01001612
Simon Kelley32be32e2017-06-25 21:33:28 +01001613 Fix crash in netlink_multicast(). Thanks to Arno Wald for
1614 finding this one.
Simon Kelleyc52e1892010-06-07 22:01:39 +01001615
Simon Kelley32be32e2017-06-25 21:33:28 +01001616 Allow the empty domain "." in dhcp domain-search (119)
1617 options.
Simon Kelleyc52e1892010-06-07 22:01:39 +01001618
1619
1620version 2.54
Simon Kelley32be32e2017-06-25 21:33:28 +01001621 There is no version 2.54 to avoid confusion with 2.53,
1622 which incorrectly identifies itself as 2.54.
Simon Kelleyc52e1892010-06-07 22:01:39 +01001623
1624
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001625version 2.53
Simon Kelley32be32e2017-06-25 21:33:28 +01001626 Fix failure to compile on Debian/kFreeBSD. Thanks to
1627 Axel Beckert and Petr Salinger.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001628
Simon Kelley32be32e2017-06-25 21:33:28 +01001629 Fix code to avoid scary strict-aliasing warnings
1630 generated by gcc 4.4.
1631
1632 Added FAQ entry warning about DHCP failures with Vista
1633 when firewalls block 255.255.255.255.
1634
1635 Fixed bug which caused bad things to happen if a
1636 resolv.conf file which exists is subsequently removed.
1637 Thanks to Nikolai Saoukh for the patch.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001638
Simon Kelley32be32e2017-06-25 21:33:28 +01001639 Rationalised the DHCP tag system. Every configuration item
1640 which can set a tag does so by adding "set:<tag>" and
1641 every configuration item which is conditional on a tag is
1642 made so by "tag:<tag>". The NOT operator changes to '!',
1643 which is a bit more intuitive too. Dhcp-host directives
1644 can set more than one tag now. The old '#' NOT,
1645 "net:" prefix and no-prefixes are still honoured, so
1646 no existing config file needs to be changed, but
1647 the documentation and new-style config files should be
1648 much less confusing.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001649
Simon Kelley32be32e2017-06-25 21:33:28 +01001650 Added --tag-if to allow boolean operations on tags.
1651 This allows complicated logic to be clearer and more
1652 general. A great suggestion from Richard Voigt.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001653
Simon Kelley32be32e2017-06-25 21:33:28 +01001654 Add broadcast/unicast information to DHCP logging.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001655
Simon Kelley32be32e2017-06-25 21:33:28 +01001656 Allow --dhcp-broadcast to be unconditional.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001657
Simon Kelley32be32e2017-06-25 21:33:28 +01001658 Fixed incorrect behaviour with NOT <tag> conditionals in
1659 dhcp-options. Thanks to Max Turkewitz for assistance
1660 finding this.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001661
Simon Kelley32be32e2017-06-25 21:33:28 +01001662 If we send vendor-class encapsulated options based on the
1663 vendor-class supplied by the client, and no explicit
1664 vendor-class option is given, echo back the vendor-class
1665 from the client.
1666
1667 Fix bug which stopped dnsmasq from matching both a
1668 circuitid and a remoteid. Thanks to Ignacio Bravo for
1669 finding this.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001670
Simon Kelley32be32e2017-06-25 21:33:28 +01001671 Add --dhcp-proxy, which makes it possible to configure
1672 dnsmasq to use a DHCP relay agent as a full proxy, with
1673 all DHCP messages passing through the proxy. This is
1674 useful if the relay adds extra information to the packets
1675 it forwards, but cannot be configured with the RFC 5107
1676 server-override option.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001677
Simon Kelley32be32e2017-06-25 21:33:28 +01001678 Added interface:<iface name> part to dhcp-range. The
1679 semantics of this are very odd at first sight, but it
1680 allows a single line of the form
1681 dhcp-range=interface:virt0,192.168.0.4,192.168.0.200
1682 to be added to dnsmasq configuration which then supplies
1683 DHCP and DNS services to that interface, without affecting
1684 what services are supplied to other interfaces and
1685 irrespective of the existence or lack of
1686 interface=<interface>
1687 lines elsewhere in the dnsmasq configuration. The idea is
1688 that such a line can be added automatically by libvirt
1689 or equivalent systems, without disturbing any manual
1690 configuration.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001691
Simon Kelley32be32e2017-06-25 21:33:28 +01001692 Similarly to the above, allow --enable-tftp=<interface>
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001693
Simon Kelley32be32e2017-06-25 21:33:28 +01001694 Allow a TFTP root to be set separately for requests via
1695 different interfaces, --tftp-root=<path>,<interface>
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001696
Simon Kelley32be32e2017-06-25 21:33:28 +01001697 Correctly handle and log clashes between CNAMES and
1698 DNS names being given to DHCP leases. This fixes a bug
1699 which caused nonsense IP addresses to be logged. Thanks to
1700 Sergei Zhirikov for finding and analysing the problem.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001701
Simon Kelley32be32e2017-06-25 21:33:28 +01001702 Tweak flush_log so as to avoid leaving the log
1703 file in non-blocking mode. O_NONBLOCK is a property of the
1704 file, not the process/descriptor.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001705
Simon Kelley32be32e2017-06-25 21:33:28 +01001706 Fix contrib/Solaris10/create_package
1707 (/usr/man -> /usr/share/man) Thanks to Vita Batrla.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001708
Simon Kelley32be32e2017-06-25 21:33:28 +01001709 Fix a problem where, if a client got a lease, then went
1710 to another subnet and got another lease, then moved back,
1711 it couldn't resume the old lease, but would instead get
1712 a new address. Thanks to Leonardo Rodrigues for spotting
1713 this and testing the fix.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001714
Simon Kelley32be32e2017-06-25 21:33:28 +01001715 Fix weird bug which sometimes omitted certain characters
1716 from the start of quoted strings in dhcp-options. Thanks
1717 to Dayton Turner for spotting the problem.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001718
Simon Kelley32be32e2017-06-25 21:33:28 +01001719 Add facility to redirect some domains to the standard
1720 upstream servers: this allows something like
1721 --server=/google.com/1.2.3.4 --server=/www.google.com/#
1722 which will send queries for *.google.com to 1.2.3.4,
1723 except *www.google.com which will be forwarded as usual.
1724 Thanks to AJ Weber for prompting this addition.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001725
Simon Kelley32be32e2017-06-25 21:33:28 +01001726 Improve the hash-algorithm used to generate IP addresses
1727 from MAC addresses during initial DHCP address
1728 allocation. This improves performance when large numbers
1729 of hosts with similar MAC addresses all try and get an IP
1730 address at the same time. Thanks to Paul Smith for his
1731 work on this.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001732
Simon Kelley32be32e2017-06-25 21:33:28 +01001733 Tweak DHCP code so that --bridge-interface can be used to
1734 select which IP alias of an interface should be used for
1735 DHCP purposes on Linux. If eth0 has an alias eth0:dhcp
1736 then adding --bridge-interface=eth0:dhcp,eth0 will use
1737 the address of eth0:dhcp to determine the correct subnet
1738 for DHCP address allocation. Thanks to Pawel Golaszewski
1739 for prompting this and Eric Cooper for further testing.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001740
Simon Kelley32be32e2017-06-25 21:33:28 +01001741 Add --dhcp-generate-names. Suggestion by Ferenc Wagner.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001742
Simon Kelley32be32e2017-06-25 21:33:28 +01001743 Tweak DNS server selection algorithm when there is more
1744 than one server available for a domain, eg.
1745 --server=/mydomain/1.1.1.1
1746 --server=/mydomain/2.2.2.2
1747 Thanks to Alberto Cuesta-Canada for spotting a weakness
1748 here.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001749
Simon Kelley32be32e2017-06-25 21:33:28 +01001750 Add --max-ttl. Thanks to Fredrik Ringertz for the patch.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001751
Simon Kelley32be32e2017-06-25 21:33:28 +01001752 Allow --log-facility=- to force all logging to
1753 stderr. Suggestion from Clemens Fischer.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001754
Simon Kelley32be32e2017-06-25 21:33:28 +01001755 Fix regression which caused configuration like
1756 --address=/.domain.com/1.2.3.4 to be rejected. The dot to the
1757 left of the domain has been implied and not required for a
1758 long time, but it should be accepted for backward
1759 compatibility. Thanks to Andrew Burcin for spotting this.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001760
Simon Kelley32be32e2017-06-25 21:33:28 +01001761 Add --rebind-domain-ok and --rebind-localhost-ok.
1762 Suggestion from Clemens Fischer.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001763
Simon Kelley32be32e2017-06-25 21:33:28 +01001764 Log replies to queries of type TXT, when --log-queries
1765 is set.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001766
Simon Kelley32be32e2017-06-25 21:33:28 +01001767 Fix compiler warnings when compiled with -DNO_DHCP. Thanks
1768 to Shantanu Gadgil for the patch.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001769
Simon Kelley32be32e2017-06-25 21:33:28 +01001770 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001771
Simon Kelley32be32e2017-06-25 21:33:28 +01001772 Updated Polish translation. Thanks to Jan Psota.
1773
1774 Updated German translation. Thanks to Matthias Andree.
1775
1776 Added contrib/static-arp, thanks to Darren Hoo.
1777
1778 Fix corruption of the domain when a name from /etc/hosts
1779 overrides one supplied by a DHCP client. Thanks to Fedor
1780 Kozhevnikov for spotting the problem.
1781
1782 Updated Spanish translation. Thanks to Chris Chatham.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001783
1784
Simon Kelley316e2732010-01-22 20:16:09 +00001785version 2.52
Simon Kelley32be32e2017-06-25 21:33:28 +01001786 Work around a Linux kernel bug which insists that the
1787 length of the option passed to setsockopt must be at least
1788 sizeof(int) bytes, even if we're calling SO_BINDTODEVICE
1789 and the device name is "lo". Note that this is fixed
1790 in kernel 2.6.31, but the workaround is harmless and
1791 allows earlier kernels to be used. Also fix dnsmasq
1792 bug which reported the wrong address when this failed.
1793 Thanks to Fedor for finding this.
Simon Kelley316e2732010-01-22 20:16:09 +00001794
Simon Kelley32be32e2017-06-25 21:33:28 +01001795 The API for IPv6 PKTINFO changed around Linux kernel
1796 2.6.14. Workaround the case where dnsmasq is compiled
1797 against newer headers, but then run on an old kernel:
1798 necessary for some *WRT distros.
Simon Kelley316e2732010-01-22 20:16:09 +00001799
Simon Kelley32be32e2017-06-25 21:33:28 +01001800 Re-read the set of network interfaces when re-loading
1801 /etc/resolv.conf if --bind-interfaces is not set. This
1802 handles the case that loopback interfaces do not exist
1803 when dnsmasq is first started.
Simon Kelley316e2732010-01-22 20:16:09 +00001804
Simon Kelley32be32e2017-06-25 21:33:28 +01001805 Tweak the PXE code to support port 4011. This should
1806 reduce broadcasts and make things more reliable when other
1807 servers are around. It also improves inter-operability
1808 with certain clients.
Simon Kelley316e2732010-01-22 20:16:09 +00001809
Simon Kelley32be32e2017-06-25 21:33:28 +01001810 Make a pxe-service configuration with no filename or boot
1811 service type legal: this does a local boot. eg.
1812 pxe-service=x86PC, "Local boot"
Simon Kelley316e2732010-01-22 20:16:09 +00001813
Simon Kelley32be32e2017-06-25 21:33:28 +01001814 Be more conservative in detecting "A for A"
1815 queries. Dnsmasq checks if the name in a type=A query looks
1816 like a dotted-quad IP address and answers the query itself
1817 if so, rather than forwarding it. Previously dnsmasq
1818 relied in the library function inet_addr() to convert
1819 addresses, and that will accept some things which are
1820 confusing in this context, like 1.2.3 or even just
1821 1234. Now we only do A for A processing for four decimal
1822 numbers delimited by dots.
Simon Kelley316e2732010-01-22 20:16:09 +00001823
Simon Kelley32be32e2017-06-25 21:33:28 +01001824 A couple of tweaks to fix compilation on Solaris. Thanks
1825 to Joel Macklow for help with this.
Simon Kelley316e2732010-01-22 20:16:09 +00001826
Simon Kelley32be32e2017-06-25 21:33:28 +01001827 Another Solaris compilation tweak, needed for Solaris
1828 2009.06. Thanks to Lee Essen for that.
Simon Kelley316e2732010-01-22 20:16:09 +00001829
Simon Kelley32be32e2017-06-25 21:33:28 +01001830 Added extract packaging stuff from Lee Essen to
1831 contrib/Solaris10.
Simon Kelley316e2732010-01-22 20:16:09 +00001832
Simon Kelley32be32e2017-06-25 21:33:28 +01001833 Increased the default limit on number of leases to 1000
1834 (from 150). This is mainly a defence against DoS attacks,
1835 and for the average "one for two class C networks"
1836 installation, IP address exhaustion does that just as
1837 well. Making the limit greater than the number of IP
1838 addresses available in such an installation removes a
1839 surprise which otherwise can catch people out.
Simon Kelley316e2732010-01-22 20:16:09 +00001840
Simon Kelley32be32e2017-06-25 21:33:28 +01001841 Removed extraneous trailing space in the value of the
1842 DNSMASQ_TIME_REMAINING DNSMASQ_LEASE_LENGTH and
1843 DNSMASQ_LEASE_EXPIRES environment variables. Thanks to
1844 Gildas Le Nadan for spotting this.
Simon Kelley316e2732010-01-22 20:16:09 +00001845
Simon Kelley32be32e2017-06-25 21:33:28 +01001846 Provide the network-id tags for a DHCP transaction to
1847 the lease-change script in the environment variable
1848 DNSMASQ_TAGS. A good suggestion from Gildas Le Nadan.
Simon Kelley316e2732010-01-22 20:16:09 +00001849
Simon Kelley32be32e2017-06-25 21:33:28 +01001850 Add support for RFC3925 "Vendor-Identifying Vendor
1851 Options". The syntax looks like this:
1852 --dhcp-option=vi-encap:<enterprise number>, .........
Simon Kelley316e2732010-01-22 20:16:09 +00001853
Simon Kelley32be32e2017-06-25 21:33:28 +01001854 Add support to --dhcp-match to allow matching against
1855 RFC3925 "Vendor-Identifying Vendor Classes". The syntax
1856 looks like this:
1857 --dhcp-match=tag,vi-encap<enterprise number>, <value>
Simon Kelley316e2732010-01-22 20:16:09 +00001858
Simon Kelley32be32e2017-06-25 21:33:28 +01001859 Add some application specific code to assist in
1860 implementing the Broadband forum TR069 CPE-WAN
1861 specification. The details are in contrib/CPE-WAN/README
Simon Kelley316e2732010-01-22 20:16:09 +00001862
Simon Kelley32be32e2017-06-25 21:33:28 +01001863 Increase the default DNS packet size limit to 4096, as
1864 recommended by RFC5625 section 4.4.3. This can be
1865 reconfigured using --edns-packet-max if needed. Thanks to
1866 Francis Dupont for pointing this out.
Simon Kelley316e2732010-01-22 20:16:09 +00001867
Simon Kelley32be32e2017-06-25 21:33:28 +01001868 Rewrite query-ids even for TSIG signed packets, since
1869 this is allowed by RFC5625 section 4.5.
Simon Kelley316e2732010-01-22 20:16:09 +00001870
Simon Kelley32be32e2017-06-25 21:33:28 +01001871 Use getopt_long by default on OS X. It has been supported
1872 since version 10.3.0. Thanks to Arek Dreyer for spotting
1873 this.
Simon Kelley316e2732010-01-22 20:16:09 +00001874
Simon Kelley32be32e2017-06-25 21:33:28 +01001875 Added up-to-date startup configuration for MacOSX/launchd
1876 in contrib/MacOSX-launchd. Thanks to Arek Dreyer for
1877 providing this.
Simon Kelley316e2732010-01-22 20:16:09 +00001878
Simon Kelley32be32e2017-06-25 21:33:28 +01001879 Fix link error when including Dbus but excluding DHCP.
1880 Thanks to Oschtan for the bug report.
Simon Kelley316e2732010-01-22 20:16:09 +00001881
Simon Kelley32be32e2017-06-25 21:33:28 +01001882 Updated French translation. Thanks to Gildas Le Nadan.
1883
1884 Updated Polish translation. Thanks to Jan Psota.
1885
1886 Updated Spanish translation. Thanks to Chris Chatham.
1887
1888 Fixed confusion about domains, when looking up DHCP hosts
1889 in /etc/hosts. This could cause spurious "Ignoring
1890 domain..." messages. Thanks to Fedor Kozhevnikov for
1891 finding and analysing the problem.
1892
1893
Simon Kelley1f15b812009-10-13 17:49:32 +01001894version 2.51
Simon Kelley32be32e2017-06-25 21:33:28 +01001895 Add support for internationalised DNS. Non-ASCII characters
1896 in domain names found in /etc/hosts, /etc/ethers and
1897 /etc/dnsmasq.conf will be correctly handled by translation to
1898 punycode, as specified in RFC3490. This function is only
1899 available if dnsmasq is compiled with internationalisation
1900 support, and adds a dependency on GNU libidn. Without i18n
1901 support, dnsmasq continues to be compilable with just
1902 standard tools. Thanks to Yves Dorfsman for the
1903 suggestion.
Simon Kelley1f15b812009-10-13 17:49:32 +01001904
Simon Kelley32be32e2017-06-25 21:33:28 +01001905 Add two more environment variables for lease-change scripts:
1906 First, DNSMASQ_SUPPLIED_HOSTNAME; this is set to the hostname
1907 supplied by a client, even if the actual hostname used is
1908 over-ridden by dhcp-host or dhcp-ignore-names directives.
1909 Also DNSMASQ_RELAY_ADDRESS which gives the address of
1910 a DHCP relay, if used.
1911 Suggestions from Michael Rack.
Simon Kelley1f15b812009-10-13 17:49:32 +01001912
Simon Kelley32be32e2017-06-25 21:33:28 +01001913 Fix regression which broke echo of relay-agent
1914 options. Thanks to Michael Rack for spotting this.
Simon Kelley1f15b812009-10-13 17:49:32 +01001915
Simon Kelley32be32e2017-06-25 21:33:28 +01001916 Don't treat option 67 as being interchangeable with
1917 dhcp-boot parameters if it's specified as
1918 dhcp-option-force.
Simon Kelley1f15b812009-10-13 17:49:32 +01001919
Simon Kelley32be32e2017-06-25 21:33:28 +01001920 Make the code to call scripts on lease-change compile-time
1921 optional. It can be switched off by editing src/config.h
1922 or building with "make COPTS=-DNO_SCRIPT".
Simon Kelley1f15b812009-10-13 17:49:32 +01001923
Simon Kelley32be32e2017-06-25 21:33:28 +01001924 Make the TFTP server cope with filenames from Windows/DOS
1925 which use '\' as pathname separator. Thanks to Ralf for
1926 the patch.
Simon Kelley1f15b812009-10-13 17:49:32 +01001927
Simon Kelley32be32e2017-06-25 21:33:28 +01001928 Updated Polish translation. Thanks to Jan Psota.
Simon Kelley1f15b812009-10-13 17:49:32 +01001929
Simon Kelley32be32e2017-06-25 21:33:28 +01001930 Warn if an IP address is duplicated in /etc/ethers. Thanks
1931 to Felix Schwarz for pointing this out.
Simon Kelley1f15b812009-10-13 17:49:32 +01001932
Simon Kelley32be32e2017-06-25 21:33:28 +01001933 Teach --conf-dir to take an option list of file suffices
1934 which will be ignored when scanning the directory. Useful
1935 for backup files etc. Thanks to Helmut Hullen for the
1936 suggestion.
Simon Kelley1f15b812009-10-13 17:49:32 +01001937
Simon Kelley32be32e2017-06-25 21:33:28 +01001938 Add new DHCP option named tftpserver-address, which
1939 corresponds to the third argument of dhcp-boot. This
1940 allows the complete functionality of dhcp-boot to be
1941 replicated with dhcp-option. Useful when using
1942 dhcp-optsfile.
Simon Kelley1f15b812009-10-13 17:49:32 +01001943
Simon Kelley32be32e2017-06-25 21:33:28 +01001944 Test which upstream nameserver to use every 10 seconds
1945 or 50 queries and not just when a query times out and
1946 is retried. This should improve performance when there
1947 is a slow nameserver in the list. Thanks to Joe for the
1948 suggestion.
Simon Kelley1f15b812009-10-13 17:49:32 +01001949
Simon Kelley32be32e2017-06-25 21:33:28 +01001950 Don't do any PXE processing, even for clients with the
1951 correct vendorclass, unless at least one pxe-prompt or
1952 pxe-service option is given. This stops dnsmasq
1953 interfering with proxy PXE subsystems when it is just
1954 the DHCP server. Thanks to Spencer Clark for spotting this.
1955
1956 Limit the blocksize used for TFTP transfers to a value
1957 which avoids packet fragmentation, based on the MTU of the
1958 local interface. Many netboot ROMs can't cope with
1959 fragmented packets.
1960
1961 Honour dhcp-ignore configuration for PXE and proxy-PXE
1962 requests. Thanks to Niels Basjes for the bug report.
1963
1964 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley1f15b812009-10-13 17:49:32 +01001965
1966
Simon Kelley77e94da2009-08-31 17:32:17 +01001967version 2.50
Simon Kelley32be32e2017-06-25 21:33:28 +01001968 Fix security problem which allowed any host permitted to
1969 do TFTP to possibly compromise dnsmasq by remote buffer
1970 overflow when TFTP enabled. Thanks to Core Security
1971 Technologies and Iván Arce, Pablo Hernán Jorge, Alejandro
1972 Pablo Rodriguez, Martín Coco, Alberto Soliño Testa and
1973 Pablo Annetta. This problem has Bugtraq id: 36121
1974 and CVE: 2009-2957
Simon Kelley77e94da2009-08-31 17:32:17 +01001975
Simon Kelley32be32e2017-06-25 21:33:28 +01001976 Fix a problem which allowed a malicious TFTP client to
1977 crash dnsmasq. Thanks to Steve Grubb at Red Hat for
1978 spotting this. This problem has Bugtraq id: 36120 and
1979 CVE: 2009-2958
Simon Kelley77e94da2009-08-31 17:32:17 +01001980
1981
Simon Kelley03a97b62009-06-10 20:55:49 +01001982version 2.49
Simon Kelley32be32e2017-06-25 21:33:28 +01001983 Fix regression in 2.48 which disables the lease-change
1984 script. Thanks to Jose Luis Duran for spotting this.
Simon Kelley03a97b62009-06-10 20:55:49 +01001985
Simon Kelley32be32e2017-06-25 21:33:28 +01001986 Log TFTP "file not found" errors. These were not logged,
1987 since a normal PXELinux boot generates many of them, but
1988 the lack of the messages seems to be more confusing than
1989 routinely seeing them when there is no real error.
Simon Kelley03a97b62009-06-10 20:55:49 +01001990
Simon Kelley32be32e2017-06-25 21:33:28 +01001991 Update Spanish translation. Thanks to Chris Chatham.
1992
Simon Kelley03a97b62009-06-10 20:55:49 +01001993
Simon Kelley7622fc02009-06-04 20:32:05 +01001994version 2.48
Simon Kelley32be32e2017-06-25 21:33:28 +01001995 Archived the extensive, backwards, changelog to
1996 CHANGELOG.archive. The current changelog now runs from
1997 version 2.43 and runs conventionally.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00001998
Simon Kelley32be32e2017-06-25 21:33:28 +01001999 Fixed bug which broke binding of servers to physical
2000 interfaces when interface names were longer than four
2001 characters. Thanks to MURASE Katsunori for the patch.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00002002
Simon Kelley32be32e2017-06-25 21:33:28 +01002003 Fixed netlink code to check that messages come from the
2004 correct source, and not another userspace process. Thanks
2005 to Steve Grubb for the patch.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00002006
Simon Kelley32be32e2017-06-25 21:33:28 +01002007 Maintainability drive: removed bug and missing feature
2008 workarounds for some old platforms. Solaris 9, OpenBSD
2009 older than 4.1, Glibc older than 2.2, Linux 2.2.x and
2010 DBus older than 1.1.x are no longer supported.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00002011
Simon Kelley32be32e2017-06-25 21:33:28 +01002012 Don't read included configuration files more than once:
2013 allows complex configuration structures without problems.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00002014
Simon Kelley32be32e2017-06-25 21:33:28 +01002015 Mark log messages from the various subsystems in dnsmasq:
2016 messages from the DHCP subsystem now have the ident string
2017 "dnsmasq-dhcp" and messages from TFTP have ident
2018 "dnsmasq-tftp". Thanks to Olaf Westrik for the patch.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00002019
Simon Kelley32be32e2017-06-25 21:33:28 +01002020 Fix possible infinite DHCP protocol loop when an IP
2021 address nailed to a hostname (not a MAC address) and a
2022 host sometimes provides the name, sometimes not.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00002023
Simon Kelley32be32e2017-06-25 21:33:28 +01002024 Allow --addn-hosts to take a directory: all the files
2025 in the directory are read. Thanks to Phil Cornelius for
2026 the suggestion.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00002027
Simon Kelley32be32e2017-06-25 21:33:28 +01002028 Support --bridge-interface on all platforms, not just BSD.
Simon Kelley1ab84e22004-01-29 16:48:35 +00002029
Simon Kelley32be32e2017-06-25 21:33:28 +01002030 Added support for advanced PXE functions. It's now
2031 possible to define a prompt and menu options which will
2032 be displayed when a client PXE boots. It's also possible to
2033 hand-off booting to other boot servers. Proxy-DHCP, where
2034 dnsmasq just supplies the PXE information and another DHCP
2035 server does address allocation, is also allowed. See the
2036 --pxe-prompt and --pxe-service keywords. Thanks to
2037 Alkis Georgopoulos for the suggestion and Guilherme Moro
2038 and Michael Brown for assistance.
2039
2040 Improvements to DHCP logging. Thanks to Tom Metro for
2041 useful suggestions.
2042
2043 Add ability to build dnsmasq without DHCP support. To do
2044 this, edit src/config.h or build with
2045 "make COPTS=-DNO_DHCP". Thanks to Mahavir Jain for the patch.
2046
2047 Added --test command-line switch - syntax check
2048 configuration files only.
2049
2050 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley9009d742008-11-14 20:04:27 +00002051
Simon Kelley73a08a22009-02-05 20:28:08 +00002052
2053version 2.47
Simon Kelley32be32e2017-06-25 21:33:28 +01002054 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley73a08a22009-02-05 20:28:08 +00002055
Simon Kelley32be32e2017-06-25 21:33:28 +01002056 Fixed interface enumeration code to work on NetBSD
2057 5.0. Thanks to Roy Marples for the patch.
Simon Kelley73a08a22009-02-05 20:28:08 +00002058
Simon Kelley32be32e2017-06-25 21:33:28 +01002059 Updated config.h to use the same location for the lease
2060 file on NetBSD as the other *BSD variants. Also allow
2061 LEASEFILE and CONFFILE symbols to be overridden in CFLAGS.
Simon Kelley73a08a22009-02-05 20:28:08 +00002062
Simon Kelley32be32e2017-06-25 21:33:28 +01002063 Handle duplicate address detection on IPv6 more
2064 intelligently. In IPv6, an interface can have an address
2065 which is not usable, because it is still undergoing DAD
2066 (such addresses are marked "tentative"). Attempting to
2067 bind to an address in this state returns an error,
2068 EADDRNOTAVAIL. Previously, on getting such an error,
2069 dnsmasq would silently abandon the address, and never
2070 listen on it. Now, it retries once per second for 20
2071 seconds before generating a fatal error. 20 seconds should
2072 be long enough for any DAD process to complete, but can be
2073 adjusted in src/config.h if necessary. Thanks to Martin
2074 Krafft for the bug report.
Simon Kelley73a08a22009-02-05 20:28:08 +00002075
Simon Kelley32be32e2017-06-25 21:33:28 +01002076 Add DBus introspection. Patch from Jeremy Laine.
Simon Kelley73a08a22009-02-05 20:28:08 +00002077
Simon Kelley32be32e2017-06-25 21:33:28 +01002078 Update Dbus configuration file. Patch from Colin Walters.
2079 Fix for this bug:
2080 http://bugs.freedesktop.org/show_bug.cgi?id=18961
Simon Kelley73a08a22009-02-05 20:28:08 +00002081
Simon Kelley32be32e2017-06-25 21:33:28 +01002082 Support arbitrarily encapsulated DHCP options, suggestion
2083 and initial patch from Samium Gromoff. This is useful for
Geert Stappersc7e6aea2018-01-13 17:56:37 +00002084 (eg) iPXE, which expect all its private options to be
Simon Kelley32be32e2017-06-25 21:33:28 +01002085 encapsulated inside a single option 175. So, eg,
Simon Kelley73a08a22009-02-05 20:28:08 +00002086
Simon Kelley32be32e2017-06-25 21:33:28 +01002087 dhcp-option = encap:175, 190, "iscsi-client0"
2088 dhcp-option = encap:175, 191, "iscsi-client0-secret"
Simon Kelley73a08a22009-02-05 20:28:08 +00002089
Geert Stappersc7e6aea2018-01-13 17:56:37 +00002090 will provide iSCSI parameters to iPXE.
Simon Kelley73a08a22009-02-05 20:28:08 +00002091
Simon Kelley32be32e2017-06-25 21:33:28 +01002092 Enhance --dhcp-match to allow testing of the contents of a
2093 client-sent option, as well as its presence. This
2094 application in mind for this is RFC 4578
2095 client-architecture specifiers, but it's generally useful.
2096 Joey Korkames suggested the enhancement.
Simon Kelley73a08a22009-02-05 20:28:08 +00002097
Simon Kelley32be32e2017-06-25 21:33:28 +01002098 Move from using the IP_XMIT_IF ioctl to IP_BOUND_IF on
2099 OpenSolaris. Thanks to Bastian Machek for the heads-up.
Simon Kelley73a08a22009-02-05 20:28:08 +00002100
Simon Kelley32be32e2017-06-25 21:33:28 +01002101 No longer complain about blank lines in
2102 /etc/ethers. Thanks to Jon Nelson for the patch.
Simon Kelley73a08a22009-02-05 20:28:08 +00002103
Simon Kelley32be32e2017-06-25 21:33:28 +01002104 Fix binding of servers to physical devices, eg
2105 --server=/domain/1.2.3.4@eth0 which was broken from 2.43
2106 onwards unless --query-port=0 set. Thanks to Peter Naulls
2107 for the bug report.
Simon Kelley73a08a22009-02-05 20:28:08 +00002108
Simon Kelley32be32e2017-06-25 21:33:28 +01002109 Reply to DHCPINFORM requests even when the supplied ciaddr
2110 doesn't fall in any dhcp-range. In this case it's not
2111 possible to supply a complete configuration, but
2112 individually-configured options (eg PAC) may be useful.
Simon Kelley73a08a22009-02-05 20:28:08 +00002113
Simon Kelley32be32e2017-06-25 21:33:28 +01002114 Allow the source address of an alias to be a range:
2115 --alias=192.168.0.0,10.0.0.0,255.255.255.0 maps the whole
2116 subnet 192.168.0.0->192.168.0.255 to 10.0.0.0->10.0.0.255,
2117 as before.
2118 --alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0
2119 maps only the 192.168.0.10->192.168.0.40 region. Thanks to
2120 Ib Uhrskov for the suggestion.
Simon Kelley73a08a22009-02-05 20:28:08 +00002121
Simon Kelley32be32e2017-06-25 21:33:28 +01002122 Don't dynamically allocate DHCP addresses which may break
2123 Windows. Addresses which end in .255 or .0 are broken in
2124 Windows even when using supernetting.
2125 --dhcp-range=192.168.0.1,192.168.1.254,255,255,254.0 means
2126 192.168.0.255 is a valid IP address, but not for Windows.
2127 See Microsoft KB281579. We therefore no longer allocate
2128 these addresses to avoid hard-to-diagnose problems.
Simon Kelley73a08a22009-02-05 20:28:08 +00002129
Simon Kelley32be32e2017-06-25 21:33:28 +01002130 Update Polish translation. Thanks to Jan Psota.
2131
2132 Delete the PID-file when dnsmasq shuts down. Note that by
2133 this time, dnsmasq is normally not running as root, so
2134 this will fail if the PID-file is stored in a root-owned
2135 directory; such failure is silently ignored. To take
2136 advantage of this feature, the PID-file must be stored in a
2137 directory owned and write-able by the user running
2138 dnsmasq.
Simon Kelley7622fc02009-06-04 20:32:05 +01002139
2140
2141version 2.46
Simon Kelley32be32e2017-06-25 21:33:28 +01002142 Allow --bootp-dynamic to take a netid tag, so that it may
2143 be selectively enabled. Thanks to Olaf Westrik for the
2144 suggestion.
Simon Kelley7622fc02009-06-04 20:32:05 +01002145
Simon Kelley32be32e2017-06-25 21:33:28 +01002146 Remove ISC-leasefile reading code. This has been
2147 deprecated for a long time, and last time I removed it, it
2148 ended up going back by request of one user. This time,
2149 it's gone for good; otherwise it would need to be
2150 re-worked to support multiple domains (see below).
Simon Kelley7622fc02009-06-04 20:32:05 +01002151
Simon Kelley32be32e2017-06-25 21:33:28 +01002152 Support DHCP clients in multiple DNS domains. This is a
2153 long-standing request. Clients are assigned to a domain
2154 based in their IP address.
Simon Kelley7622fc02009-06-04 20:32:05 +01002155
Simon Kelley32be32e2017-06-25 21:33:28 +01002156 Add --dhcp-fqdn flag, which changes behaviour if DNS names
2157 assigned to DHCP clients. When this is set, there must be
2158 a domain associated with each client, and only
2159 fully-qualified domain names are added to the DNS. The
2160 advantage is that the only the FQDN needs to be unique,
2161 so that two or more DHCP clients can share a hostname, as
2162 long as they are in different domains.
Simon Kelley7622fc02009-06-04 20:32:05 +01002163
Simon Kelley32be32e2017-06-25 21:33:28 +01002164 Set environment variable DNSMASQ_DOMAIN when invoking
2165 lease-change script. This may be useful information to
2166 have now that it's variable.
Simon Kelley7622fc02009-06-04 20:32:05 +01002167
Simon Kelley32be32e2017-06-25 21:33:28 +01002168 Tighten up data-checking code for DNS packet
2169 handling. Thanks to Steve Dodd who found certain illegal
2170 packets which could crash dnsmasq. No memory overwrite was
2171 possible, so this is not a security issue beyond the DoS
2172 potential.
Simon Kelley7622fc02009-06-04 20:32:05 +01002173
Simon Kelley32be32e2017-06-25 21:33:28 +01002174 Update example config dhcp option 47, the previous
2175 suggestion generated an illegal, zero-length,
2176 option. Thanks to Matthias Andree for finding this.
Simon Kelley7622fc02009-06-04 20:32:05 +01002177
Simon Kelley32be32e2017-06-25 21:33:28 +01002178 Rewrite hosts-file reading code to remove the limit of
2179 1024 characters per line. John C Meuser found this.
Simon Kelley7622fc02009-06-04 20:32:05 +01002180
Simon Kelley32be32e2017-06-25 21:33:28 +01002181 Create a net-id tag with the name of the interface on
2182 which the DHCP request was received.
Simon Kelley7622fc02009-06-04 20:32:05 +01002183
Simon Kelley32be32e2017-06-25 21:33:28 +01002184 Fixed minor memory leak in DBus code, thanks to Jeremy
2185 Laine for the patch.
Simon Kelley7622fc02009-06-04 20:32:05 +01002186
Simon Kelley32be32e2017-06-25 21:33:28 +01002187 Emit DBus signals as the DHCP lease database
2188 changes. Thanks to Jeremy Laine for the patch.
Simon Kelley7622fc02009-06-04 20:32:05 +01002189
Simon Kelley32be32e2017-06-25 21:33:28 +01002190 Allow for more that one MAC address in a dhcp-host
2191 line. This configuration tells dnsmasq that it's OK to
2192 abandon a DHCP lease of the fixed address to one MAC
2193 address, if another MAC address in the dhcp-host statement
2194 asks for an address. This is useful to give a fixed
2195 address to a host which has two network interfaces
2196 (say, a laptop with wired and wireless interfaces.)
2197 It's very important to ensure that only one interface
2198 at a time is up, since dnsmasq abandons the first lease
2199 and re-uses the address before the leased time has
2200 elapsed. John Gray suggested this.
Simon Kelley7622fc02009-06-04 20:32:05 +01002201
Simon Kelley32be32e2017-06-25 21:33:28 +01002202 Tweak the response to a DHCP request packet with a wrong
2203 server-id when --dhcp-authoritative is set; dnsmasq now
2204 returns a DHCPNAK, rather than silently ignoring the
2205 packet. Thanks to Chris Marget for spotting this
2206 improvement.
Simon Kelley7622fc02009-06-04 20:32:05 +01002207
Simon Kelley32be32e2017-06-25 21:33:28 +01002208 Add --cname option. This provides a limited alias
2209 function, usable for DHCP names. Thanks to AJ Weber for
2210 suggestions on this.
Simon Kelley7622fc02009-06-04 20:32:05 +01002211
Simon Kelley32be32e2017-06-25 21:33:28 +01002212 Updated contrib/webmin with latest version from Neil
2213 Fisher.
Simon Kelley7622fc02009-06-04 20:32:05 +01002214
Simon Kelley32be32e2017-06-25 21:33:28 +01002215 Updated Polish translation. Thanks to Jan Psota.
Simon Kelley7622fc02009-06-04 20:32:05 +01002216
Simon Kelley32be32e2017-06-25 21:33:28 +01002217 Correct the text names for DHCP options 64 and 65 to be
2218 "nis+-domain" and "nis+-servers".
Simon Kelley7622fc02009-06-04 20:32:05 +01002219
Simon Kelley32be32e2017-06-25 21:33:28 +01002220 Updated Spanish translation. Thanks to Chris Chatham.
2221
2222 Force re-reading of /etc/resolv.conf when an "interface
2223 up" event occurs.
Simon Kelley7622fc02009-06-04 20:32:05 +01002224
2225
2226version 2.45
Simon Kelley32be32e2017-06-25 21:33:28 +01002227 Fix total DNS failure in release 2.44 unless --min-port
2228 specified. Thanks to Steven Barth and Grant Coady for
2229 bugreport. Also reject out-of-range port spec, which could
2230 break things too: suggestion from Gilles Espinasse.
2231
Simon Kelley7622fc02009-06-04 20:32:05 +01002232
2233version 2.44
Simon Kelley32be32e2017-06-25 21:33:28 +01002234 Fix crash when unknown client attempts to renew a DHCP
2235 lease, problem introduced in version 2.43. Thanks to
2236 Carlos Carvalho for help chasing this down.
Simon Kelley7622fc02009-06-04 20:32:05 +01002237
Simon Kelley32be32e2017-06-25 21:33:28 +01002238 Fix potential crash when a host which doesn't have a lease
2239 does DHCPINFORM. Again introduced in 2.43. This bug has
2240 never been reported in the wild.
Simon Kelley7622fc02009-06-04 20:32:05 +01002241
Simon Kelley32be32e2017-06-25 21:33:28 +01002242 Fix crash in netlink code introduced in 2.43. Thanks to
2243 Jean Wolter for finding this.
Simon Kelley7622fc02009-06-04 20:32:05 +01002244
Simon Kelley32be32e2017-06-25 21:33:28 +01002245 Change implementation of min_port to work even if min-port
2246 is large.
Simon Kelley7622fc02009-06-04 20:32:05 +01002247
Simon Kelley32be32e2017-06-25 21:33:28 +01002248 Patch to enable compilation of latest Mac OS X. Thanks to
2249 David Gilman.
Simon Kelley7622fc02009-06-04 20:32:05 +01002250
Simon Kelley32be32e2017-06-25 21:33:28 +01002251 Update Spanish translation. Thanks to Christopher Chatham.
Simon Kelley7622fc02009-06-04 20:32:05 +01002252
2253
2254version 2.43
Simon Kelley32be32e2017-06-25 21:33:28 +01002255 Updated Polish translation. Thanks to Jan Psota.
Simon Kelley7622fc02009-06-04 20:32:05 +01002256
Simon Kelley32be32e2017-06-25 21:33:28 +01002257 Flag errors when configuration options are repeated
2258 illegally.
Simon Kelley7622fc02009-06-04 20:32:05 +01002259
Simon Kelley32be32e2017-06-25 21:33:28 +01002260 Further tweaks for GNU/kFreeBSD
Simon Kelley7622fc02009-06-04 20:32:05 +01002261
Simon Kelley32be32e2017-06-25 21:33:28 +01002262 Add --no-wrap to msgmerge call - provides nicer .po file
2263 format.
Simon Kelley7622fc02009-06-04 20:32:05 +01002264
Simon Kelley32be32e2017-06-25 21:33:28 +01002265 Honour lease-time spec in dhcp-host lines even for
2266 BOOTP. The user is assumed to known what they are doing in
2267 this case. (Hosts without the time spec still get infinite
2268 leases for BOOTP, over-riding the default in the
2269 dhcp-range.) Thanks to Peter Katzmann for uncovering this.
Simon Kelley7622fc02009-06-04 20:32:05 +01002270
Simon Kelley32be32e2017-06-25 21:33:28 +01002271 Fix problem matching relay-agent ids. Thanks to Michael
2272 Rack for the bug report.
Simon Kelley7622fc02009-06-04 20:32:05 +01002273
Simon Kelley32be32e2017-06-25 21:33:28 +01002274 Add --naptr-record option. Suggestion from Johan
2275 Bergquist.
Simon Kelley7622fc02009-06-04 20:32:05 +01002276
Simon Kelley32be32e2017-06-25 21:33:28 +01002277 Implement RFC 5107 server-id-override DHCP relay agent
2278 option.
Simon Kelley7622fc02009-06-04 20:32:05 +01002279
Simon Kelley32be32e2017-06-25 21:33:28 +01002280 Apply patches from Stefan Kruger for compilation on
2281 Solaris 10 under Sun studio.
Simon Kelley7622fc02009-06-04 20:32:05 +01002282
Simon Kelley32be32e2017-06-25 21:33:28 +01002283 Yet more tweaking of Linux capability code, to suppress
2284 pointless wingeing from kernel 2.6.25 and above.
Simon Kelley7622fc02009-06-04 20:32:05 +01002285
Simon Kelley32be32e2017-06-25 21:33:28 +01002286 Improve error checking during startup. Previously, some
2287 errors which occurred during startup would be worked
2288 around, with dnsmasq still starting up. Some were logged,
2289 some silent. Now, they all cause a fatal error and dnsmasq
2290 terminates with a non-zero exit code. The errors are those
2291 associated with changing uid and gid, setting process
2292 capabilities and writing the pidfile. Thanks to Uwe
2293 Gansert and the Suse security team for pointing out
2294 this improvement, and Bill Reimers for good implementation
2295 suggestions.
Simon Kelley7622fc02009-06-04 20:32:05 +01002296
Simon Kelley32be32e2017-06-25 21:33:28 +01002297 Provide NO_LARGEFILE compile option to switch off largefile
2298 support when compiling against versions of uclibc which
2299 don't support it. Thanks to Stephane Billiart for the patch.
Simon Kelley7622fc02009-06-04 20:32:05 +01002300
Simon Kelley32be32e2017-06-25 21:33:28 +01002301 Implement random source ports for interactions with
2302 upstream nameservers. New spoofing attacks have been found
2303 against nameservers which do not do this, though it is not
2304 clear if dnsmasq is vulnerable, since to doesn't implement
2305 recursion. By default dnsmasq will now use a different
2306 source port (and socket) for each query it sends
2307 upstream. This behaviour can suppressed using the
2308 --query-port option, and the old default behaviour
2309 restored using --query-port=0. Explicit source-port
2310 specifications in --server configs are still honoured.
Simon Kelley7622fc02009-06-04 20:32:05 +01002311
Simon Kelley32be32e2017-06-25 21:33:28 +01002312 Replace the random number generator, for better
2313 security. On most BSD systems, dnsmasq uses the
2314 arc4random() RNG, which is secure, but on other platforms,
2315 it relied on the C-library RNG, which may be
2316 guessable and therefore allow spoofing. This release
2317 replaces the libc RNG with the SURF RNG, from Daniel
2318 J. Berstein's DJBDNS package.
Simon Kelley7622fc02009-06-04 20:32:05 +01002319
Simon Kelley32be32e2017-06-25 21:33:28 +01002320 Don't attempt to change user or group or set capabilities
2321 if dnsmasq is run as a non-root user. Without this, the
2322 change from soft to hard errors when these fail causes
2323 problems for non-root daemons listening on high
2324 ports. Thanks to Patrick McLean for spotting this.
2325
2326 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley1f15b812009-10-13 17:49:32 +01002327
2328
2329version 2.42
Simon Kelley32be32e2017-06-25 21:33:28 +01002330 The changelog for version 2.42 and earlier is
2331 available in CHANGELOG.archive.