blob: 93c73d01e19562d27d5c56a3a87c8211422f20a1 [file] [log] [blame]
Simon Kelleyd2aa7df2015-08-03 21:52:12 +01001version 2.76
2 Include 0.0.0.0/8 in DNS rebind checks. This range
3 translates to hosts on the local network, or, at
4 least, 0.0.0.0 accesses the local host, so could
5 be targets for DNS rebinding. See RFC 5735 section 3
6 for details. Thanks to Stephen Röttger for the bug report.
Ed Bardsleya7369be2015-08-05 21:17:18 +01007
8 Enhance --add-subnet to allow arbitrary subnet addresses.
9 Thanks to Ed Barsley for the patch.
Simon Kelley77607cb2015-09-10 23:08:43 +010010
11 Respect the --no-resolv flag in inotify code. Fixes bug
12 which caused dnsmasq to fail to start if a resolv-file
13 was a dangling symbolic link, even of --no-resolv set.
14 Thanks to Alexander Kurtz for spotting the problem.
15
Edwin Török41a8d9e2015-11-14 17:45:48 +000016 Fix crash when an A or AAAA record is defined locally,
17 in a hosts file, and an upstream server sends a reply
18 that the same name is empty. Thanks to Edwin Török for
19 the patch.
20
Ed Bardsleya7369be2015-08-05 21:17:18 +010021
Simon Kelley63ec5d12015-07-30 20:59:07 +010022version 2.75
23 Fix reversion on 2.74 which caused 100% CPU use when a
24 dhcp-script is configured. Thanks to Adrian Davey for
25 reporting the bug and testing the fix.
26
27
Simon Kelley90cb2222015-07-05 21:59:10 +010028version 2.74
29 Fix reversion in 2.73 where --conf-file would attempt to
30 read the default file, rather than no file.
31
Simon Kelley362c9302015-07-06 21:48:49 +010032 Fix inotify code to handle dangling symlinks better and
33 not SEGV in some circumstances.
34
Simon Kelley13480e82015-07-16 22:23:13 +010035 DNSSEC fix. In the case of a signed CNAME generated by a
36 wildcard which pointed to an unsigned domain, the wrong
37 status would be logged, and some necessary checks omitted.
38
Simon Kelley362c9302015-07-06 21:48:49 +010039
Simon Kelley00cd9d52014-10-02 21:44:21 +010040version 2.73
41 Fix crash at startup when an empty suffix is supplied to
42 --conf-dir, also trivial memory leak. Thanks to
43 Tomas Hozza for spotting this.
Simon Kelley800c5cc2014-12-15 17:50:15 +000044
45 Remove floor of 4096 on advertised EDNS0 packet size when
46 DNSSEC in use, the original rationale for this has long gone.
47 Thanks to Anders Kaseorg for spotting this.
48
Simon Kelleyad946d52014-12-15 17:52:22 +000049 Use inotify for checking on updates to /etc/resolv.conf and
50 friends under Linux. This fixes race conditions when the files are
Simon Kelley04918052015-01-26 11:23:43 +000051 updated rapidly and saves CPU by noy polling. To build
52 a binary that runs on old Linux kernels without inotify,
53 use make COPTS=-DNO_INOTIFY
Simon Kelley3ad3f3b2014-12-16 18:25:17 +000054
55 Fix breakage of --domain=<domain>,<subnet>,local - only reverse
56 queries were intercepted. THis appears to have been broken
57 since 2.69. Thanks to Josh Stone for finding the bug.
Simon Kelley47669362014-12-17 12:41:56 +000058
59 Eliminate IPv6 privacy addresses and deprecated addresses from
60 the answers given by --interface-name. Note that reverse queries
61 (ie looking for names, given addresses) are not affected.
62 Thanks to Michael Gorbach for the suggestion.
Simon Kelley094b5c32014-12-21 16:11:52 +000063
64 Fix crash in DNSSEC code with long RRs. Thanks to Marco Davids
65 for the bug report.
Glen Huang32fc6db2014-12-27 15:28:12 +000066
67 Add --ignore-address option. Ignore replies to A-record
68 queries which include the specified address. No error is
69 generated, dnsmasq simply continues to listen for another
70 reply. This is useful to defeat blocking strategies which
71 rely on quickly supplying a forged answer to a DNS
72 request for certain domains, before the correct answer can
73 arrive. Thanks to Glen Huang for the patch.
Simon Kelleyad946d52014-12-15 17:52:22 +000074
Simon Kelley97e618a2015-01-07 21:55:43 +000075 Revisit the part of DNSSEC validation which determines if an
76 unsigned answer is legit, or is in some part of the DNS
77 tree which should be signed. Dnsmasq now works from the
78 DNS root downward looking for the limit of signed
79 delegations, rather than working bottom up. This is
80 both more correct, and less likely to trip over broken
81 nameservers in the unsigned parts of the DNS tree
82 which don't respond well to DNSSEC queries.
Simon Kelley00cd9d52014-10-02 21:44:21 +010083
Simon Kelley25cf5e32015-01-09 15:53:03 +000084 Add --log-queries=extra option, which makes logs easier
85 to search automatically.
86
RinSatsuki28de3872015-01-10 15:22:21 +000087 Add --min-cache-ttl option. I've resisted this for a long
88 time, on the grounds that disbelieving TTLs is never a
89 good idea, but I've been persuaded that there are
90 sometimes reasons to do it. (Step forward, GFW).
91 To avoid misuse, there's a hard limit on the TTL
92 floor of one hour. Thansk to RinSatsuki for the patch.
Simon Kelley39341552015-01-18 22:11:10 +000093
94 Cope with multiple interfaces with the same link-local
95 address. (IPv6 addresses are scoped, so this is allowed.)
96 Thanks to Cory Benfield for help with this.
Simon Kelley5f4dc5c2015-01-20 20:51:02 +000097
98 Add --dhcp-hostsdir. This allows addition of new host
99 configurations to a running dnsmasq instance much more
100 cheaply than having dnsmasq re-read all its existing
101 configuration each time.
RinSatsuki28de3872015-01-10 15:22:21 +0000102
Win King Wan61b838d2015-01-21 20:41:48 +0000103 Don't reply to DHCPv6 SOLICIT messages if we're not
104 configured to do stateful DHCPv6. Thanks to Win King Wan
105 for the patch.
106
Simon Kelley6ef15b32015-01-31 22:44:26 +0000107 Fix broken DNSSEC validation of ECDSA signatures.
Simon Kelleyf6e62e22015-03-01 18:17:54 +0000108
109 Add --dnssec-timestamp option, which provides an automatic
Simon Kelley38440b22015-04-12 21:52:47 +0100110 way to detect when the system time becomes valid after
111 boot on systems without an RTC, whilst allowing DNS
112 queries before the clock is valid so that NTP can run.
113 Thanks to Kevin Darbyshire-Bryant for developing this idea.
Stefan Tomanek30d08792015-03-31 22:32:11 +0100114
115 Add --tftp-no-fail option. Thanks to Stefan Tomanek for
116 the patch.
Simon Kelley04b0ac02015-04-06 17:19:13 +0100117
Simon Kelley38440b22015-04-12 21:52:47 +0100118 Fix crash caused by looking up servers.bind, CHAOS text
119 record, when more than about five --servers= lines are
120 in the dnsmasq config. This causes memory corruption
121 which causes a crash later. Thanks to Matt Coddington for
122 sterling work chasing this down.
123
124 Fix crash on receipt of certain malformed DNS requests.
125 Thanks to Nick Sampanis for spotting the problem.
Simon Kelley0df29f52015-04-16 15:24:52 +0100126 Note that this is could allow the dnsmasq process's
127 memory to be read by an attacker under certain
128 circumstances, so it has a CVE, CVE-2015-3294
Simon Kelley38440b22015-04-12 21:52:47 +0100129
130 Fix crash in authoritative DNS code, if a .arpa zone
131 is declared as authoritative, and then a PTR query which
132 is not to be treated as authoritative arrived. Normally,
133 directly declaring .arpa zone as authoritative is not
134 done, so this crash wouldn't be seen. Instead the
135 relevant .arpa zone should be specified as a subnet
136 in the auth-zone declaration. Thanks to Johnny S. Lee
137 for the bugreport and initial patch.
Simon Kelley04b0ac02015-04-06 17:19:13 +0100138
Simon Kelley78c61842015-04-16 15:05:30 +0100139 Fix authoritative DNS code to correctly reply to NS
140 and SOA queries for .arpa zones for which we are
141 declared authoritative by means of a subnet in auth-zone.
142 Previously we provided correct answers to PTR queries
143 in such zones (including NS and SOA) but not direct
144 NS and SOA queries. Thanks to Johnny S. Lee for
Simon Kelleya5ae1f82015-04-25 21:46:10 +0100145 pointing out the problem.
146
147 Fix logging of DHCPREPLY which should be suppressed
148 by quiet-dhcp6. Thanks to J. Pablo Abonia for
149 spotting the problem.
Simon Kelley78c61842015-04-16 15:05:30 +0100150
Simon Kelleya77cec82015-05-08 16:25:38 +0100151 Try and handle net connections with broken fragmentation
152 that lose large UDP packets. If a server times out,
153 reduce the maximum UDP packet size field in the EDNS0
154 header to 1280 bytes. If it then answers, make that
155 change permanent.
156
Simon Kelleyb059c962015-05-08 20:25:51 +0100157 Check IPv4-mapped IPv6 addresses when --stop-rebind
158 is active. Thanks to Jordan Milne for spotting this.
159
Simon Kelleyca85a282015-05-13 22:33:04 +0100160 Allow DHCPv4 options T1 and T2 to be set using --dhcp-option.
161 Thanks to Kevin Benton for patches and work on this.
162
Simon Kelley89130d92015-06-03 22:30:59 +0100163 Fix code for DHCPCONFIRM DHCPv6 messages to confirm addresses
164 in the correct subnet, even of not in dynamic address
165 allocation range. Thanks to Steve Hirsch for spotting
166 the problem.
Nicolas Cavallaric6d82c92015-06-09 20:42:20 +0100167
168 Add AddDhcpLease and DeleteDhcpLease DBus methods. Thanks
169 to Nicolas Cavallari for the patch.
Neil Jerram4918bd52015-06-10 22:23:20 +0100170
171 Allow configuration of router advertisements without the
172 "on-link" bit set. Thanks to Neil Jerram for the patch.
173
174 Extend --bridge-interface to DHCPv6 and router
175 advertisements. Thanks to Neil Jerram for the patch.
Simon Kelley89130d92015-06-03 22:30:59 +0100176
Simon Kelley97e618a2015-01-07 21:55:43 +0000177
Simon Kelley8e9ffba2014-05-20 20:38:25 +0100178version 2.72
Simon Kelleyc4a09372014-06-02 20:30:07 +0100179 Add ra-advrouter mode, for RFC-3775 mobile IPv6 support.
180
181 Add support for "ipsets" in *BSD, using pf. Thanks to
182 Sven Falempim for the patch.
Simon Kelley8e9ffba2014-05-20 20:38:25 +0100183
Simon Kelleya0358e52014-06-07 13:38:48 +0100184 Fix race condition which could lock up dnsmasq when an
185 interface goes down and up rapidly. Thanks to Conrad
186 Kostecki for helping to chase this down.
Daniel Collinsc4638f92014-06-07 21:21:44 +0100187
188 Add DBus methods SetFilterWin2KOption and SetBogusPrivOption
189 Thanks to the Smoothwall project for the patch.
Simon Kelleycdb755c2014-06-18 20:52:53 +0100190
191 Fix failure to build against Nettle-3.0. Thanks to Steven
192 Barth for spotting this and finding the fix.
Simon Kelleya0358e52014-06-07 13:38:48 +0100193
Simon Kelley6d8e8ac2014-07-13 22:12:45 +0100194 When assigning existing DHCP leases to intefaces by comparing
195 networks, handle the case that two or more interfaces have the
196 same network part, but different prefix lengths (favour the
197 longer prefix length.) Thanks to Lung-Pin Chang for the
198 patch.
199
Simon Kelleyb5ea1cc2014-07-29 16:34:14 +0100200 Add a mode which detects and removes DNS forwarding loops, ie
201 a query sent to an upstream server returns as a new query to
202 dnsmasq, and would therefore be forwarded again, resulting in
203 a query which loops many times before being dropped. Upstream
204 servers which loop back are disabled and this event is logged.
205 Thanks to Smoothwall for their sponsorship of this feature.
206
Simon Kelley3e1551a2014-09-09 21:46:07 +0100207 Extend --conf-dir to allow filtering of files. So
208 --conf-dir=/etc/dnsmasq.d,\*.conf
209 will load all the files in /etc/dnsmasq.d which end in .conf
Ilya Ponetaev5bf50af2014-09-09 12:46:21 +0100210
Simon Kelley288df492014-09-18 21:48:51 +0100211 Fix bug when resulted in NXDOMAIN answers instead of NODATA in
212 some circumstances.
Simon Kelley57826492014-09-18 22:08:58 +0100213
214 Fix bug which caused dnsmasq to become unresponsive if it
215 failed to send packets due to a network interface disappearing.
216 Thanks to Niels Peen for spotting this.
Simon Kelleybf2db4b2014-09-18 22:10:46 +0100217
218 Fix problem with --local-service option on big-endian platforms
219 Thanks to Richard Genoud for the patch.
220
Simon Kelleyad4a8ff2015-04-09 21:48:00 +0100221
Simon Kelley9d1b22a2014-04-29 13:02:41 +0100222version 2.71
223 Subtle change to error handling to help DNSSEC validation
224 when servers fail to provide NODATA answers for
225 non-existent DS records.
226
227 Tweak code which removes DNSSEC records from answers when
228 not required. Fixes broken answers when additional section
229 has real records in it. Thanks to Marco Davids for the bug
230 report.
231
232 Fix DNSSEC validation of ANY queries. Thanks to Marco Davids
233 for spotting that too.
234
Simon Kelleyb692f232014-05-09 10:29:43 +0100235 Fix total DNS failure and 100% CPU use if cachesize set to zero,
236 regression introduced in 2.69. Thanks to James Hunt and
237 the Ubuntu crowd for assistance in fixing this.
238
Simon Kelley9d1b22a2014-04-29 13:02:41 +0100239
Simon Kelley63758382014-04-16 22:20:55 +0100240version 2.70
241 Fix crash, introduced in 2.69, on TCP request when dnsmasq
242 compiled with DNSSEC support, but running without DNSSEC
243 enabled. Thanks to Manish Sing for spotting that one.
244
Simon Kelley3b1b3e92014-04-23 15:46:05 +0100245 Fix regression which broke ipset functionality. Thanks to
246 Wang Jian for the bug report.
247
Simon Kelley63758382014-04-16 22:20:55 +0100248
Simon Kelley1ee9be42013-12-09 16:50:19 +0000249version 2.69
250 Implement dynamic interface discovery on *BSD. This allows
251 the contructor: syntax to be used in dhcp-range for DHCPv6
252 on the BSD platform. Thanks to Matthias Andree for
253 valuable research on how to implement this.
254
Simon Kelley8db957d2013-12-17 15:47:10 +0000255 Fix infinite loop associated with some --bogus-nxdomain
Simon Kelley74e6b522013-12-17 21:33:53 +0000256 configs. Thanks fogobogo for the bug report.
Simon Kelley8db957d2013-12-17 15:47:10 +0000257
Simon Kelleyae762422014-01-10 18:15:16 +0000258 Fix missing RA RDNS option with configuration like
259 --dhcp-option=option6:23,[::] Thanks to Tsachi Kimeldorfer
260 for spotting the problem.
261
Simon Kelleyc3a04082014-01-11 22:18:19 +0000262 Add [fd00::] and [fe80::] as special addresses in DHCPv6
263 options, analogous to [::]. [fd00::] is replaced with the
264 actual ULA of the interface on the machine running
265 dnsmasq, [fe80::] with the link-local address.
266 Thanks to Tsachi Kimeldorfer for championing this.
267
Simon Kelley613d6c52014-02-04 11:50:11 +0000268 DNSSEC validation and caching. Dnsmasq needs to be
269 compiled with this enabled, with
270
271 make dnsmasq COPTS=-DHAVE_DNSSEC
272
273 this add dependencies on the nettle crypto library and the
274 gmp maths library. It's possible to have these linked
275 statically with
276
277 make dnsmasq COPTS='-DHAVE_DNSSEC -DHAVE_DNSSEC_STATIC'
278
Simon Kelley198d9402014-04-09 20:36:53 +0100279 which bloats the dnsmasq binary, but saves the size of
280 the shared libraries which are much bigger.
281
Simon Kelley613d6c52014-02-04 11:50:11 +0000282 To enable, DNSSEC, you will need a set of
283 trust-anchors. Now that the TLDs are signed, this can be
284 the keys for the root zone, and for convenience they are
285 included in trust-anchors.conf in the dnsmasq
286 distribution. You should of course check that these are
287 legitimate and up-to-date. So, adding
288
289 conf-file=/path/to/trust-anchors.conf
290 dnssec
Simon Kelley1ee9be42013-12-09 16:50:19 +0000291
Simon Kelley613d6c52014-02-04 11:50:11 +0000292 to your config is all thats needed to get things
293 working. The upstream nameservers have to be DNSSEC-capable
294 too, of course. Many ISP nameservers aren't, but the
295 Google public nameservers (8.8.8.8 and 8.8.4.4) are.
296 When DNSSEC is configured, dnsmasq validates any queries
297 for domains which are signed. Query results which are
298 bogus are replaced with SERVFAIL replies, and results
299 which are correctly signed have the AD bit set. In
300 addition, and just as importantly, dnsmasq supplies
301 correct DNSSEC information to clients which are doing
302 their own validation, and caches DNSKEY, DS and RRSIG
303 records, which significantly improve the performance of
304 downstream validators. Setting --log-queries will show
305 DNSSEC in action.
306
Simon Kelley198d9402014-04-09 20:36:53 +0100307 If a domain is returned from an upstream nameserver without
308 DNSSEC signature, dnsmasq by default trusts this. This
309 means that for unsigned zone (still the majority) there
310 is effectively no cost for having DNSSEC enabled. Of course
311 this allows an attacker to replace a signed record with a
312 false unsigned record. This is addressed by the
313 --dnssec-check-unsigned flag, which instructs dnsmasq
314 to prove that an unsigned record is legitimate, by finding
315 a secure proof that the zone containing the record is not
316 signed. Doing this has costs (typically one or two extra
317 upstream queries). It also has a nasty failure mode if
318 dnsmasq's upstream nameservers are not DNSSEC capable.
319 Without --dnssec-check-unsigned using such an upstream
320 server will simply result in not queries being validated;
321 with --dnssec-check-unsigned enabled and a
322 DNSSEC-ignorant upstream server, _all_ queries will fail.
323
324 Note that DNSSEC requires that the local time is valid and
325 accurate, if not then DNSSEC validation will fail. NTP
326 should be running. This presents a problem for routers
327 without a battery-backed clock. To set the time needs NTP
328 to do DNS lookups, but lookups will fail until NTP has run.
329 To address this, there's a flag, --dnssec-no-timecheck
330 which disables the time checks (only) in DNSSEC. When dnsmasq
331 is started and the clock is not synced, this flag should
332 be used. As soon as the clock is synced, SIGHUP dnsmasq.
333 The SIGHUP clears the cache of partially-validated data and
334 resets the no-timecheck flag, so that all DNSSEC checks
335 henceforward will be complete.
336
Simon Kelley613d6c52014-02-04 11:50:11 +0000337 The development of DNSSEC in dnsmasq was started by
338 Giovanni Bajo, to whom huge thanks are owed. It has been
339 supported by Comcast, whose techfund grant has allowed for
340 an invaluable period of full-time work to get it to
341 a workable state.
342
Simon Kelleyde73a492014-02-17 21:43:27 +0000343 Add --rev-server. Thanks to Dave Taht for suggesting this.
Simon Kelley7b1eae42014-02-20 13:43:28 +0000344
345 Add --servers-file. Allows dynamic update of upstream servers
346 full access to configuration.
Simon Kelleyde73a492014-02-17 21:43:27 +0000347
Simon Kelleyc8a80482014-03-05 14:29:54 +0000348 Add --local-service. Accept DNS queries only from hosts
349 whose address is on a local subnet, ie a subnet for which
350 an interface exists on the server. This option
Simon Kelleyf00690f2014-03-12 20:07:12 +0000351 only has effect if there are no --interface --except-interface,
Simon Kelleyc8a80482014-03-05 14:29:54 +0000352 --listen-address or --auth-server options. It is intended
353 to be set as a default on installation, to allow
354 unconfigured installations to be useful but also safe from
355 being used for DNS amplification attacks.
356
Simon Kelley604f7592014-03-22 19:33:43 +0000357 Fix crashes in cache_get_cname_target() when dangling CNAMEs
358 encountered. Thanks to Andy and the rt-n56u project for
359 find this and helping to chase it down.
360
Simon Kelley10068602014-04-03 21:16:40 +0100361 Fix wrong RCODE in authoritative DNS replies to PTR queries. The
362 correct answer was included, but the RCODE was set to NXDOMAIN.
363 Thanks to Craig McQueen for spotting this.
364
Simon Kelley198d9402014-04-09 20:36:53 +0100365 Make statistics available as DNS queries in the .bind TLD as
366 well as logging them.
367
Simon Kelleyc8a80482014-03-05 14:29:54 +0000368
Simon Kelley376d48c2013-11-13 13:04:30 +0000369version 2.68
370 Use random addresses for DHCPv6 temporary address
371 allocations, instead of algorithmically determined stable
372 addresses.
373
374 Fix bug which meant that the DHCPv6 DUID was not available
375 in DHCP script runs during the lifetime of the dnsmasq
376 process which created the DUID de-novo. Once the DUID was
377 created and stored in the lease file and dnsmasq
378 restarted, this bug disappeared.
379
380 Fix bug introduced in 2.67 which could result in erroneous
381 NXDOMAIN returns to CNAME queries.
382
383 Fix build failures on MacOS X and openBSD.
384
385 Allow subnet specifications in --auth-zone to be interface
386 names as well as address literals. This makes it possible
387 to configure authoritative DNS when local address ranges
388 are dynamic and works much better than the previous
389 work-around which exempted contructed DHCP ranges from the
390 IP address filtering. As a consequence, that work-around
391 is removed. Under certain circumstances, this change wil
392 break existing configuration: if you're relying on the
393 contructed-range exception, you need to change --auth-zone
394 to specify the same interface as is used to construct your
395 DHCP ranges, probably with a trailing "/6" like this:
396 --auth-zone=example.com,eth0/6 to limit the addresses to
397 IPv6 addresses of eth0.
Simon Kelleydd9d9ce2013-11-15 11:24:00 +0000398
399 Fix problems when advertising deleted IPv6 prefixes. If
400 the prefix is deleted (rather than replaced), it doesn't
401 get advertised with zero preferred time. Thanks to Tsachi
402 for the bug report.
Simon Kelley25439062013-11-25 21:14:51 +0000403
404 Fix segfault with some locally configured CNAMEs. Thanks
405 to Andrew Childs for spotting the problem.
406
407 Fix memory leak on re-reading /etc/hosts and friends,
408 introduced in 2.67.
Simon Kelley2329bef2013-12-03 13:41:16 +0000409
410 Check the arrival interface of incoming DNS and TFTP
411 requests via IPv6, even in --bind-interfaces mode. This
412 isn't possible for IPv4 and can generate scary warnings,
413 but as it's always possible for IPv6 (the API always
414 exists) then we should do it always.
Vladislav Grishenko4c82efc2013-12-03 16:05:30 +0000415
416 Tweak the rules on prefix-lengths in --dhcp-range for
417 IPv6. The new rule is that the specified prefix length
418 must be larger than or equal to the prefix length of the
419 corresponding address on the local interface.
420
Simon Kelley376d48c2013-11-13 13:04:30 +0000421
Giacomo Tazzari797a7af2013-04-22 13:16:37 +0100422version 2.67
423 Fix crash if upstream server returns SERVFAIL when
424 --conntrack in use. Thanks to Giacomo Tazzari for finding
425 this and supplying the patch.
Simon Kelleyaa63a212013-04-22 15:01:52 +0100426
427 Repair regression in 2.64. That release stopped sending
428 lease-time information in the reply to DHCPINFORM
429 requests, on the correct grounds that it was a standards
430 violation. However, this broke the dnsmasq-specific
431 dhcp_lease_time utility. Now, DHCPINFORM returns
432 lease-time only if it's specifically requested
433 (maintaining standards) and the dhcp_lease_time utility
434 has been taught to ask for it (restoring functionality).
Simon Kelley86e92f92013-04-23 11:31:39 +0100435
436 Fix --dhcp-match, --dhcp-vendorclass and --dhcp-userclass
437 to work with BOOTP and well as DHCP. Thanks to Peter
438 Korsgaard for spotting the problem.
Simon Kelley2bb73af2013-04-24 17:38:19 +0100439
440 Add --synth-domain. Thanks to Vishvananda Ishaya for
441 suggesting this.
Simon Kelleyd5052fb2013-04-25 12:44:20 +0100442
443 Fix failure to compile ipset.c if old kernel headers are
444 in use. Thanks to Eugene Rudoy for pointing this out.
Simon Kelley3f2873d2013-05-14 11:28:47 +0100445
446 Handle IPv4 interface-address labels in Linux. These are
447 often used to emulate the old IP-alias addresses. Before,
448 using --interface=eth0 would service all the addresses of
449 eth0, including ones configured as aliases, which appear
450 in ifconfig as eth0:0. Now, only addresses with the label
451 eth0 are active. This is not backwards compatible: if you
452 want to continue to bind the aliases too, you need to add
453 eg. --interface=eth0:0 to the config.
Giacomo Tazzari797a7af2013-04-22 13:16:37 +0100454
Simon Kelleycfcad422013-05-17 11:32:03 +0100455 Fix "failed to set SO_BINDTODEVICE on DHCP socket: Socket
456 operation on non-socket" error on startup with
457 configurations which have exactly one --interface option
458 and do RA but _not_ DHCPv6. Thanks to Trever Adams for the
459 bug report.
Giacomo Tazzari797a7af2013-04-22 13:16:37 +0100460
Simon Kelley115ac3e2013-05-20 11:28:32 +0100461 Generalise --interface-name to cope with IPv6 addresses
462 and multiple addresses per interface per address family.
463
Simon Kelley3e8ed782013-05-29 14:31:33 +0100464 Fix option parsing for --dhcp-host, which was generating a
465 spurious error when all seven possible items were
466 included. Thanks to Zhiqiang Wang for the bug report.
Simon Kelleybaa80ae2013-05-29 16:32:07 +0100467
468 Remove restriction on prefix-length in --auth-zone. Thanks
469 to Toke Hoiland-Jorgensen for suggesting this.
470
Marcelo Salhab Brogliato0da5e892013-05-31 11:49:06 +0100471 Log when the maximum number of concurrent DNS queries is
472 reached. Thanks to Marcelo Salhab Brogliato for the patch.
473
Simon Kelleye2ba0df2013-05-31 17:04:25 +0100474 If wildcards are used in --interface, don't assume that
475 there will only ever be one available interface for DHCP
476 just because there is one at start-up. More may appear, so
477 we can't use SO_BINDTODEVICE. Thanks to Natrio for the bug
478 report.
479
Simon Kelleyb4b93082013-06-19 10:31:23 +0100480 Increase timeout/number of retries in TFTP to accomodate
481 AudioCodes Voice Gateways doing streaming writes to flash.
482 Thanks to Damian Kaczkowski for spotting the problem.
483
Simon Kelley625ac282013-07-02 21:19:32 +0100484 Fix crash with empty DHCP string options when adding zero
Simon Kelley3953dcc2013-07-03 20:40:45 +0100485 terminator. Thanks to Patrick McLean for the bug report.
Simon Kelley625ac282013-07-02 21:19:32 +0100486
Kyle Mesteryd859ca22013-07-24 13:11:58 +0100487 Allow hostnames to start with a number, as allowed in
488 RFC-1123. Thanks to Kyle Mestery for the patch.
489
Roy Marples3f3adae2013-07-25 16:22:46 +0100490 Fixes to DHCP FQDN option handling: don't terminate FQDN
491 if domain not known and allow a FQDN option with blank
492 name to request that a FQDN option is returned in the
493 reply. Thanks to Roy Marples for the patch.
494
Simon Kelleyd9fb0be2013-07-25 21:47:17 +0100495 Make --clear-on-reload apply to setting upstream servers
496 via DBus too.
497
Simon Kelleyef1a94a2013-07-26 13:59:03 +0100498 When the address which triggered the construction of an
499 advertised IPv6 prefix disappears, continue to advertise
500 the prefix for up to 2 hours, with the preferred lifetime
501 set to zero. This satisfies RFC 6204 4.3 L-13 and makes
502 things work better if a prefix disappears without being
503 deprecated first. Thanks to Uwe Schindler for persuasively
504 arguing for this.
505
Simon Kelleyfc4c4fd2013-07-26 15:38:59 +0100506 Fix MAC address enumeration on *BSD. Thanks to Brad Smith
507 for the bug report.
Simon Kelleyb4b93082013-06-19 10:31:23 +0100508
Simon Kelley871d4562013-07-27 21:32:32 +0100509 Support RFC-4242 information-refresh-time options in the
510 reply to DHCPv6 information-request. The lease time of the
511 smallest valid dhcp-range is sent. Thanks to Uwe Schindler
512 for suggesting this.
513
Simon Kelleyedf0bde2013-07-29 17:21:48 +0100514 Make --listen-address higher priority than --except-interface
515 in all circumstances. Thanks to Thomas Hood for the bugreport.
516
Simon Kelley2937f8a2013-07-29 19:49:07 +0100517 Provide independent control over which interfaces get TFTP
518 service. If enable-tftp is given a list of interfaces, then TFTP
519 is provided on those. Without the list, the previous behaviour
520 (provide TFTP to the same interfaces we provide DHCP to)
521 is retained. Thanks to Lonnie Abelbeck for the suggestion.
522
Simon Kelley6acef732013-09-09 15:21:39 +0100523 Add --dhcp-relay config option. Many thanks to vtsl.net
524 for sponsoring this development.
Simon Kelleyff7eea22013-09-04 18:01:38 +0100525
Simon Kelley0932f9c2013-09-05 11:30:30 +0100526 Fix crash with empty tag: in --dhcp-range. Thanks to
527 Kaspar Schleiser for the bug report.
528
Simon Kelleyceae52d2013-09-12 15:05:47 +0100529 Add "baseline" and "bloatcheck" makefile targets, for
530 revealing size changes during development. Thanks to
531 Vladislav Grishenko for the patch.
532
Simon Kelleyc8f2dd82013-09-13 11:22:55 +0100533 Cope with DHCPv6 clients which send REQUESTs without
534 address options - treat them as SOLICIT with rapid commit.
535
Simon Kelley89500e32013-09-20 16:29:20 +0100536 Support identification of clients by MAC address in
537 DHCPv6. When using a relay, the relay must support RFC
538 6939 for this to work. It always works for directly
539 connected clients. Thanks to Vladislav Grishenko
540 for prompting this feature.
Simon Kelley861c8912013-09-25 15:30:30 +0100541
542 Remove the rule for constructed DHCP ranges that the local
543 address must be either the first or last address in the
544 range. This was originally to avoid SLAAC addresses, but
545 we now explicitly autoconfig and privacy addresses instead.
Simon Kelley89500e32013-09-20 16:29:20 +0100546
Simon Kelley889d8a12013-10-02 13:12:09 +0100547 Update Polish translation. Thanks to Jan Psota.
548
Tanguy Bouzelocef1d7422013-10-03 11:06:31 +0100549 Fix problem in DHCPv6 vendorclass/userclass matching
550 code. Thanks to Tanguy Bouzeloc for the patch.
551
Vic043c2712013-10-04 15:09:13 +0100552 Update Spanish transalation. Thanks to Vicente Soriano.
Simon Kelley871d4562013-07-27 21:32:32 +0100553
Simon Kelleyc4cd95d2013-10-10 20:58:11 +0100554 Add --ra-param option. Thanks to Vladislav Grishenko for
555 inspiration on this.
556
Simon Kelleyed4c0762013-10-08 20:46:34 +0100557 Add --add-subnet configuration, to tell upstream DNS
Simon Kelleyf65b0e52013-10-11 10:19:01 +0100558 servers where the original client is. Thanks to DNSthingy
559 for sponsoring this feature.
Simon Kelleyed4c0762013-10-08 20:46:34 +0100560
Kevin Darbyshire-Bryant8c0b73d2013-10-11 11:56:33 +0100561 Add --quiet-dhcp, --quiet-dhcp6 and --quiet-ra. Thanks to
562 Kevin Darbyshire-Bryant for the initial patch.
563
Simon Kelleyd56a6042013-10-11 14:39:03 +0100564 Allow A/AAAA records created by --interface-name to be the
565 target of --cname. Thanks to Hadmut Danisch for the
566 suggestion.
567
Simon Kelley24b5a5d2013-10-11 15:19:28 +0100568 Avoid treating a --dhcp-host which has an IPv6 address
569 as eligable for use with DHCPv4 on the grounds that it has
570 no address, and vice-versa. Thanks to Yury Konovalov for
571 spotting the problem.
572
Simon Kelley45cca582013-10-15 10:20:13 +0100573 Do a better job caching dangling CNAMEs. Thanks to Yves
574 Dorfsman for spotting the problem.
575
Vic043c2712013-10-04 15:09:13 +0100576
Simon Kelley333b2ce2013-01-07 21:46:03 +0000577version 2.66
578 Add the ability to act as an authoritative DNS
579 server. Dnsmasq can now answer queries from the wider 'net
580 with local data, as long as the correct NS records are set
581 up. Only local data is provided, to avoid creating an open
582 DNS relay. Zone transfer is supported, to allow secondary
583 servers to be configured.
584
585 Add "constructed DHCP ranges" for DHCPv6. This is intended
586 for IPv6 routers which get prefixes dynamically via prefix
587 delegation. With suitable configuration, stateful DHCPv6
588 and RA can happen automatically as prefixes are delegated
589 and then deprecated, without having to re-write the
590 dnsmasq configuration file or restart the daemon. Thanks to
591 Steven Barth for extensive testing and development work on
592 this idea.
Simon Kelley71c73ac2013-01-08 21:22:24 +0000593
594 Fix crash on startup on Solaris 11. Regression probably
Simon Kelley22ce5502013-01-22 13:53:04 +0000595 introduced in 2.61. Thanks to Geoff Johnstone for the
596 patch.
597
598 Add code to make behaviour for TCP DNS requests that same
599 as for UDP requests, when a request arrives for an allowed
600 address, but via a banned interface. This change is only
601 active on Linux, since the relevant API is missing (AFAIK)
602 on other platforms. Many thanks to Tomas Hozza for
603 spotting the problem, and doing invaluable discovery of
604 the obscure and undocumented API required for the solution.
Simon Kelleya21e27b2013-02-17 16:41:35 +0000605
606 Don't send the default DHCP option advertising dnsmasq as
607 the local DNS server if dnsmasq is configured to not act
608 as DNS server, or it's configured to a non-standard port.
Simon Kelleydd1721c2013-02-18 21:04:04 +0000609
610 Add DNSMASQ_CIRCUIT_ID, DNSMASQ_SUBCRIBER_ID,
611 DNSMASQ_REMOTE_ID variables to the environment of the
Simon Kelley3d77c042013-03-22 10:03:50 +0000612 lease-change script (and the corresponding Lua). These hold
Simon Kelleydd1721c2013-02-18 21:04:04 +0000613 information inserted into the DHCP request by a DHCP relay
614 agent. Thanks to Lakefield Communications for providing a
615 bounty for this addition.
616
Simon Kelley4038ae22013-02-19 16:47:07 +0000617 Fixed crash, introduced in 2.64, whilst handling DHCPv6
618 information-requests with some common configurations.
619 Thanks to Robert M. Albrecht for the bug report and
620 chasing the problem.
621
Jason A. Donenfeld13d86c72013-02-22 18:20:53 +0000622 Add --ipset option. Thanks to Jason A. Donenfeld for the
623 patch.
624
Simon Kelleyc7961072013-02-28 15:17:58 +0000625 Don't erroneously reject some option names in --dhcp-match
Simon Kelley3d77c042013-03-22 10:03:50 +0000626 options. Thanks to Benedikt Hochstrasser for the bug report.
Simon Kelley49333cb2013-03-15 20:30:51 +0000627
628 Allow a trailing '*' wildcard in all interface-name
629 configurations. Thanks to Christian Parpart for the patch.
Simon Kelleyc7961072013-02-28 15:17:58 +0000630
Simon Kelley56a11422013-04-02 17:02:58 +0100631 Handle the situation where libc headers define
632 SO_REUSEPORT, but the kernel in use doesn't, to cope with
633 the introduction of this option to Linux. Thanks to Rich
634 Felker for the bug report.
635
Simon Kelleycd1e04a2013-04-02 20:11:48 +0100636 Update Polish translation. Thanks to Jan Psota.
Simon Kelley0b0a73c2013-04-11 14:07:02 +0100637
638 Fix crash if the configured DHCP lease limit is
639 reached. Regression occurred in 2.61. Thanks to Tsachi for
640 the bug report.
Simon Kelleycd1e04a2013-04-02 20:11:48 +0100641
Simon Kelley834f36f2013-04-17 13:52:49 +0100642 Update the French translation. Thanks to Gildas le Nadan.
643
Simon Kelley49333cb2013-03-15 20:30:51 +0000644
Simon Kelleyee86ce62012-12-07 11:54:46 +0000645version 2.65
646 Fix regression which broke forwarding of queries sent via
647 TCP which are not for A and AAAA and which were directed to
648 non-default servers. Thanks to Niax for the bug report.
649
Simon Kelleyb5a8dd12012-12-10 11:37:25 +0000650 Fix failure to build with DHCP support excluded. Thanks to
651 Gustavo Zacarias for the patch.
Simon Kelley1d6c6392012-12-14 11:19:36 +0000652
653 Fix nasty regression in 2.64 which completely broke cacheing.
Simon Kelleyb5a8dd12012-12-10 11:37:25 +0000654
655
Simon Kelley2e34ac12012-08-29 14:15:25 +0100656version 2.64
657 Handle DHCP FQDN options with all flag bits zero and
658 --dhcp-client-update set. Thanks to Bernd Krumbroeck for
659 spotting the problem.
660
Simon Kelley12d71ed2012-08-30 15:16:41 +0100661 Finesse the check for /etc/hosts names which conflict with
662 DHCP names. Previously a name/address pair in /etc/hosts
663 which didn't match the name/address of a DHCP lease would
664 generate a warning. Now that only happesn if there is not
665 also a match. This allows multiple addresses for a name in
666 /etc/hosts with one of them assigned via DHCP.
667
Simon Kelley4d0f5b42012-09-05 23:29:30 +0100668 Fix broken vendor-option processing for BOOTP. Thanks to
669 Hans-Joachim Baader for the bug report.
670
Simon Kelleydfb23b32012-09-18 21:44:47 +0100671 Don't report spurious netlink errors, regression in
672 2.63. Thanks to Vladislav Grishenko for the patch.
673
Simon Kelley2b127a12012-09-18 21:51:22 +0100674 Flag DHCP or DHCPv6 in starup logging. Thanks to
675 Vladislav Grishenko for the patch.
676
Simon Kelley295a54e2012-12-01 21:02:15 +0000677 Add SetServersEx method in DBus interface. Thanks to Dan
Simon Kelleyfaafb3f2012-09-20 14:17:39 +0100678 Williams for the patch.
679
Simon Kelley295a54e2012-12-01 21:02:15 +0000680 Add SetDomainServers method in DBus interface. Thanks to
681 Roy Marples for the patch.
682
Simon Kelley289a2532012-09-20 15:29:35 +0100683 Fix build with later Lua libraries. Thansk to Cristian
684 Rodriguez for the patch.
Simon Kelley2e34ac12012-08-29 14:15:25 +0100685
Simon Kelley1d860412012-09-20 20:48:04 +0100686 Add --max-cache-ttl option. Thanks to Dennis Kaarsemaker
687 for the patch.
688
Simon Kelleye4807d82012-09-27 21:52:26 +0100689 Fix breakage of --host-record parsing, resulting in
690 infinte loop at startup. Regression in 2.63. Thanks to
691 Haim Gelfenbeyn for spotting this.
692
Simon Kelley20223102012-10-15 10:41:17 +0100693 Set SO_REUSEADDRESS and SO_V6ONLY options on the DHCPv6
694 socket, this allows multiple instances of dnsmasq on a
695 single machine, in the same way as for DHCPv4. Thanks to
696 Gene Czarcinski and Vladislav Grishenko for work on this.
697
Simon Kelleybe6cfb42012-10-16 20:38:31 +0100698 Fix DHCPv6 to do access control correctly when it's
699 configured with --listen-address. Thanks to
700 Gene Czarcinski for sorting this out.
701
Simon Kelley819ff4d2012-10-21 18:25:12 +0100702 Add a "wildcard" dhcp-range which works for any IPv6
703 subnet, --dhcp-range=::,static Useful for Stateless
704 DHCPv6. Thanks to Vladislav Grishenko for the patch.
705
Simon Kelleyd1a59752012-11-05 16:50:30 +0000706 Don't include lease-time in DHCPACK replies to DHCPINFORM
707 queries, since RFC-2131 says we shouldn't. Thanks to
708 Wouter Ibens for pointing this out.
Simon Kelley8e4b8792012-11-14 14:12:56 +0000709
710 Makefile tweak to do dependency checking on header files.
711 Thanks to Johan Peeters for the patch.
Simon Kelleyd89fb4e2012-12-01 21:21:13 +0000712
713 Check interface for outgoing unsolicited router
714 advertisements, rather than relying on interface address
715 configuration. Thanks to Gene Czarinski for the patch.
Simon Kelley29d28dd2012-12-03 14:05:59 +0000716
717 Handle better attempts to transmit on interfaces which are
718 still doing DAD, and specifically do not just transmit
719 without setting source address and interface, since this
720 can cause very puzzling effects when a router
721 advertisement goes astray. Thanks again to Gene Czarinski.
722
723 Get RA timers right when there is more than one
724 dhcp-range on a subnet.
Simon Kelley289a2532012-09-20 15:29:35 +0100725
Simon Kelleyd1a59752012-11-05 16:50:30 +0000726
Simon Kelley078a6302012-06-07 13:56:23 +0100727version 2.63
728 Do duplicate dhcp-host address check in --test mode.
729
Simon Kelley8b3ae2f2012-06-13 13:43:49 +0100730 Check that tftp-root directories are accessible before
731 start-up. Thanks to Daniel Veillard for the initial patch.
732
733 Allow more than one --tfp-root flag. The per-interface
734 stuff is pointless without that.
735
Simon Kelley54dd3932012-06-20 11:23:38 +0100736 Add --bind-dynamic. A hybrid mode between the default and
737 --bind-interfaces which copes with dynamically created
738 interfaces.
Simon Kelley6b617c02012-06-29 21:15:42 +0100739
740 A couple of fixes to the build system for Android. Thanks
741 to Metin Kaya for the patches.
Simon Kelley54dd3932012-06-20 11:23:38 +0100742
Simon Kelley8bc4cec2012-07-03 21:04:11 +0100743 Remove the interface:<interface> argument in --dhcp-range, and
744 the interface argument to --enable-tftp. These were a
745 still-born attempt to allow automatic isolated
746 configuration by libvirt, but have never (to my knowledge)
747 been used, had very strange semantics, and have been
748 superceded by other mechanisms.
749
Simon Kelleyc4a7f902012-07-12 20:52:12 +0100750 Fixed bug logging filenames when duplicate dhcp-host
751 addresses are found. Thanks to John Hanks for the patch.
752
Simon Kelley611ebc52012-07-16 16:23:46 +0100753 Fix regression in 2.61 which broke caching of CNAME
754 chains. Thanks to Atul Gupta for the bug report.
755
Simon Kelleyb2714462012-07-17 12:09:26 +0100756 Allow the target of a --cname flag to be another --cname.
Simon Kelley611ebc52012-07-16 16:23:46 +0100757
Simon Kelley42243212012-07-20 15:19:18 +0100758 Teach DHCPv6 about the RFC 4242 information-refresh-time
759 option, and add parsing if the minutes, hours and days
760 format for options. Thanks to Francois-Xavier Le Bail for
761 the suggestion.
762
763 Allow "w" (for week) as multiplier in lease times, as well
764 as seconds, minutes, hours and days. Álvaro Gámez Machado
765 spotted the ommission.
Simon Kelleyc4c04882012-08-06 20:09:15 +0100766
767 Update French translation. Thanks to Gildas Le Nadan.
Simon Kelley42243212012-07-20 15:19:18 +0100768
Simon Kelleyad094272012-08-10 17:10:54 +0100769 Allow a DBus service name to be given with --enable-dbus
770 which overrides the default,
771 uk.org.thekelleys.dnsmasq. Thanks to Mathieu
772 Trudel-Lapierre for the patch.
773
Simon Kelleyfd05f122012-08-12 17:48:50 +0100774 Set the "prefix on-link" bit in Router
775 Advertisements. Thanks to Gui Iribarren for the patch.
776
Simon Kelley078a6302012-06-07 13:56:23 +0100777
Simon Kelley8358e0f2012-04-29 21:53:09 +0100778version 2.62
779 Update German translation. Thanks to Conrad Kostecki.
780
Simon Kelleyf632e562012-05-12 15:05:34 +0100781 Cope with router-solict packets wich don't have a valid
782 source address. Thanks to Vladislav Grishenko for the patch.
783
Simon Kelley919dd7c2012-05-12 15:23:09 +0100784 Fixed bug which caused missing periodic router
785 advertisements with some configurations. Thanks to
786 Vladislav Grishenko for the patch.
787
Simon Kelleyc64b7f62012-05-18 10:19:59 +0100788 Fixed bug which broke DHCPv6/RA with prefix lengths
789 which are not divisible by 8. Thanks to Andre Coetzee
790 for spotting this.
791
Simon Kelley18c63ef2012-05-21 14:34:15 +0100792 Fix non-response to router-solicitations when
793 router-advertisement configured, but DHCPv6 not
794 configured. Thanks to Marien Zwart for the patch.
795
Simon Kelley9f7f3b12012-05-28 21:39:57 +0100796 Add --dns-rr, to allow arbitrary DNS resource records.
797
Simon Kelley5ae34bf2012-06-04 21:14:03 +0100798 Fixed bug which broke RA scheduling when an interface had
799 two addresses in the same network. Thanks to Jim Bos for
800 his help nailing this.
801
Simon Kelleyeabc6dd2012-03-07 20:28:20 +0000802version 2.61
803 Re-write interface discovery code on *BSD to use
804 getifaddrs. This is more portable, more straightforward,
805 and allows us to find the prefix length for IPv6
806 addresses.
807
Simon Kelley01d1b8d2012-03-28 21:37:25 +0100808 Add ra-names, ra-stateless and slaac keywords for DHCPv6.
809 Dnsmasq can now synthesise AAAA records for dual-stack
810 hosts which get IPv6 addresses via SLAAC. It is also now
811 possible to use SLAAC and stateless DHCPv6, and to
812 tell clients to use SLAAC addresses as well as DHCP ones.
813 Thanks to Dave Taht for help with this.
Simon Kelley7023e382012-03-09 12:05:49 +0000814
Simon Kelley8b372702012-03-09 17:45:10 +0000815 Add --dhcp-duid to allow DUID-EN uids to be used.
816
Simon Kelley8643ec72012-03-12 20:04:14 +0000817 Explicity send DHCPv6 replies to the correct port, instead
818 of relying on clients to send requests with the correct
819 source address, since at least one client in the wild gets
Simon Kelley8358e0f2012-04-29 21:53:09 +0100820 this wrong. Thanks to Conrad Kostecki for help tracking
Simon Kelley8643ec72012-03-12 20:04:14 +0000821 this down.
Simon Kelleyeabc6dd2012-03-07 20:28:20 +0000822
Simon Kelley8643ec72012-03-12 20:04:14 +0000823 Send a preference value of 255 in DHCPv6 replies when
824 --dhcp-authoritative is in effect. This tells clients not
825 to wait around for other DHCP servers.
826
827 Better logging of DHCPv6 options.
828
Simon Kelleye759d422012-03-16 13:18:57 +0000829 Add --host-record. Thanks to Rob Zwissler for the
830 suggestion.
831
Simon Kelleya9530962012-03-20 22:07:35 +0000832 Invoke the DHCP script with action "tftp" when a TFTP file
833 transfer completes. The size of the file, address to which
834 it was sent and complete pathname are supplied. Note that
835 version 2.60 introduced some script incompatibilties
836 associated with DHCPv6, and this is a further change. To
837 be safe, scripts should ignore unknown actions, and if
838 not IPv6-aware, should exit if the environment
839 variable DNSMASQ_IAID is set. The use-case for this is
840 to track netboot/install. Suggestion from Shantanu
841 Gadgil.
842
843 Update contrib/port-forward/dnsmasq-portforward to reflect
844 the above.
845
846 Set the environment variable DNSMASQ_LOG_DHCP when running
847 the script id --log-dhcp is in effect, so that script can
Simon Kelley52d4abf2012-03-21 21:39:48 +0000848 taylor their logging verbosity. Suggestion from Malte
849 Forkel.
850
851 Arrange that addresses specified with --listen-address
852 work even if there is no interface carrying the
853 address. This is chiefly useful for IPv4 loopback
854 addresses, where any address in 127.0.0.0/8 is a valid
855 loopback address, but normally only 127.0.0.1 appears on
856 the lo interface. Thanks to Mathieu Trudel-Lapierre for
857 the idea and initial patch.
Simon Kelleya9530962012-03-20 22:07:35 +0000858
Simon Kelley7d2b5c92012-03-23 10:00:02 +0000859 Fix crash, introduced in 2.60, when a DHCPINFORM is
860 received from a network which has no valid dhcp-range.
861 Thanks to Stephane Glondu for the bug report.
862
Simon Kelleyc8257542012-03-28 21:15:41 +0100863 Add a new DHCP lease time keyword, "deprecated" for
864 --dhcp-range. This is only valid for IPv6, and sets the
865 preffered lease time for both DHCP and RA to zero. The
866 effect is that clients can continue to use the address
867 for existing connections, but new connections will use
868 other addresses, if they exist. This makes hitless
869 renumbering at least possible.
870
871 Fix bug in address6_available() which caused DHCPv6 lease
Simon Kelley8358e0f2012-04-29 21:53:09 +0100872 aquisition to fail if more than one dhcp-range in use.
Simon Kelley18f0fb02012-03-31 21:18:55 +0100873
874 Provide RDNSS and DNSSL data in router advertisements,
875 using the settings provided for DHCP options
876 option6:domain-search and option6:dns-server.
Simon Kelley6c559c32012-04-02 20:40:34 +0100877
878 Tweak logo/favicon.ico to add some transparency. Thanks to
879 SamLT for work on this.
Simon Kelleyc8257542012-03-28 21:15:41 +0100880
Simon Kelley1023dcb2012-04-09 18:00:08 +0100881 Don't cache data from non-recursive nameservers, since it
882 may erroneously look like a valid CNAME to a non-exitant
883 name. Thanks to Ben Winslow for finding this.
Simon Kelley9380ba72012-04-16 14:41:56 +0100884
885 Call SO_BINDTODEVICE on the DHCP socket(s) when doing DHCP
Simon Kelley8358e0f2012-04-29 21:53:09 +0100886 on exactly one interface and --bind-interfaces is set. This
Simon Kelley9380ba72012-04-16 14:41:56 +0100887 makes the OpenStack use-case of one dnsmasq per virtual
888 interface work. This is only available on Linux; it's not
889 supported on other platforms. Thanks to Vishvananda Ishaya
Simon Kelleye46164e2012-04-16 16:39:38 +0100890 and the OpenStack team for the suggestion.
891
892 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelleyd1c759c2012-04-16 17:26:19 +0100893
894 Give correct from-cache answers to explict CNAME queries.
895 Thanks to Rob Zwissler for spotting this.
Simon Kelley1023dcb2012-04-09 18:00:08 +0100896
Simon Kelleyfc92ead2012-04-22 21:28:24 +0100897 Add --tftp-lowercase option. Thanks to Oliver Rath for the
Simon Kelley61ce6002012-04-20 21:28:49 +0100898 patch.
Simon Kelleydcffad22012-04-24 15:25:18 +0100899
900 Ensure that the DBus DhcpLeaseUpdated events are generated
901 when a lease goes through INIT_REBOOT state, even if the
Simon Kelley8358e0f2012-04-29 21:53:09 +0100902 dhcp-script is not in use. Thanks to Antoaneta-Ecaterina
Simon Kelleydcffad22012-04-24 15:25:18 +0100903 Ene for the patch.
Simon Kelley19d69be2012-04-27 10:14:34 +0100904
905 Fix failure of TFTP over IPv4 on OpenBSD platform. Thanks
906 to Brad Smith for spotting this.
Simon Kelley61ce6002012-04-20 21:28:49 +0100907
Simon Kelleyc8257542012-03-28 21:15:41 +0100908
Simon Kelleyc72daea2012-01-05 21:33:27 +0000909version 2.60
910 Fix compilation problem in Mac OS X Lion. Thanks to Olaf
911 Flebbe for the patch.
Simon Kelley74c95c22011-10-19 09:33:39 +0100912
Simon Kelleyc72daea2012-01-05 21:33:27 +0000913 Fix DHCP when using --listen-address with an IP address
914 which is not the primary address of an interface.
915
916 Add --dhcp-client-update option.
917
918 Add Lua integration. Dnsmasq can now execute a DHCP
919 lease-change script written in Lua. This needs to be
920 enabled at compile time by setting HAVE_LUASCRIPT in
921 src/config.h or running "make COPTS=-DHAVE_LUASCRIPT"
922 Thanks to Jan-Piet Mens for the idea and proof-of-concept
923 implementation.
924
925 Tidied src/config.h to distinguish between
926 platform-dependent compile-time options which are selected
927 automatically, and builder-selectable compile time
928 options. Document the latter better, and describe how to
929 set them from the make command line.
930
931 Tidied up IPPROTO_IP/SOL_IP (and IPv6 equivalent)
932 confusion. IPPROTO_IP works everywhere now.
933
934 Set TOS on DHCP sockets, this improves things on busy
935 wireless networks. Thanks to Dave Taht for the patch.
936
Simon Kelley984d2fd2012-01-06 14:34:32 +0000937 Determine VERSION automatically based on git magic:
938 release tags or hash values.
Simon Kelleyc72daea2012-01-05 21:33:27 +0000939
Simon Kelleya2761752012-01-18 16:07:21 +0000940 Improve start-up speed when reading large hosts files
941 containing many distinct addresses.
942
943 Fix problem if dnsmasq is started without the stdin,
944 stdout and stderr file descriptors open. This can manifest
945 itself as 100% CPU use. Thanks to Chris Moore for finding
946 this.
947
Simon Kelley9bbc8872012-02-09 21:33:09 +0000948 Fix shell-scripting bug in bld/pkg-wrapper. Thanks to
949 Mark Mitchell for the patch.
950
Simon Kelley751d6f42012-02-10 15:24:51 +0000951 Allow the TFP server or boot server in --pxe-service, to
952 be a domain name instead of an IP address. This allows for
953 round-robin to multiple servers, in the same way as
954 --dhcp-boot. A good suggestion from Cristiano Cumer.
955
Simon Kelleyfdacfb02012-02-28 15:20:25 +0000956 Support BUILDDIR variable in the Makefile. Allows builds
957 for multiple archs from the same source tree with eg.
958 make BUILDDIR=linux (relative to dnsmasq tree)
959 make BUILDDIR=/tmp/openbsd (absolute path)
Simon Kelleye5ffdb92012-02-13 14:19:25 +0000960 If BUILDDIR is not set, compilation happens in the src
Simon Kelleyb36ae192012-02-13 12:54:34 +0000961 directory, as before. Suggestion from Mark Mitchell.
962
Simon Kelleyfdacfb02012-02-28 15:20:25 +0000963 Support DHCPv6. Support is there for the sort of things
964 the existing v4 server does, including tags, options,
965 static addresses and relay support. Missing is prefix
966 delegation, which is probably not required in the dnsmasq
967 niche, and an easy way to accept prefix delegations from
968 an upstream DHCPv6 server, which is. Future plans include
969 support for DHCPv6 router option and MAC address option
970 (to make selecting clients by MAC address work like IPv4).
971 These will be added as the standards mature.
972 This code has been tested, but this is the first release,
973 so don't bet the farm on it just yet. Many thanks to all
974 testers who have got it this far.
Simon Kelley1adadf52012-02-13 22:15:58 +0000975
Simon Kelleyac8540c2012-02-26 20:57:31 +0000976 Support IPv6 router advertisements. This is a
977 simple-minded implementation, aimed at providing the
978 vestigial RA needed to go alongside IPv6. Is picks up
979 configuration from the DHCPv6 conf, and should just need
980 enabling with --enable-ra.
981
Simon Kelley552af8b2012-02-29 20:10:31 +0000982 Fix long-standing wrinkle with --localise-queries that
983 could result in wrong answers when DNS packets arrive
984 via an interface other than the expected one. Thanks to
985 Lorenzo Milesi and John Hanks for spotting this one.
Simon Kelley71ee7ee2012-03-03 18:06:49 +0000986
987 Update French translation. Thanks to Gildas Le Nadan.
Simon Kelley552af8b2012-02-29 20:10:31 +0000988
Simon Kelleydf66e342012-03-04 20:04:22 +0000989 Update Polish translation. Thanks to Jan Psota.
990
991
Simon Kelleyc72daea2012-01-05 21:33:27 +0000992version 2.59
993 Fix regression in 2.58 which caused failure to start up
994 with some combinations of dnsmasq config and IPv6 kernel
995 network config. Thanks to Brielle Bruns for the bug
996 report.
997
998 Improve dnsmasq's behaviour when network interfaces are
999 still doing duplicate address detection (DAD). Previously,
1000 dnsmasq would wait up to 20 seconds at start-up for the
1001 DAD state to terminate. This is broken for bridge
1002 interfaces on recent Linux kernels, which don't start DAD
1003 until the bridge comes up, and so can take arbitrary
1004 time. The new behaviour lets dnsmasq poll for an arbitrary
1005 time whilst providing service on other interfaces. Thanks
1006 to Stephen Hemminger for pointing out the problem.
Simon Kelley74c95c22011-10-19 09:33:39 +01001007
1008
Simon Kelley7de060b2011-08-26 17:24:52 +01001009version 2.58
1010 Provide a definition of the SA_SIZE macro where it's
1011 missing. Fixes build failure on openBSD.
1012
1013 Don't include a zero terminator at the end of messages
1014 sent to /dev/log when /dev/log is a datagram socket.
1015 Thanks to Didier Rabound for spotting the problem.
1016
1017 Add --dhcp-sequential-ip flag, to force allocation of IP
1018 addresses in ascending order. Note that the default
1019 pseudo-random mode is in general better but some
1020 server-deployment applications need this.
1021
1022 Fix problem where a server-id of 0.0.0.0 is sent to a
1023 client when a dhcp-relay is in use if a client renews a
1024 lease after dnsmasq restart and before any clients on the
1025 subnet get a new lease. Thanks to Mike Ruiz for assistance
1026 in chasing this one down.
1027
1028 Don't return NXDOMAIN to an AAAA query if we have CNAME
1029 which points to an A record only: NODATA is the correct
1030 reply in this case. Thanks to Tom Fernandes for spotting
1031 the problem.
1032
1033 Relax the need to supply a netmask in --dhcp-range for
1034 networks which use a DHCP relay. Whilst this is still
1035 desireable, in the absence of a netmask dnsmasq will use
1036 a default based on the class (A, B, or C) of the address.
1037 This should at least remove a cause of mysterious failure
1038 for people using RFC1918 addresses and relays.
1039
1040 Add support for Linux conntrack connection marking. If
1041 enabled with --conntrack, the connection mark for incoming
1042 DNS queries will be copied to the outgoing connections
1043 used to answer those queries. This allows clever firewall
1044 and accounting stuff. Only available if dnsmasq is
1045 compiled with HAVE_CONNTRACK and adds a dependency on
1046 libnetfilter-conntrack. Thanks to Ed Wildgoose for the
1047 initial idea, testing and sponsorship of this function.
1048
1049 Provide a sane error message when someone attempts to
1050 match a tag in --dhcp-host.
1051
1052 Tweak the behaviour of --domain-needed, to avoid problems
1053 with recursive nameservers downstream of dnsmasq. The new
1054 behaviour only stops A and AAAA queries, and returns
1055 NODATA rather than NXDOMAIN replies.
1056
1057 Efficiency fix for very large DHCP configurations, thanks
1058 to James Gartrell and Mike Ruiz for help with this.
1059
1060 Allow the TFTP-server address in --dhcp-boot to be a
1061 domain-name which is looked up in /etc/hosts. This can
1062 give multiple IP addresses which are used round-robin,
1063 thus doing TFTP server load-balancing. Thanks to Sushil
1064 Agrawal for the patch.
1065
1066 When two tagged dhcp-options for a particular option
1067 number are both valid, use the one which is valid without
1068 a tag from the dhcp-range. Allows overriding of the value
1069 of a DHCP option for a particular host as well as
1070 per-network values. So
1071 --dhcp-range=set:interface1,......
1072 --dhcp-host=set:myhost,.....
1073 --dhcp-option=tag:interface1,option:nis-domain,"domain1"
1074 --dhcp-option=tag:myhost,option:nis-domain,"domain2"
1075 will set the NIS-domain to domain1 for hosts in the range, but
1076 override that to domain2 for a particular host.
1077
1078 Fix bug which resulted in truncated files and timeouts for
1079 some TFTP transfers. The bug only occurs with netascii
1080 transfers and needs an unfortunate relationship between
1081 file size, blocksize and the number of newlines in the
1082 last block before it manifests itself. Many thanks to
1083 Alkis Georgopoulos for spotting the problem and providing
1084 a comprehensive test-case.
1085
1086 Fix regression in TFTP server on *BSD platforms introduced
1087 in version 2.56, due to confusion with sockaddr
Simon Kelleyde604c12012-10-19 09:50:01 +01001088 length. Many thanks to Loic Pefferkorn for finding this.
Simon Kelley7de060b2011-08-26 17:24:52 +01001089
1090 Support scope-ids in IPv6 addresses of nameservers from
1091 /etc/resolv.conf and in --server options. Eg
1092 nameserver fe80::202:a412:4512:7bbf%eth0 or
1093 server=fe80::202:a412:4512:7bbf%eth0. Thanks to
1094 Michael Stapelberg for the suggestion.
1095
1096 Update Polish translation, thanks to Jan Psota.
1097
1098 Update French translation. Thanks to Gildas Le Nadan.
1099
1100
Simon Kelley572b41e2011-02-18 18:11:18 +00001101version 2.57
1102 Add patches to allow build under Android.
1103
1104 Provide our own header for the DNS protocol, rather than
1105 relying on arpa/nameser.h. This has proved more or less
1106 defective over the years and the final straw is that it's
1107 effectively empty on Android.
1108
1109 Fix regression in 2.56 which caused hex constants in
1110 configuration to be rejected if they contain the '*'
1111 wildcard.
1112
1113 Correct wrong casts of arguments to ctype.h functions,
1114 isdigit(), isxdigit() etc. Thanks to Matthias Andree for
1115 spotting this.
1116
1117 Allow build with IDN support independently from i18n.
1118 IDN support continues to be included automatically
1119 when i18n is included.
1120 'make COPTS=-DHAVE_IDN' is the magic incantation.
1121
1122 Modify check on extraneous command line junk (added in
1123 2.56) so that it doesn't complain about extra _empty_
1124 arguments. Otherwise this breaks libvirt.
1125
1126
Simon Kelley28866e92011-02-14 20:19:14 +00001127version 2.56
1128 Add a patch to allow dnsmasq to get interface names right in a
1129 Solaris zone. Thanks to Dj Padzensky for this.
1130
1131 Improve data-type parsing heuristics so that
1132 --dhcp-option=option:domain-search,.
1133 treats the value as a string and not an IP address.
1134 Thanks to Clemens Fischer for spotting that.
1135
1136 Add IPv6 support to the TFTP server. Many thanks to Jan
1137 'RedBully' Seiffert for the patches.
1138
1139 Log DNS queries at level LOG_INFO, rather then
1140 LOG_DEBUG. This makes things consistent with DHCP
1141 logging. Thanks to Adam Pribyl for spotting the problem.
1142
1143 Ensure that dnsmasq terminates cleanly when using
1144 --syslog-async even if it cannot make a connection to the
1145 syslogd.
1146
1147 Add --add-mac option. This is to support currently
1148 experimental DNS filtering facilities. Thanks to Benjamin
1149 Petrin for the orignal patch.
1150
1151 Fix bug which meant that tags were ignored in dhcp-range
1152 configuration specifying PXE-proxy service. Thanks to
1153 Cristiano Cumer for spotting this.
1154
1155 Raise an error if there is extra junk, not part of an
1156 option, on the command line.
1157
1158 Flag a couple of log messages in cache.c as coming from
1159 the DHCP subsystem. Thanks to Olaf Westrik for the patch.
1160
1161 Omit timestamps from logs when a) logging to stderr and
1162 b) --keep-in-forground is set. The logging facility on the
1163 other end of stderr can be assumned to supply them. Thanks
1164 to John Hallam for the patch.
1165
1166 Don't complain about strings longer than 255 characters in
1167 --txt-record, just split the long strings into 255
1168 character chunks instead.
1169
1170 Fix crash on double-free. This bug can only happen when
1171 dhcp-script is in use and then only in rare circumstances
1172 triggered by high DHCP transaction rate and a slow
1173 script. Thanks to Ferenc Wagner for finding the problem.
1174
1175 Only log that a file has been sent by TFTP after the
1176 transfer has completed succesfully.
1177
1178 A good suggestion from Ferenc Wagner: extend
1179 the --domain option to allow this sort of thing:
1180 --domain=thekelleys.org.uk,192.168.0.0/24,local
1181 which automatically creates
1182 --local=/thekelleys.org.uk/
1183 --local=/0.168.192.in-addr.arpa/
1184
1185 Tighten up syntax checking of hex contants in the config
1186 file. Thanks to Fred Damen for spotting this.
1187
1188 Add dnsmasq logo/icon, contributed by Justin Swift. Many
1189 thanks for that.
1190
1191 Never cache DNS replies which have the 'cd' bit set, or
1192 which result from queries forwarded with the 'cd' bit
1193 set. The 'cd' bit instructs a DNSSEC validating server
1194 upstream to ignore signature failures and return replies
1195 anyway. Without this change it's possible to pollute the
1196 dnsmasq cache with bad data by making a query with the
1197 'cd' bit set and subsequent queries would return this data
1198 without its being marked as suspect. Thanks to Anders
1199 Kaseorg for pointing out this problem.
1200
1201 Add --proxy-dnssec flag, for compliance with RFC
1202 4035. Dnsmasq will now clear the 'ad' bit in answers returned
1203 from upstream validating nameservers unless this option is
1204 set.
1205
1206 Allow a filename of "-" for --conf-file to read
1207 stdin. Suggestion from Timothy Redaelli.
1208
1209 Rotate the order of SRV records in replies, to provide
1210 round-robin load balancing when all the priorities are
1211 equal. Thanks to Peter McKinney for the suggestion.
1212
1213 Edit
1214 contrib/MacOSX-launchd/uk.org.thekelleys.dnsmasq.plist
1215 so that it doesn't log all queries to a file by
1216 default. Thanks again to Peter McKinney.
1217
1218 By default, setting an IPv4 address for a domain but not
1219 an IPv6 address causes dnsmasq to return
1220 an NODATA reply for IPv6 (or vice-versa). So
1221 --address=/google.com/1.2.3.4 stops IPv6 queries for
1222 *google.com from being forwarded. Make it possible to
1223 override this behaviour by defining the sematics if the
1224 same domain appears in both --server and --address.
1225 In that case, the --address has priority for the address
1226 family in which is appears, but the --server has priority
1227 of the address family which doesn't appear in --adddress
1228 So:
1229 --address=/google.com/1.2.3.4
1230 --server=/google.com/#
1231 will return 1.2.3.4 for IPv4 queries for *.google.com but
1232 forward IPv6 queries to the normal upstream nameserver.
1233 Similarly when setting an IPv6 address
1234 only this will allow forwarding of IPv4 queries. Thanks to
1235 William for pointing out the need for this.
1236
1237 Allow more than one --dhcp-optsfile and --dhcp-hostsfile
1238 and make them understand directories as arguments in the
1239 same way as --addn-hosts. Suggestion from John Hanks.
1240
1241 Ignore rebinding requests for leases we don't know
1242 about. Rebind is broadcast, so we might get to overhear a
1243 request meant for another DHCP server. NAKing this is
1244 wrong. Thanks to Brad D'Hondt for assistance with this.
1245
Simon Kelley572b41e2011-02-18 18:11:18 +00001246 Fix cosmetic bug which produced strange output when
1247 dumping cache statistics with some configurations. Thanks
1248 to Fedor Kozhevnikov for spotting this.
Simon Kelley28866e92011-02-14 20:19:14 +00001249
1250
Simon Kelleyc52e1892010-06-07 22:01:39 +01001251version 2.55
Simon Kelley28866e92011-02-14 20:19:14 +00001252 Fix crash when /etc/ethers is in use. Thanks to
1253 Gianluigi Tiesi for finding this.
Simon Kelleyc52e1892010-06-07 22:01:39 +01001254
Simon Kelley28866e92011-02-14 20:19:14 +00001255 Fix crash in netlink_multicast(). Thanks to Arno Wald for
1256 finding this one.
Simon Kelleyc52e1892010-06-07 22:01:39 +01001257
Simon Kelley28866e92011-02-14 20:19:14 +00001258 Allow the empty domain "." in dhcp domain-search (119)
1259 options.
Simon Kelleyc52e1892010-06-07 22:01:39 +01001260
1261
1262version 2.54
Simon Kelley28866e92011-02-14 20:19:14 +00001263 There is no version 2.54 to avoid confusion with 2.53,
1264 which incorrectly identifies itself as 2.54.
Simon Kelleyc52e1892010-06-07 22:01:39 +01001265
1266
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001267version 2.53
1268 Fix failure to compile on Debian/kFreeBSD. Thanks to
1269 Axel Beckert and Petr Salinger.
1270
1271 Fix code to avoid scary strict-aliasing warnings
1272 generated by gcc 4.4.
1273
1274 Added FAQ entry warning about DHCP failures with Vista
1275 when firewalls block 255.255.255.255.
1276
1277 Fixed bug which caused bad things to happen if a
1278 resolv.conf file which exists is subsequently removed.
1279 Thanks to Nikolai Saoukh for the patch.
1280
1281 Rationalised the DHCP tag system. Every configuration item
1282 which can set a tag does so by adding "set:<tag>" and
1283 every configuration item which is conditional on a tag is
1284 made so by "tag:<tag>". The NOT operator changes to '!',
1285 which is a bit more intuitive too. Dhcp-host directives
1286 can set more than one tag now. The old '#' NOT,
1287 "net:" prefix and no-prefixes are still honoured, so
1288 no existing config file needs to be changed, but
1289 the documentation and new-style config files should be
1290 much less confusing.
1291
1292 Added --tag-if to allow boolean operations on tags.
1293 This allows complicated logic to be clearer and more
1294 general. A great suggestion from Richard Voigt.
1295
1296 Add broadcast/unicast information to DHCP logging.
1297
1298 Allow --dhcp-broadcast to be unconditional.
1299
1300 Fixed incorrect behaviour with NOT <tag> conditionals in
1301 dhcp-options. Thanks to Max Turkewitz for assistance
1302 finding this.
1303
1304 If we send vendor-class encapsulated options based on the
1305 vendor-class supplied by the client, and no explicit
1306 vendor-class option is given, echo back the vendor-class
1307 from the client.
1308
1309 Fix bug which stopped dnsmasq from matching both a
1310 circuitid and a remoteid. Thanks to Ignacio Bravo for
1311 finding this.
1312
1313 Add --dhcp-proxy, which makes it possible to configure
1314 dnsmasq to use a DHCP relay agent as a full proxy, with
1315 all DHCP messages passing through the proxy. This is
1316 useful if the relay adds extra information to the packets
1317 it forwards, but cannot be configured with the RFC 5107
1318 server-override option.
1319
1320 Added interface:<iface name> part to dhcp-range. The
1321 semantics of this are very odd at first sight, but it
1322 allows a single line of the form
1323 dhcp-range=interface:virt0,192.168.0.4,192.168.0.200
1324 to be added to dnsmasq configuration which then supplies
1325 DHCP and DNS services to that interface, without affecting
1326 what services are supplied to other interfaces and
1327 irrespective of the existance or lack of
1328 interface=<interface>
1329 lines elsewhere in the dnsmasq configuration. The idea is
1330 that such a line can be added automatically by libvirt
1331 or equivalent systems, without disturbing any manual
1332 configuration.
1333
1334 Similarly to the above, allow --enable-tftp=<interface>
1335
1336 Allow a TFTP root to be set separately for requests via
1337 different interfaces, --tftp-root=<path>,<interface>
1338
1339 Correctly handle and log clashes between CNAMES and
1340 DNS names being given to DHCP leases. This fixes a bug
1341 which caused nonsense IP addresses to be logged. Thanks to
1342 Sergei Zhirikov for finding and analysing the problem.
1343
1344 Tweak flush_log so as to avoid leaving the log
1345 file in non-blocking mode. O_NONBLOCK is a property of the
1346 file, not the process/descriptor.
1347
1348 Fix contrib/Solaris10/create_package
1349 (/usr/man -> /usr/share/man) Thanks to Vita Batrla.
1350
1351 Fix a problem where, if a client got a lease, then went
1352 to another subnet and got another lease, then moved back,
1353 it couldn't resume the old lease, but would instead get
1354 a new address. Thanks to Leonardo Rodrigues for spotting
1355 this and testing the fix.
1356
1357 Fix weird bug which sometimes omitted certain characters
1358 from the start of quoted strings in dhcp-options. Thanks
1359 to Dayton Turner for spotting the problem.
1360
1361 Add facility to redirect some domains to the standard
1362 upstream servers: this allows something like
1363 --server=/google.com/1.2.3.4 --server=/www.google.com/#
1364 which will send queries for *.google.com to 1.2.3.4,
1365 except *www.google.com which will be forwarded as usual.
1366 Thanks to AJ Weber for prompting this addition.
1367
1368 Improve the hash-algorithm used to generate IP addresses
1369 from MAC addresses during initial DHCP address
1370 allocation. This improves performance when large numbers
1371 of hosts with similar MAC addresses all try and get an IP
1372 address at the same time. Thanks to Paul Smith for his
1373 work on this.
1374
1375 Tweak DHCP code so that --bridge-interface can be used to
1376 select which IP alias of an interface should be used for
1377 DHCP purposes on Linux. If eth0 has an alias eth0:dhcp
1378 then adding --bridge-interface=eth0:dhcp,eth0 will use
1379 the address of eth0:dhcp to determine the correct subnet
1380 for DHCP address allocation. Thanks to Pawel Golaszewski
1381 for prompting this and Eric Cooper for further testing.
1382
1383 Add --dhcp-generate-names. Suggestion by Ferenc Wagner.
1384
1385 Tweak DNS server selection algorithm when there is more
1386 than one server available for a domain, eg.
1387 --server=/mydomain/1.1.1.1
1388 --server=/mydomain/2.2.2.2
1389 Thanks to Alberto Cuesta-Canada for spotting a weakness
1390 here.
1391
1392 Add --max-ttl. Thanks to Fredrik Ringertz for the patch.
1393
1394 Allow --log-facility=- to force all logging to
1395 stderr. Suggestion from Clemens Fischer.
1396
1397 Fix regression which caused configuration like
1398 --address=/.domain.com/1.2.3.4 to be rejected. The dot to the
1399 left of the domain has been implied and not required for a
1400 long time, but it should be accepted for backward
1401 compatibility. Thanks to Andrew Burcin for spotting this.
1402
1403 Add --rebind-domain-ok and --rebind-localhost-ok.
1404 Suggestion from Clemens Fischer.
1405
1406 Log replies to queries of type TXT, when --log-queries
1407 is set.
1408
1409 Fix compiler warnings when compiled with -DNO_DHCP. Thanks
1410 to Shantanu Gadgil for the patch.
1411
1412 Updated French translation. Thanks to Gildas Le Nadan.
1413
1414 Updated Polish translation. Thanks to Jan Psota.
1415
1416 Updated German translation. Thanks to Matthias Andree.
1417
1418 Added contrib/static-arp, thanks to Darren Hoo.
1419
1420 Fix corruption of the domain when a name from /etc/hosts
1421 overrides one supplied by a DHCP client. Thanks to Fedor
1422 Kozhevnikov for spotting the problem.
1423
1424 Updated Spanish translation. Thanks to Chris Chatham.
1425
1426
Simon Kelley316e2732010-01-22 20:16:09 +00001427version 2.52
1428 Work around a Linux kernel bug which insists that the
1429 length of the option passed to setsockopt must be at least
1430 sizeof(int) bytes, even if we're calling SO_BINDTODEVICE
1431 and the device name is "lo". Note that this is fixed
1432 in kernel 2.6.31, but the workaround is harmless and
1433 allows earlier kernels to be used. Also fix dnsmasq
1434 bug which reported the wrong address when this failed.
1435 Thanks to Fedor for finding this.
1436
1437 The API for IPv6 PKTINFO changed around Linux kernel
1438 2.6.14. Workaround the case where dnsmasq is compiled
1439 against newer headers, but then run on an old kernel:
1440 necessary for some *WRT distros.
1441
1442 Re-read the set of network interfaces when re-loading
1443 /etc/resolv.conf if --bind-interfaces is not set. This
1444 handles the case that loopback interfaces do not exist
1445 when dnsmasq is first started.
1446
1447 Tweak the PXE code to support port 4011. This should
1448 reduce broadcasts and make things more reliable when other
1449 servers are around. It also improves inter-operability
1450 with certain clients.
1451
1452 Make a pxe-service configuration with no filename or boot
1453 service type legal: this does a local boot. eg.
1454 pxe-service=x86PC, "Local boot"
1455
1456 Be more conservative in detecting "A for A"
1457 queries. Dnsmasq checks if the name in a type=A query looks
1458 like a dotted-quad IP address and answers the query itself
1459 if so, rather than forwarding it. Previously dnsmasq
1460 relied in the library function inet_addr() to convert
1461 addresses, and that will accept some things which are
1462 confusing in this context, like 1.2.3 or even just
1463 1234. Now we only do A for A processing for four decimal
1464 numbers delimited by dots.
1465
1466 A couple of tweaks to fix compilation on Solaris. Thanks
1467 to Joel Macklow for help with this.
1468
1469 Another Solaris compilation tweak, needed for Solaris
1470 2009.06. Thanks to Lee Essen for that.
1471
1472 Added extract packaging stuff from Lee Essen to
1473 contrib/Solaris10.
1474
1475 Increased the default limit on number of leases to 1000
1476 (from 150). This is mainly a defence against DoS attacks,
1477 and for the average "one for two class C networks"
1478 installation, IP address exhaustion does that just as
1479 well. Making the limit greater than the number of IP
1480 addresses available in such an installation removes a
1481 surprise which otherwise can catch people out.
1482
1483 Removed extraneous trailing space in the value of the
1484 DNSMASQ_TIME_REMAINING DNSMASQ_LEASE_LENGTH and
1485 DNSMASQ_LEASE_EXPIRES environment variables. Thanks to
1486 Gildas Le Nadan for spotting this.
1487
1488 Provide the network-id tags for a DHCP transaction to
1489 the lease-change script in the environment variable
1490 DNSMASQ_TAGS. A good suggestion from Gildas Le Nadan.
1491
1492 Add support for RFC3925 "Vendor-Identifying Vendor
1493 Options". The syntax looks like this:
1494 --dhcp-option=vi-encap:<enterprise number>, .........
1495
1496 Add support to --dhcp-match to allow matching against
1497 RFC3925 "Vendor-Identifying Vendor Classes". The syntax
1498 looks like this:
1499 --dhcp-match=tag,vi-encap<enterprise number>, <value>
1500
1501 Add some application specific code to assist in
1502 implementing the Broadband forum TR069 CPE-WAN
1503 specification. The details are in contrib/CPE-WAN/README
1504
1505 Increase the default DNS packet size limit to 4096, as
1506 recommended by RFC5625 section 4.4.3. This can be
1507 reconfigured using --edns-packet-max if needed. Thanks to
1508 Francis Dupont for pointing this out.
1509
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001510 Rewrite query-ids even for TSIG signed packets, since
Simon Kelley316e2732010-01-22 20:16:09 +00001511 this is allowed by RFC5625 section 4.5.
1512
1513 Use getopt_long by default on OS X. It has been supported
1514 since version 10.3.0. Thanks to Arek Dreyer for spotting
1515 this.
1516
1517 Added up-to-date startup configuration for MacOSX/launchd
1518 in contrib/MacOSX-launchd. Thanks to Arek Dreyer for
1519 providing this.
1520
1521 Fix link error when including Dbus but excluding DHCP.
1522 Thanks to Oschtan for the bug report.
1523
1524 Updated French translation. Thanks to Gildas Le Nadan.
1525
1526 Updated Polish translation. Thanks to Jan Psota.
1527
1528 Updated Spanish translation. Thanks to Chris Chatham.
1529
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001530 Fixed confusion about domains, when looking up DHCP hosts
1531 in /etc/hosts. This could cause spurious "Ignoring
1532 domain..." messages. Thanks to Fedor Kozhevnikov for
1533 finding and analysing the problem.
Simon Kelley316e2732010-01-22 20:16:09 +00001534
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001535
Simon Kelley1f15b812009-10-13 17:49:32 +01001536version 2.51
1537 Add support for internationalised DNS. Non-ASCII characters
1538 in domain names found in /etc/hosts, /etc/ethers and
1539 /etc/dnsmasq.conf will be correctly handled by translation to
1540 punycode, as specified in RFC3490. This function is only
1541 available if dnsmasq is compiled with internationalisation
1542 support, and adds a dependency on GNU libidn. Without i18n
1543 support, dnsmasq continues to be compilable with just
1544 standard tools. Thanks to Yves Dorfsman for the
1545 suggestion.
1546
1547 Add two more environment variables for lease-change scripts:
1548 First, DNSMASQ_SUPPLIED_HOSTNAME; this is set to the hostname
1549 supplied by a client, even if the actual hostname used is
1550 over-ridden by dhcp-host or dhcp-ignore-names directives.
1551 Also DNSMASQ_RELAY_ADDRESS which gives the address of
1552 a DHCP relay, if used.
1553 Suggestions from Michael Rack.
1554
1555 Fix regression which broke echo of relay-agent
1556 options. Thanks to Michael Rack for spotting this.
1557
1558 Don't treat option 67 as being interchangeable with
1559 dhcp-boot parameters if it's specified as
1560 dhcp-option-force.
1561
1562 Make the code to call scripts on lease-change compile-time
1563 optional. It can be switched off by editing src/config.h
1564 or building with "make COPTS=-DNO_SCRIPT".
1565
1566 Make the TFTP server cope with filenames from Windows/DOS
1567 which use '\' as pathname separator. Thanks to Ralf for
1568 the patch.
1569
1570 Updated Polish translation. Thanks to Jan Psota.
1571
1572 Warn if an IP address is duplicated in /etc/ethers. Thanks
1573 to Felix Schwarz for pointing this out.
1574
1575 Teach --conf-dir to take an option list of file suffices
1576 which will be ignored when scanning the directory. Useful
1577 for backup files etc. Thanks to Helmut Hullen for the
1578 suggestion.
1579
1580 Add new DHCP option named tftpserver-address, which
1581 corresponds to the third argument of dhcp-boot. This
1582 allows the complete functionality of dhcp-boot to be
1583 replicated with dhcp-option. Useful when using
1584 dhcp-optsfile.
1585
1586 Test which upstream nameserver to use every 10 seconds
1587 or 50 queries and not just when a query times out and
1588 is retried. This should improve performance when there
1589 is a slow nameserver in the list. Thanks to Joe for the
1590 suggestion.
1591
1592 Don't do any PXE processing, even for clients with the
1593 correct vendorclass, unless at least one pxe-prompt or
1594 pxe-service option is given. This stops dnsmasq
1595 interfering with proxy PXE subsystems when it is just
1596 the DHCP server. Thanks to Spencer Clark for spotting this.
1597
1598 Limit the blocksize used for TFTP transfers to a value
1599 which avoids packet fragmentation, based on the MTU of the
1600 local interface. Many netboot ROMs can't cope with
1601 fragmented packets.
1602
1603 Honour dhcp-ignore configuration for PXE and proxy-PXE
1604 requests. Thanks to Niels Basjes for the bug report.
1605
1606 Updated French translation. Thanks to Gildas Le Nadan.
1607
1608
Simon Kelley77e94da2009-08-31 17:32:17 +01001609version 2.50
Simon Kelley1f15b812009-10-13 17:49:32 +01001610 Fix security problem which allowed any host permitted to
Simon Kelley77e94da2009-08-31 17:32:17 +01001611 do TFTP to possibly compromise dnsmasq by remote buffer
1612 overflow when TFTP enabled. Thanks to Core Security
1613 Technologies and Iván Arce, Pablo Hernán Jorge, Alejandro
1614 Pablo Rodriguez, Martín Coco, Alberto Soliño Testa and
1615 Pablo Annetta. This problem has Bugtraq id: 36121
1616 and CVE: 2009-2957
1617
1618 Fix a problem which allowed a malicious TFTP client to
1619 crash dnsmasq. Thanks to Steve Grubb at Red Hat for
1620 spotting this. This problem has Bugtraq id: 36120 and
1621 CVE: 2009-2958
1622
1623
Simon Kelley03a97b62009-06-10 20:55:49 +01001624version 2.49
1625 Fix regression in 2.48 which disables the lease-change
1626 script. Thanks to Jose Luis Duran for spotting this.
1627
1628 Log TFTP "file not found" errors. These were not logged,
1629 since a normal PXELinux boot generates many of them, but
1630 the lack of the messages seems to be more confusing than
1631 routinely seeing them when there is no real error.
1632
1633 Update Spanish translation. Thanks to Chris Chatham.
1634
1635
Simon Kelley7622fc02009-06-04 20:32:05 +01001636version 2.48
1637 Archived the extensive, backwards, changelog to
1638 CHANGELOG.archive. The current changelog now runs from
1639 version 2.43 and runs conventionally.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00001640
Simon Kelley7622fc02009-06-04 20:32:05 +01001641 Fixed bug which broke binding of servers to physical
1642 interfaces when interface names were longer than four
1643 characters. Thanks to MURASE Katsunori for the patch.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00001644
Simon Kelley7622fc02009-06-04 20:32:05 +01001645 Fixed netlink code to check that messages come from the
1646 correct source, and not another userspace process. Thanks
1647 to Steve Grubb for the patch.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00001648
Simon Kelley7622fc02009-06-04 20:32:05 +01001649 Maintainability drive: removed bug and missing feature
1650 workarounds for some old platforms. Solaris 9, OpenBSD
1651 older than 4.1, Glibc older than 2.2, Linux 2.2.x and
1652 DBus older than 1.1.x are no longer supported.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00001653
Simon Kelley7622fc02009-06-04 20:32:05 +01001654 Don't read included configuration files more than once:
1655 allows complex configuration structures without problems.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00001656
Simon Kelley7622fc02009-06-04 20:32:05 +01001657 Mark log messages from the various subsystems in dnsmasq:
1658 messages from the DHCP subsystem now have the ident string
1659 "dnsmasq-dhcp" and messages from TFTP have ident
1660 "dnsmasq-tftp". Thanks to Olaf Westrik for the patch.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00001661
Simon Kelley7622fc02009-06-04 20:32:05 +01001662 Fix possible infinite DHCP protocol loop when an IP
1663 address nailed to a hostname (not a MAC address) and a
1664 host sometimes provides the name, sometimes not.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00001665
Simon Kelley7622fc02009-06-04 20:32:05 +01001666 Allow --addn-hosts to take a directory: all the files
1667 in the directory are read. Thanks to Phil Cornelius for
1668 the suggestion.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00001669
Simon Kelley7622fc02009-06-04 20:32:05 +01001670 Support --bridge-interface on all platforms, not just BSD.
Simon Kelley1ab84e22004-01-29 16:48:35 +00001671
Simon Kelley7622fc02009-06-04 20:32:05 +01001672 Added support for advanced PXE functions. It's now
1673 possible to define a prompt and menu options which will
1674 be displayed when a client PXE boots. It's also possible to
1675 hand-off booting to other boot servers. Proxy-DHCP, where
1676 dnsmasq just supplies the PXE information and another DHCP
1677 server does address allocation, is also allowed. See the
1678 --pxe-prompt and --pxe-service keywords. Thanks to
1679 Alkis Georgopoulos for the suggestion and Guilherme Moro
1680 and Michael Brown for assistance.
Simon Kelley1ab84e22004-01-29 16:48:35 +00001681
Simon Kelley7622fc02009-06-04 20:32:05 +01001682 Improvements to DHCP logging. Thanks to Tom Metro for
1683 useful suggestions.
1684
1685 Add ability to build dnsmasq without DHCP support. To do
1686 this, edit src/config.h or build with
1687 "make COPTS=-DNO_DHCP". Thanks to Mahavir Jain for the patch.
1688
1689 Added --test command-line switch - syntax check
1690 configuration files only.
Simon Kelley33820b72004-04-03 21:10:00 +01001691
Simon Kelley7622fc02009-06-04 20:32:05 +01001692 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley9009d742008-11-14 20:04:27 +00001693
Simon Kelley73a08a22009-02-05 20:28:08 +00001694
1695version 2.47
1696 Updated French translation. Thanks to Gildas Le Nadan.
1697
1698 Fixed interface enumeration code to work on NetBSD
1699 5.0. Thanks to Roy Marples for the patch.
1700
1701 Updated config.h to use the same location for the lease
1702 file on NetBSD as the other *BSD variants. Also allow
1703 LEASEFILE and CONFFILE symbols to be overriden in CFLAGS.
1704
1705 Handle duplicate address detection on IPv6 more
1706 intelligently. In IPv6, an interface can have an address
1707 which is not usable, because it is still undergoing DAD
1708 (such addresses are marked "tentative"). Attempting to
1709 bind to an address in this state returns an error,
1710 EADDRNOTAVAIL. Previously, on getting such an error,
1711 dnsmasq would silently abandon the address, and never
1712 listen on it. Now, it retries once per second for 20
1713 seconds before generating a fatal error. 20 seconds should
1714 be long enough for any DAD process to complete, but can be
1715 adjusted in src/config.h if necessary. Thanks to Martin
1716 Krafft for the bug report.
1717
1718 Add DBus introspection. Patch from Jeremy Laine.
1719
1720 Update Dbus configuration file. Patch from Colin Walters.
1721 Fix for this bug:
1722 http://bugs.freedesktop.org/show_bug.cgi?id=18961
1723
1724 Support arbitrarily encapsulated DHCP options, suggestion
1725 and initial patch from Samium Gromoff. This is useful for
1726 (eg) gPXE, which expect all its private options to be
1727 encapsulated inside a single option 175. So, eg,
1728
1729 dhcp-option = encap:175, 190, "iscsi-client0"
1730 dhcp-option = encap:175, 191, "iscsi-client0-secret"
1731
1732 will provide iSCSI parameters to gPXE.
1733
1734 Enhance --dhcp-match to allow testing of the contents of a
1735 client-sent option, as well as its presence. This
1736 application in mind for this is RFC 4578
1737 client-architecture specifiers, but it's generally useful.
1738 Joey Korkames suggested the enhancement.
1739
1740 Move from using the IP_XMIT_IF ioctl to IP_BOUND_IF on
1741 OpenSolaris. Thanks to Bastian Machek for the heads-up.
1742
1743 No longer complain about blank lines in
1744 /etc/ethers. Thanks to Jon Nelson for the patch.
1745
1746 Fix binding of servers to physical devices, eg
1747 --server=/domain/1.2.3.4@eth0 which was broken from 2.43
1748 onwards unless --query-port=0 set. Thanks to Peter Naulls
1749 for the bug report.
1750
1751 Reply to DHCPINFORM requests even when the supplied ciaddr
1752 doesn't fall in any dhcp-range. In this case it's not
1753 possible to supply a complete configuration, but
1754 individually-configured options (eg PAC) may be useful.
1755
1756 Allow the source address of an alias to be a range:
1757 --alias=192.168.0.0,10.0.0.0,255.255.255.0 maps the whole
1758 subnet 192.168.0.0->192.168.0.255 to 10.0.0.0->10.0.0.255,
1759 as before.
1760 --alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0
1761 maps only the 192.168.0.10->192.168.0.40 region. Thanks to
1762 Ib Uhrskov for the suggestion.
1763
1764 Don't dynamically allocate DHCP addresses which may break
1765 Windows. Addresses which end in .255 or .0 are broken in
1766 Windows even when using supernetting.
1767 --dhcp-range=192.168.0.1,192.168.1.254,255,255,254.0 means
1768 192.168.0.255 is a valid IP address, but not for Windows.
1769 See Microsoft KB281579. We therefore no longer allocate
1770 these addresses to avoid hard-to-diagnose problems.
1771
1772 Update Polish translation. Thanks to Jan Psota.
1773
1774 Delete the PID-file when dnsmasq shuts down. Note that by
1775 this time, dnsmasq is normally not running as root, so
1776 this will fail if the PID-file is stored in a root-owned
1777 directory; such failure is silently ignored. To take
1778 advantage of this feature, the PID-file must be stored in a
1779 directory owned and write-able by the user running
1780 dnsmasq.
Simon Kelley7622fc02009-06-04 20:32:05 +01001781
1782
1783version 2.46
1784 Allow --bootp-dynamic to take a netid tag, so that it may
1785 be selectively enabled. Thanks to Olaf Westrik for the
1786 suggestion.
1787
1788 Remove ISC-leasefile reading code. This has been
1789 deprecated for a long time, and last time I removed it, it
1790 ended up going back by request of one user. This time,
1791 it's gone for good; otherwise it would need to be
1792 re-worked to support multiple domains (see below).
1793
1794 Support DHCP clients in multiple DNS domains. This is a
1795 long-standing request. Clients are assigned to a domain
1796 based in their IP address.
1797
1798 Add --dhcp-fqdn flag, which changes behaviour if DNS names
1799 assigned to DHCP clients. When this is set, there must be
1800 a domain associated with each client, and only
1801 fully-qualified domain names are added to the DNS. The
1802 advantage is that the only the FQDN needs to be unique,
1803 so that two or more DHCP clients can share a hostname, as
1804 long as they are in different domains.
1805
1806 Set environment variable DNSMASQ_DOMAIN when invoking
1807 lease-change script. This may be useful information to
1808 have now that it's variable.
1809
1810 Tighten up data-checking code for DNS packet
1811 handling. Thanks to Steve Dodd who found certain illegal
1812 packets which could crash dnsmasq. No memory overwrite was
1813 possible, so this is not a security issue beyond the DoS
1814 potential.
1815
1816 Update example config dhcp option 47, the previous
1817 suggestion generated an illegal, zero-length,
1818 option. Thanks to Matthias Andree for finding this.
1819
1820 Rewrite hosts-file reading code to remove the limit of
1821 1024 characters per line. John C Meuser found this.
1822
1823 Create a net-id tag with the name of the interface on
1824 which the DHCP request was received.
1825
1826 Fixed minor memory leak in DBus code, thanks to Jeremy
1827 Laine for the patch.
1828
1829 Emit DBus signals as the DHCP lease database
1830 changes. Thanks to Jeremy Laine for the patch.
1831
1832 Allow for more that one MAC address in a dhcp-host
1833 line. This configuration tells dnsmasq that it's OK to
1834 abandon a DHCP lease of the fixed address to one MAC
1835 address, if another MAC address in the dhcp-host statement
1836 asks for an address. This is useful to give a fixed
1837 address to a host which has two network interfaces
1838 (say, a laptop with wired and wireless interfaces.)
1839 It's very important to ensure that only one interface
1840 at a time is up, since dnsmasq abandons the first lease
1841 and re-uses the address before the leased time has
1842 elapsed. John Gray suggested this.
1843
1844 Tweak the response to a DHCP request packet with a wrong
1845 server-id when --dhcp-authoritative is set; dnsmasq now
1846 returns a DHCPNAK, rather than silently ignoring the
1847 packet. Thanks to Chris Marget for spotting this
1848 improvement.
1849
1850 Add --cname option. This provides a limited alias
1851 function, usable for DHCP names. Thanks to AJ Weber for
1852 suggestions on this.
1853
1854 Updated contrib/webmin with latest version from Neil
1855 Fisher.
1856
1857 Updated Polish translation. Thanks to Jan Psota.
1858
1859 Correct the text names for DHCP options 64 and 65 to be
1860 "nis+-domain" and "nis+-servers".
1861
1862 Updated Spanish translation. Thanks to Chris Chatham.
1863
1864 Force re-reading of /etc/resolv.conf when an "interface
1865 up" event occurs.
1866
1867
1868version 2.45
1869 Fix total DNS failure in release 2.44 unless --min-port
1870 specified. Thanks to Steven Barth and Grant Coady for
1871 bugreport. Also reject out-of-range port spec, which could
1872 break things too: suggestion from Gilles Espinasse.
1873
1874
1875version 2.44
1876 Fix crash when unknown client attempts to renew a DHCP
1877 lease, problem introduced in version 2.43. Thanks to
1878 Carlos Carvalho for help chasing this down.
1879
1880 Fix potential crash when a host which doesn't have a lease
1881 does DHCPINFORM. Again introduced in 2.43. This bug has
1882 never been reported in the wild.
1883
1884 Fix crash in netlink code introduced in 2.43. Thanks to
1885 Jean Wolter for finding this.
1886
1887 Change implementation of min_port to work even if min-port
1888 is large.
1889
1890 Patch to enable compilation of latest Mac OS X. Thanks to
1891 David Gilman.
1892
1893 Update Spanish translation. Thanks to Christopher Chatham.
1894
1895
1896version 2.43
1897 Updated Polish translation. Thanks to Jan Psota.
1898
1899 Flag errors when configuration options are repeated
1900 illegally.
1901
1902 Further tweaks for GNU/kFreeBSD
1903
1904 Add --no-wrap to msgmerge call - provides nicer .po file
1905 format.
1906
1907 Honour lease-time spec in dhcp-host lines even for
1908 BOOTP. The user is assumed to known what they are doing in
1909 this case. (Hosts without the time spec still get infinite
1910 leases for BOOTP, over-riding the default in the
1911 dhcp-range.) Thanks to Peter Katzmann for uncovering this.
1912
1913 Fix problem matching relay-agent ids. Thanks to Michael
1914 Rack for the bug report.
1915
1916 Add --naptr-record option. Suggestion from Johan
1917 Bergquist.
1918
1919 Implement RFC 5107 server-id-override DHCP relay agent
1920 option.
1921
1922 Apply patches from Stefan Kruger for compilation on
1923 Solaris 10 under Sun studio.
1924
1925 Yet more tweaking of Linux capability code, to suppress
1926 pointless wingeing from kernel 2.6.25 and above.
1927
1928 Improve error checking during startup. Previously, some
1929 errors which occurred during startup would be worked
1930 around, with dnsmasq still starting up. Some were logged,
1931 some silent. Now, they all cause a fatal error and dnsmasq
1932 terminates with a non-zero exit code. The errors are those
1933 associated with changing uid and gid, setting process
1934 capabilities and writing the pidfile. Thanks to Uwe
1935 Gansert and the Suse security team for pointing out
1936 this improvement, and Bill Reimers for good implementation
1937 suggestions.
1938
1939 Provide NO_LARGEFILE compile option to switch off largefile
1940 support when compiling against versions of uclibc which
1941 don't support it. Thanks to Stephane Billiart for the patch.
1942
1943 Implement random source ports for interactions with
1944 upstream nameservers. New spoofing attacks have been found
1945 against nameservers which do not do this, though it is not
1946 clear if dnsmasq is vulnerable, since to doesn't implement
1947 recursion. By default dnsmasq will now use a different
1948 source port (and socket) for each query it sends
1949 upstream. This behaviour can suppressed using the
1950 --query-port option, and the old default behaviour
1951 restored using --query-port=0. Explicit source-port
1952 specifications in --server configs are still honoured.
1953
1954 Replace the random number generator, for better
1955 security. On most BSD systems, dnsmasq uses the
1956 arc4random() RNG, which is secure, but on other platforms,
1957 it relied on the C-library RNG, which may be
1958 guessable and therefore allow spoofing. This release
1959 replaces the libc RNG with the SURF RNG, from Daniel
1960 J. Berstein's DJBDNS package.
1961
1962 Don't attempt to change user or group or set capabilities
1963 if dnsmasq is run as a non-root user. Without this, the
1964 change from soft to hard errors when these fail causes
1965 problems for non-root daemons listening on high
1966 ports. Thanks to Patrick McLean for spotting this.
1967
1968 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley1f15b812009-10-13 17:49:32 +01001969
1970
1971version 2.42
1972 The changelog for version 2.42 and earlier is
1973 available in CHANGELOG.archive.