blob: 68252924e74307fc06aaf0d2dc3f6195b98fb5ea [file] [log] [blame]
Simon Kelley00cd9d52014-10-02 21:44:21 +01001version 2.73
2 Fix crash at startup when an empty suffix is supplied to
3 --conf-dir, also trivial memory leak. Thanks to
4 Tomas Hozza for spotting this.
Simon Kelley800c5cc2014-12-15 17:50:15 +00005
6 Remove floor of 4096 on advertised EDNS0 packet size when
7 DNSSEC in use, the original rationale for this has long gone.
8 Thanks to Anders Kaseorg for spotting this.
9
Simon Kelley00cd9d52014-10-02 21:44:21 +010010
Simon Kelley8e9ffba2014-05-20 20:38:25 +010011version 2.72
Simon Kelleyc4a09372014-06-02 20:30:07 +010012 Add ra-advrouter mode, for RFC-3775 mobile IPv6 support.
13
14 Add support for "ipsets" in *BSD, using pf. Thanks to
15 Sven Falempim for the patch.
Simon Kelley8e9ffba2014-05-20 20:38:25 +010016
Simon Kelleya0358e52014-06-07 13:38:48 +010017 Fix race condition which could lock up dnsmasq when an
18 interface goes down and up rapidly. Thanks to Conrad
19 Kostecki for helping to chase this down.
Daniel Collinsc4638f92014-06-07 21:21:44 +010020
21 Add DBus methods SetFilterWin2KOption and SetBogusPrivOption
22 Thanks to the Smoothwall project for the patch.
Simon Kelleycdb755c2014-06-18 20:52:53 +010023
24 Fix failure to build against Nettle-3.0. Thanks to Steven
25 Barth for spotting this and finding the fix.
Simon Kelleya0358e52014-06-07 13:38:48 +010026
Simon Kelley6d8e8ac2014-07-13 22:12:45 +010027 When assigning existing DHCP leases to intefaces by comparing
28 networks, handle the case that two or more interfaces have the
29 same network part, but different prefix lengths (favour the
30 longer prefix length.) Thanks to Lung-Pin Chang for the
31 patch.
32
Simon Kelleyb5ea1cc2014-07-29 16:34:14 +010033 Add a mode which detects and removes DNS forwarding loops, ie
34 a query sent to an upstream server returns as a new query to
35 dnsmasq, and would therefore be forwarded again, resulting in
36 a query which loops many times before being dropped. Upstream
37 servers which loop back are disabled and this event is logged.
38 Thanks to Smoothwall for their sponsorship of this feature.
39
Simon Kelley3e1551a2014-09-09 21:46:07 +010040 Extend --conf-dir to allow filtering of files. So
41 --conf-dir=/etc/dnsmasq.d,\*.conf
42 will load all the files in /etc/dnsmasq.d which end in .conf
Ilya Ponetaev5bf50af2014-09-09 12:46:21 +010043
Simon Kelley288df492014-09-18 21:48:51 +010044 Fix bug when resulted in NXDOMAIN answers instead of NODATA in
45 some circumstances.
Simon Kelley57826492014-09-18 22:08:58 +010046
47 Fix bug which caused dnsmasq to become unresponsive if it
48 failed to send packets due to a network interface disappearing.
49 Thanks to Niels Peen for spotting this.
Simon Kelleybf2db4b2014-09-18 22:10:46 +010050
51 Fix problem with --local-service option on big-endian platforms
52 Thanks to Richard Genoud for the patch.
53
Simon Kelley8e9ffba2014-05-20 20:38:25 +010054
Simon Kelley9d1b22a2014-04-29 13:02:41 +010055version 2.71
56 Subtle change to error handling to help DNSSEC validation
57 when servers fail to provide NODATA answers for
58 non-existent DS records.
59
60 Tweak code which removes DNSSEC records from answers when
61 not required. Fixes broken answers when additional section
62 has real records in it. Thanks to Marco Davids for the bug
63 report.
64
65 Fix DNSSEC validation of ANY queries. Thanks to Marco Davids
66 for spotting that too.
67
Simon Kelleyb692f232014-05-09 10:29:43 +010068 Fix total DNS failure and 100% CPU use if cachesize set to zero,
69 regression introduced in 2.69. Thanks to James Hunt and
70 the Ubuntu crowd for assistance in fixing this.
71
Simon Kelley9d1b22a2014-04-29 13:02:41 +010072
Simon Kelley63758382014-04-16 22:20:55 +010073version 2.70
74 Fix crash, introduced in 2.69, on TCP request when dnsmasq
75 compiled with DNSSEC support, but running without DNSSEC
76 enabled. Thanks to Manish Sing for spotting that one.
77
Simon Kelley3b1b3e92014-04-23 15:46:05 +010078 Fix regression which broke ipset functionality. Thanks to
79 Wang Jian for the bug report.
80
Simon Kelley63758382014-04-16 22:20:55 +010081
Simon Kelley1ee9be42013-12-09 16:50:19 +000082version 2.69
83 Implement dynamic interface discovery on *BSD. This allows
84 the contructor: syntax to be used in dhcp-range for DHCPv6
85 on the BSD platform. Thanks to Matthias Andree for
86 valuable research on how to implement this.
87
Simon Kelley8db957d2013-12-17 15:47:10 +000088 Fix infinite loop associated with some --bogus-nxdomain
Simon Kelley74e6b522013-12-17 21:33:53 +000089 configs. Thanks fogobogo for the bug report.
Simon Kelley8db957d2013-12-17 15:47:10 +000090
Simon Kelleyae762422014-01-10 18:15:16 +000091 Fix missing RA RDNS option with configuration like
92 --dhcp-option=option6:23,[::] Thanks to Tsachi Kimeldorfer
93 for spotting the problem.
94
Simon Kelleyc3a04082014-01-11 22:18:19 +000095 Add [fd00::] and [fe80::] as special addresses in DHCPv6
96 options, analogous to [::]. [fd00::] is replaced with the
97 actual ULA of the interface on the machine running
98 dnsmasq, [fe80::] with the link-local address.
99 Thanks to Tsachi Kimeldorfer for championing this.
100
Simon Kelley613d6c52014-02-04 11:50:11 +0000101 DNSSEC validation and caching. Dnsmasq needs to be
102 compiled with this enabled, with
103
104 make dnsmasq COPTS=-DHAVE_DNSSEC
105
106 this add dependencies on the nettle crypto library and the
107 gmp maths library. It's possible to have these linked
108 statically with
109
110 make dnsmasq COPTS='-DHAVE_DNSSEC -DHAVE_DNSSEC_STATIC'
111
Simon Kelley198d9402014-04-09 20:36:53 +0100112 which bloats the dnsmasq binary, but saves the size of
113 the shared libraries which are much bigger.
114
Simon Kelley613d6c52014-02-04 11:50:11 +0000115 To enable, DNSSEC, you will need a set of
116 trust-anchors. Now that the TLDs are signed, this can be
117 the keys for the root zone, and for convenience they are
118 included in trust-anchors.conf in the dnsmasq
119 distribution. You should of course check that these are
120 legitimate and up-to-date. So, adding
121
122 conf-file=/path/to/trust-anchors.conf
123 dnssec
Simon Kelley1ee9be42013-12-09 16:50:19 +0000124
Simon Kelley613d6c52014-02-04 11:50:11 +0000125 to your config is all thats needed to get things
126 working. The upstream nameservers have to be DNSSEC-capable
127 too, of course. Many ISP nameservers aren't, but the
128 Google public nameservers (8.8.8.8 and 8.8.4.4) are.
129 When DNSSEC is configured, dnsmasq validates any queries
130 for domains which are signed. Query results which are
131 bogus are replaced with SERVFAIL replies, and results
132 which are correctly signed have the AD bit set. In
133 addition, and just as importantly, dnsmasq supplies
134 correct DNSSEC information to clients which are doing
135 their own validation, and caches DNSKEY, DS and RRSIG
136 records, which significantly improve the performance of
137 downstream validators. Setting --log-queries will show
138 DNSSEC in action.
139
Simon Kelley198d9402014-04-09 20:36:53 +0100140 If a domain is returned from an upstream nameserver without
141 DNSSEC signature, dnsmasq by default trusts this. This
142 means that for unsigned zone (still the majority) there
143 is effectively no cost for having DNSSEC enabled. Of course
144 this allows an attacker to replace a signed record with a
145 false unsigned record. This is addressed by the
146 --dnssec-check-unsigned flag, which instructs dnsmasq
147 to prove that an unsigned record is legitimate, by finding
148 a secure proof that the zone containing the record is not
149 signed. Doing this has costs (typically one or two extra
150 upstream queries). It also has a nasty failure mode if
151 dnsmasq's upstream nameservers are not DNSSEC capable.
152 Without --dnssec-check-unsigned using such an upstream
153 server will simply result in not queries being validated;
154 with --dnssec-check-unsigned enabled and a
155 DNSSEC-ignorant upstream server, _all_ queries will fail.
156
157 Note that DNSSEC requires that the local time is valid and
158 accurate, if not then DNSSEC validation will fail. NTP
159 should be running. This presents a problem for routers
160 without a battery-backed clock. To set the time needs NTP
161 to do DNS lookups, but lookups will fail until NTP has run.
162 To address this, there's a flag, --dnssec-no-timecheck
163 which disables the time checks (only) in DNSSEC. When dnsmasq
164 is started and the clock is not synced, this flag should
165 be used. As soon as the clock is synced, SIGHUP dnsmasq.
166 The SIGHUP clears the cache of partially-validated data and
167 resets the no-timecheck flag, so that all DNSSEC checks
168 henceforward will be complete.
169
Simon Kelley613d6c52014-02-04 11:50:11 +0000170 The development of DNSSEC in dnsmasq was started by
171 Giovanni Bajo, to whom huge thanks are owed. It has been
172 supported by Comcast, whose techfund grant has allowed for
173 an invaluable period of full-time work to get it to
174 a workable state.
175
Simon Kelleyde73a492014-02-17 21:43:27 +0000176 Add --rev-server. Thanks to Dave Taht for suggesting this.
Simon Kelley7b1eae42014-02-20 13:43:28 +0000177
178 Add --servers-file. Allows dynamic update of upstream servers
179 full access to configuration.
Simon Kelleyde73a492014-02-17 21:43:27 +0000180
Simon Kelleyc8a80482014-03-05 14:29:54 +0000181 Add --local-service. Accept DNS queries only from hosts
182 whose address is on a local subnet, ie a subnet for which
183 an interface exists on the server. This option
Simon Kelleyf00690f2014-03-12 20:07:12 +0000184 only has effect if there are no --interface --except-interface,
Simon Kelleyc8a80482014-03-05 14:29:54 +0000185 --listen-address or --auth-server options. It is intended
186 to be set as a default on installation, to allow
187 unconfigured installations to be useful but also safe from
188 being used for DNS amplification attacks.
189
Simon Kelley604f7592014-03-22 19:33:43 +0000190 Fix crashes in cache_get_cname_target() when dangling CNAMEs
191 encountered. Thanks to Andy and the rt-n56u project for
192 find this and helping to chase it down.
193
Simon Kelley10068602014-04-03 21:16:40 +0100194 Fix wrong RCODE in authoritative DNS replies to PTR queries. The
195 correct answer was included, but the RCODE was set to NXDOMAIN.
196 Thanks to Craig McQueen for spotting this.
197
Simon Kelley198d9402014-04-09 20:36:53 +0100198 Make statistics available as DNS queries in the .bind TLD as
199 well as logging them.
200
Simon Kelleyc8a80482014-03-05 14:29:54 +0000201
Simon Kelley376d48c2013-11-13 13:04:30 +0000202version 2.68
203 Use random addresses for DHCPv6 temporary address
204 allocations, instead of algorithmically determined stable
205 addresses.
206
207 Fix bug which meant that the DHCPv6 DUID was not available
208 in DHCP script runs during the lifetime of the dnsmasq
209 process which created the DUID de-novo. Once the DUID was
210 created and stored in the lease file and dnsmasq
211 restarted, this bug disappeared.
212
213 Fix bug introduced in 2.67 which could result in erroneous
214 NXDOMAIN returns to CNAME queries.
215
216 Fix build failures on MacOS X and openBSD.
217
218 Allow subnet specifications in --auth-zone to be interface
219 names as well as address literals. This makes it possible
220 to configure authoritative DNS when local address ranges
221 are dynamic and works much better than the previous
222 work-around which exempted contructed DHCP ranges from the
223 IP address filtering. As a consequence, that work-around
224 is removed. Under certain circumstances, this change wil
225 break existing configuration: if you're relying on the
226 contructed-range exception, you need to change --auth-zone
227 to specify the same interface as is used to construct your
228 DHCP ranges, probably with a trailing "/6" like this:
229 --auth-zone=example.com,eth0/6 to limit the addresses to
230 IPv6 addresses of eth0.
Simon Kelleydd9d9ce2013-11-15 11:24:00 +0000231
232 Fix problems when advertising deleted IPv6 prefixes. If
233 the prefix is deleted (rather than replaced), it doesn't
234 get advertised with zero preferred time. Thanks to Tsachi
235 for the bug report.
Simon Kelley25439062013-11-25 21:14:51 +0000236
237 Fix segfault with some locally configured CNAMEs. Thanks
238 to Andrew Childs for spotting the problem.
239
240 Fix memory leak on re-reading /etc/hosts and friends,
241 introduced in 2.67.
Simon Kelley2329bef2013-12-03 13:41:16 +0000242
243 Check the arrival interface of incoming DNS and TFTP
244 requests via IPv6, even in --bind-interfaces mode. This
245 isn't possible for IPv4 and can generate scary warnings,
246 but as it's always possible for IPv6 (the API always
247 exists) then we should do it always.
Vladislav Grishenko4c82efc2013-12-03 16:05:30 +0000248
249 Tweak the rules on prefix-lengths in --dhcp-range for
250 IPv6. The new rule is that the specified prefix length
251 must be larger than or equal to the prefix length of the
252 corresponding address on the local interface.
253
Simon Kelley376d48c2013-11-13 13:04:30 +0000254
Giacomo Tazzari797a7af2013-04-22 13:16:37 +0100255version 2.67
256 Fix crash if upstream server returns SERVFAIL when
257 --conntrack in use. Thanks to Giacomo Tazzari for finding
258 this and supplying the patch.
Simon Kelleyaa63a212013-04-22 15:01:52 +0100259
260 Repair regression in 2.64. That release stopped sending
261 lease-time information in the reply to DHCPINFORM
262 requests, on the correct grounds that it was a standards
263 violation. However, this broke the dnsmasq-specific
264 dhcp_lease_time utility. Now, DHCPINFORM returns
265 lease-time only if it's specifically requested
266 (maintaining standards) and the dhcp_lease_time utility
267 has been taught to ask for it (restoring functionality).
Simon Kelley86e92f92013-04-23 11:31:39 +0100268
269 Fix --dhcp-match, --dhcp-vendorclass and --dhcp-userclass
270 to work with BOOTP and well as DHCP. Thanks to Peter
271 Korsgaard for spotting the problem.
Simon Kelley2bb73af2013-04-24 17:38:19 +0100272
273 Add --synth-domain. Thanks to Vishvananda Ishaya for
274 suggesting this.
Simon Kelleyd5052fb2013-04-25 12:44:20 +0100275
276 Fix failure to compile ipset.c if old kernel headers are
277 in use. Thanks to Eugene Rudoy for pointing this out.
Simon Kelley3f2873d2013-05-14 11:28:47 +0100278
279 Handle IPv4 interface-address labels in Linux. These are
280 often used to emulate the old IP-alias addresses. Before,
281 using --interface=eth0 would service all the addresses of
282 eth0, including ones configured as aliases, which appear
283 in ifconfig as eth0:0. Now, only addresses with the label
284 eth0 are active. This is not backwards compatible: if you
285 want to continue to bind the aliases too, you need to add
286 eg. --interface=eth0:0 to the config.
Giacomo Tazzari797a7af2013-04-22 13:16:37 +0100287
Simon Kelleycfcad422013-05-17 11:32:03 +0100288 Fix "failed to set SO_BINDTODEVICE on DHCP socket: Socket
289 operation on non-socket" error on startup with
290 configurations which have exactly one --interface option
291 and do RA but _not_ DHCPv6. Thanks to Trever Adams for the
292 bug report.
Giacomo Tazzari797a7af2013-04-22 13:16:37 +0100293
Simon Kelley115ac3e2013-05-20 11:28:32 +0100294 Generalise --interface-name to cope with IPv6 addresses
295 and multiple addresses per interface per address family.
296
Simon Kelley3e8ed782013-05-29 14:31:33 +0100297 Fix option parsing for --dhcp-host, which was generating a
298 spurious error when all seven possible items were
299 included. Thanks to Zhiqiang Wang for the bug report.
Simon Kelleybaa80ae2013-05-29 16:32:07 +0100300
301 Remove restriction on prefix-length in --auth-zone. Thanks
302 to Toke Hoiland-Jorgensen for suggesting this.
303
Marcelo Salhab Brogliato0da5e892013-05-31 11:49:06 +0100304 Log when the maximum number of concurrent DNS queries is
305 reached. Thanks to Marcelo Salhab Brogliato for the patch.
306
Simon Kelleye2ba0df2013-05-31 17:04:25 +0100307 If wildcards are used in --interface, don't assume that
308 there will only ever be one available interface for DHCP
309 just because there is one at start-up. More may appear, so
310 we can't use SO_BINDTODEVICE. Thanks to Natrio for the bug
311 report.
312
Simon Kelleyb4b93082013-06-19 10:31:23 +0100313 Increase timeout/number of retries in TFTP to accomodate
314 AudioCodes Voice Gateways doing streaming writes to flash.
315 Thanks to Damian Kaczkowski for spotting the problem.
316
Simon Kelley625ac282013-07-02 21:19:32 +0100317 Fix crash with empty DHCP string options when adding zero
Simon Kelley3953dcc2013-07-03 20:40:45 +0100318 terminator. Thanks to Patrick McLean for the bug report.
Simon Kelley625ac282013-07-02 21:19:32 +0100319
Kyle Mesteryd859ca22013-07-24 13:11:58 +0100320 Allow hostnames to start with a number, as allowed in
321 RFC-1123. Thanks to Kyle Mestery for the patch.
322
Roy Marples3f3adae2013-07-25 16:22:46 +0100323 Fixes to DHCP FQDN option handling: don't terminate FQDN
324 if domain not known and allow a FQDN option with blank
325 name to request that a FQDN option is returned in the
326 reply. Thanks to Roy Marples for the patch.
327
Simon Kelleyd9fb0be2013-07-25 21:47:17 +0100328 Make --clear-on-reload apply to setting upstream servers
329 via DBus too.
330
Simon Kelleyef1a94a2013-07-26 13:59:03 +0100331 When the address which triggered the construction of an
332 advertised IPv6 prefix disappears, continue to advertise
333 the prefix for up to 2 hours, with the preferred lifetime
334 set to zero. This satisfies RFC 6204 4.3 L-13 and makes
335 things work better if a prefix disappears without being
336 deprecated first. Thanks to Uwe Schindler for persuasively
337 arguing for this.
338
Simon Kelleyfc4c4fd2013-07-26 15:38:59 +0100339 Fix MAC address enumeration on *BSD. Thanks to Brad Smith
340 for the bug report.
Simon Kelleyb4b93082013-06-19 10:31:23 +0100341
Simon Kelley871d4562013-07-27 21:32:32 +0100342 Support RFC-4242 information-refresh-time options in the
343 reply to DHCPv6 information-request. The lease time of the
344 smallest valid dhcp-range is sent. Thanks to Uwe Schindler
345 for suggesting this.
346
Simon Kelleyedf0bde2013-07-29 17:21:48 +0100347 Make --listen-address higher priority than --except-interface
348 in all circumstances. Thanks to Thomas Hood for the bugreport.
349
Simon Kelley2937f8a2013-07-29 19:49:07 +0100350 Provide independent control over which interfaces get TFTP
351 service. If enable-tftp is given a list of interfaces, then TFTP
352 is provided on those. Without the list, the previous behaviour
353 (provide TFTP to the same interfaces we provide DHCP to)
354 is retained. Thanks to Lonnie Abelbeck for the suggestion.
355
Simon Kelley6acef732013-09-09 15:21:39 +0100356 Add --dhcp-relay config option. Many thanks to vtsl.net
357 for sponsoring this development.
Simon Kelleyff7eea22013-09-04 18:01:38 +0100358
Simon Kelley0932f9c2013-09-05 11:30:30 +0100359 Fix crash with empty tag: in --dhcp-range. Thanks to
360 Kaspar Schleiser for the bug report.
361
Simon Kelleyceae52d2013-09-12 15:05:47 +0100362 Add "baseline" and "bloatcheck" makefile targets, for
363 revealing size changes during development. Thanks to
364 Vladislav Grishenko for the patch.
365
Simon Kelleyc8f2dd82013-09-13 11:22:55 +0100366 Cope with DHCPv6 clients which send REQUESTs without
367 address options - treat them as SOLICIT with rapid commit.
368
Simon Kelley89500e32013-09-20 16:29:20 +0100369 Support identification of clients by MAC address in
370 DHCPv6. When using a relay, the relay must support RFC
371 6939 for this to work. It always works for directly
372 connected clients. Thanks to Vladislav Grishenko
373 for prompting this feature.
Simon Kelley861c8912013-09-25 15:30:30 +0100374
375 Remove the rule for constructed DHCP ranges that the local
376 address must be either the first or last address in the
377 range. This was originally to avoid SLAAC addresses, but
378 we now explicitly autoconfig and privacy addresses instead.
Simon Kelley89500e32013-09-20 16:29:20 +0100379
Simon Kelley889d8a12013-10-02 13:12:09 +0100380 Update Polish translation. Thanks to Jan Psota.
381
Tanguy Bouzelocef1d7422013-10-03 11:06:31 +0100382 Fix problem in DHCPv6 vendorclass/userclass matching
383 code. Thanks to Tanguy Bouzeloc for the patch.
384
Vic043c2712013-10-04 15:09:13 +0100385 Update Spanish transalation. Thanks to Vicente Soriano.
Simon Kelley871d4562013-07-27 21:32:32 +0100386
Simon Kelleyc4cd95d2013-10-10 20:58:11 +0100387 Add --ra-param option. Thanks to Vladislav Grishenko for
388 inspiration on this.
389
Simon Kelleyed4c0762013-10-08 20:46:34 +0100390 Add --add-subnet configuration, to tell upstream DNS
Simon Kelleyf65b0e52013-10-11 10:19:01 +0100391 servers where the original client is. Thanks to DNSthingy
392 for sponsoring this feature.
Simon Kelleyed4c0762013-10-08 20:46:34 +0100393
Kevin Darbyshire-Bryant8c0b73d2013-10-11 11:56:33 +0100394 Add --quiet-dhcp, --quiet-dhcp6 and --quiet-ra. Thanks to
395 Kevin Darbyshire-Bryant for the initial patch.
396
Simon Kelleyd56a6042013-10-11 14:39:03 +0100397 Allow A/AAAA records created by --interface-name to be the
398 target of --cname. Thanks to Hadmut Danisch for the
399 suggestion.
400
Simon Kelley24b5a5d2013-10-11 15:19:28 +0100401 Avoid treating a --dhcp-host which has an IPv6 address
402 as eligable for use with DHCPv4 on the grounds that it has
403 no address, and vice-versa. Thanks to Yury Konovalov for
404 spotting the problem.
405
Simon Kelley45cca582013-10-15 10:20:13 +0100406 Do a better job caching dangling CNAMEs. Thanks to Yves
407 Dorfsman for spotting the problem.
408
Vic043c2712013-10-04 15:09:13 +0100409
Simon Kelley333b2ce2013-01-07 21:46:03 +0000410version 2.66
411 Add the ability to act as an authoritative DNS
412 server. Dnsmasq can now answer queries from the wider 'net
413 with local data, as long as the correct NS records are set
414 up. Only local data is provided, to avoid creating an open
415 DNS relay. Zone transfer is supported, to allow secondary
416 servers to be configured.
417
418 Add "constructed DHCP ranges" for DHCPv6. This is intended
419 for IPv6 routers which get prefixes dynamically via prefix
420 delegation. With suitable configuration, stateful DHCPv6
421 and RA can happen automatically as prefixes are delegated
422 and then deprecated, without having to re-write the
423 dnsmasq configuration file or restart the daemon. Thanks to
424 Steven Barth for extensive testing and development work on
425 this idea.
Simon Kelley71c73ac2013-01-08 21:22:24 +0000426
427 Fix crash on startup on Solaris 11. Regression probably
Simon Kelley22ce5502013-01-22 13:53:04 +0000428 introduced in 2.61. Thanks to Geoff Johnstone for the
429 patch.
430
431 Add code to make behaviour for TCP DNS requests that same
432 as for UDP requests, when a request arrives for an allowed
433 address, but via a banned interface. This change is only
434 active on Linux, since the relevant API is missing (AFAIK)
435 on other platforms. Many thanks to Tomas Hozza for
436 spotting the problem, and doing invaluable discovery of
437 the obscure and undocumented API required for the solution.
Simon Kelleya21e27b2013-02-17 16:41:35 +0000438
439 Don't send the default DHCP option advertising dnsmasq as
440 the local DNS server if dnsmasq is configured to not act
441 as DNS server, or it's configured to a non-standard port.
Simon Kelleydd1721c2013-02-18 21:04:04 +0000442
443 Add DNSMASQ_CIRCUIT_ID, DNSMASQ_SUBCRIBER_ID,
444 DNSMASQ_REMOTE_ID variables to the environment of the
Simon Kelley3d77c042013-03-22 10:03:50 +0000445 lease-change script (and the corresponding Lua). These hold
Simon Kelleydd1721c2013-02-18 21:04:04 +0000446 information inserted into the DHCP request by a DHCP relay
447 agent. Thanks to Lakefield Communications for providing a
448 bounty for this addition.
449
Simon Kelley4038ae22013-02-19 16:47:07 +0000450 Fixed crash, introduced in 2.64, whilst handling DHCPv6
451 information-requests with some common configurations.
452 Thanks to Robert M. Albrecht for the bug report and
453 chasing the problem.
454
Jason A. Donenfeld13d86c72013-02-22 18:20:53 +0000455 Add --ipset option. Thanks to Jason A. Donenfeld for the
456 patch.
457
Simon Kelleyc7961072013-02-28 15:17:58 +0000458 Don't erroneously reject some option names in --dhcp-match
Simon Kelley3d77c042013-03-22 10:03:50 +0000459 options. Thanks to Benedikt Hochstrasser for the bug report.
Simon Kelley49333cb2013-03-15 20:30:51 +0000460
461 Allow a trailing '*' wildcard in all interface-name
462 configurations. Thanks to Christian Parpart for the patch.
Simon Kelleyc7961072013-02-28 15:17:58 +0000463
Simon Kelley56a11422013-04-02 17:02:58 +0100464 Handle the situation where libc headers define
465 SO_REUSEPORT, but the kernel in use doesn't, to cope with
466 the introduction of this option to Linux. Thanks to Rich
467 Felker for the bug report.
468
Simon Kelleycd1e04a2013-04-02 20:11:48 +0100469 Update Polish translation. Thanks to Jan Psota.
Simon Kelley0b0a73c2013-04-11 14:07:02 +0100470
471 Fix crash if the configured DHCP lease limit is
472 reached. Regression occurred in 2.61. Thanks to Tsachi for
473 the bug report.
Simon Kelleycd1e04a2013-04-02 20:11:48 +0100474
Simon Kelley834f36f2013-04-17 13:52:49 +0100475 Update the French translation. Thanks to Gildas le Nadan.
476
Simon Kelley49333cb2013-03-15 20:30:51 +0000477
Simon Kelleyee86ce62012-12-07 11:54:46 +0000478version 2.65
479 Fix regression which broke forwarding of queries sent via
480 TCP which are not for A and AAAA and which were directed to
481 non-default servers. Thanks to Niax for the bug report.
482
Simon Kelleyb5a8dd12012-12-10 11:37:25 +0000483 Fix failure to build with DHCP support excluded. Thanks to
484 Gustavo Zacarias for the patch.
Simon Kelley1d6c6392012-12-14 11:19:36 +0000485
486 Fix nasty regression in 2.64 which completely broke cacheing.
Simon Kelleyb5a8dd12012-12-10 11:37:25 +0000487
488
Simon Kelley2e34ac12012-08-29 14:15:25 +0100489version 2.64
490 Handle DHCP FQDN options with all flag bits zero and
491 --dhcp-client-update set. Thanks to Bernd Krumbroeck for
492 spotting the problem.
493
Simon Kelley12d71ed2012-08-30 15:16:41 +0100494 Finesse the check for /etc/hosts names which conflict with
495 DHCP names. Previously a name/address pair in /etc/hosts
496 which didn't match the name/address of a DHCP lease would
497 generate a warning. Now that only happesn if there is not
498 also a match. This allows multiple addresses for a name in
499 /etc/hosts with one of them assigned via DHCP.
500
Simon Kelley4d0f5b42012-09-05 23:29:30 +0100501 Fix broken vendor-option processing for BOOTP. Thanks to
502 Hans-Joachim Baader for the bug report.
503
Simon Kelleydfb23b32012-09-18 21:44:47 +0100504 Don't report spurious netlink errors, regression in
505 2.63. Thanks to Vladislav Grishenko for the patch.
506
Simon Kelley2b127a12012-09-18 21:51:22 +0100507 Flag DHCP or DHCPv6 in starup logging. Thanks to
508 Vladislav Grishenko for the patch.
509
Simon Kelley295a54e2012-12-01 21:02:15 +0000510 Add SetServersEx method in DBus interface. Thanks to Dan
Simon Kelleyfaafb3f2012-09-20 14:17:39 +0100511 Williams for the patch.
512
Simon Kelley295a54e2012-12-01 21:02:15 +0000513 Add SetDomainServers method in DBus interface. Thanks to
514 Roy Marples for the patch.
515
Simon Kelley289a2532012-09-20 15:29:35 +0100516 Fix build with later Lua libraries. Thansk to Cristian
517 Rodriguez for the patch.
Simon Kelley2e34ac12012-08-29 14:15:25 +0100518
Simon Kelley1d860412012-09-20 20:48:04 +0100519 Add --max-cache-ttl option. Thanks to Dennis Kaarsemaker
520 for the patch.
521
Simon Kelleye4807d82012-09-27 21:52:26 +0100522 Fix breakage of --host-record parsing, resulting in
523 infinte loop at startup. Regression in 2.63. Thanks to
524 Haim Gelfenbeyn for spotting this.
525
Simon Kelley20223102012-10-15 10:41:17 +0100526 Set SO_REUSEADDRESS and SO_V6ONLY options on the DHCPv6
527 socket, this allows multiple instances of dnsmasq on a
528 single machine, in the same way as for DHCPv4. Thanks to
529 Gene Czarcinski and Vladislav Grishenko for work on this.
530
Simon Kelleybe6cfb42012-10-16 20:38:31 +0100531 Fix DHCPv6 to do access control correctly when it's
532 configured with --listen-address. Thanks to
533 Gene Czarcinski for sorting this out.
534
Simon Kelley819ff4d2012-10-21 18:25:12 +0100535 Add a "wildcard" dhcp-range which works for any IPv6
536 subnet, --dhcp-range=::,static Useful for Stateless
537 DHCPv6. Thanks to Vladislav Grishenko for the patch.
538
Simon Kelleyd1a59752012-11-05 16:50:30 +0000539 Don't include lease-time in DHCPACK replies to DHCPINFORM
540 queries, since RFC-2131 says we shouldn't. Thanks to
541 Wouter Ibens for pointing this out.
Simon Kelley8e4b8792012-11-14 14:12:56 +0000542
543 Makefile tweak to do dependency checking on header files.
544 Thanks to Johan Peeters for the patch.
Simon Kelleyd89fb4e2012-12-01 21:21:13 +0000545
546 Check interface for outgoing unsolicited router
547 advertisements, rather than relying on interface address
548 configuration. Thanks to Gene Czarinski for the patch.
Simon Kelley29d28dd2012-12-03 14:05:59 +0000549
550 Handle better attempts to transmit on interfaces which are
551 still doing DAD, and specifically do not just transmit
552 without setting source address and interface, since this
553 can cause very puzzling effects when a router
554 advertisement goes astray. Thanks again to Gene Czarinski.
555
556 Get RA timers right when there is more than one
557 dhcp-range on a subnet.
Simon Kelley289a2532012-09-20 15:29:35 +0100558
Simon Kelleyd1a59752012-11-05 16:50:30 +0000559
Simon Kelley078a6302012-06-07 13:56:23 +0100560version 2.63
561 Do duplicate dhcp-host address check in --test mode.
562
Simon Kelley8b3ae2f2012-06-13 13:43:49 +0100563 Check that tftp-root directories are accessible before
564 start-up. Thanks to Daniel Veillard for the initial patch.
565
566 Allow more than one --tfp-root flag. The per-interface
567 stuff is pointless without that.
568
Simon Kelley54dd3932012-06-20 11:23:38 +0100569 Add --bind-dynamic. A hybrid mode between the default and
570 --bind-interfaces which copes with dynamically created
571 interfaces.
Simon Kelley6b617c02012-06-29 21:15:42 +0100572
573 A couple of fixes to the build system for Android. Thanks
574 to Metin Kaya for the patches.
Simon Kelley54dd3932012-06-20 11:23:38 +0100575
Simon Kelley8bc4cec2012-07-03 21:04:11 +0100576 Remove the interface:<interface> argument in --dhcp-range, and
577 the interface argument to --enable-tftp. These were a
578 still-born attempt to allow automatic isolated
579 configuration by libvirt, but have never (to my knowledge)
580 been used, had very strange semantics, and have been
581 superceded by other mechanisms.
582
Simon Kelleyc4a7f902012-07-12 20:52:12 +0100583 Fixed bug logging filenames when duplicate dhcp-host
584 addresses are found. Thanks to John Hanks for the patch.
585
Simon Kelley611ebc52012-07-16 16:23:46 +0100586 Fix regression in 2.61 which broke caching of CNAME
587 chains. Thanks to Atul Gupta for the bug report.
588
Simon Kelleyb2714462012-07-17 12:09:26 +0100589 Allow the target of a --cname flag to be another --cname.
Simon Kelley611ebc52012-07-16 16:23:46 +0100590
Simon Kelley42243212012-07-20 15:19:18 +0100591 Teach DHCPv6 about the RFC 4242 information-refresh-time
592 option, and add parsing if the minutes, hours and days
593 format for options. Thanks to Francois-Xavier Le Bail for
594 the suggestion.
595
596 Allow "w" (for week) as multiplier in lease times, as well
597 as seconds, minutes, hours and days. Álvaro Gámez Machado
598 spotted the ommission.
Simon Kelleyc4c04882012-08-06 20:09:15 +0100599
600 Update French translation. Thanks to Gildas Le Nadan.
Simon Kelley42243212012-07-20 15:19:18 +0100601
Simon Kelleyad094272012-08-10 17:10:54 +0100602 Allow a DBus service name to be given with --enable-dbus
603 which overrides the default,
604 uk.org.thekelleys.dnsmasq. Thanks to Mathieu
605 Trudel-Lapierre for the patch.
606
Simon Kelleyfd05f122012-08-12 17:48:50 +0100607 Set the "prefix on-link" bit in Router
608 Advertisements. Thanks to Gui Iribarren for the patch.
609
Simon Kelley078a6302012-06-07 13:56:23 +0100610
Simon Kelley8358e0f2012-04-29 21:53:09 +0100611version 2.62
612 Update German translation. Thanks to Conrad Kostecki.
613
Simon Kelleyf632e562012-05-12 15:05:34 +0100614 Cope with router-solict packets wich don't have a valid
615 source address. Thanks to Vladislav Grishenko for the patch.
616
Simon Kelley919dd7c2012-05-12 15:23:09 +0100617 Fixed bug which caused missing periodic router
618 advertisements with some configurations. Thanks to
619 Vladislav Grishenko for the patch.
620
Simon Kelleyc64b7f62012-05-18 10:19:59 +0100621 Fixed bug which broke DHCPv6/RA with prefix lengths
622 which are not divisible by 8. Thanks to Andre Coetzee
623 for spotting this.
624
Simon Kelley18c63ef2012-05-21 14:34:15 +0100625 Fix non-response to router-solicitations when
626 router-advertisement configured, but DHCPv6 not
627 configured. Thanks to Marien Zwart for the patch.
628
Simon Kelley9f7f3b12012-05-28 21:39:57 +0100629 Add --dns-rr, to allow arbitrary DNS resource records.
630
Simon Kelley5ae34bf2012-06-04 21:14:03 +0100631 Fixed bug which broke RA scheduling when an interface had
632 two addresses in the same network. Thanks to Jim Bos for
633 his help nailing this.
634
Simon Kelleyeabc6dd2012-03-07 20:28:20 +0000635version 2.61
636 Re-write interface discovery code on *BSD to use
637 getifaddrs. This is more portable, more straightforward,
638 and allows us to find the prefix length for IPv6
639 addresses.
640
Simon Kelley01d1b8d2012-03-28 21:37:25 +0100641 Add ra-names, ra-stateless and slaac keywords for DHCPv6.
642 Dnsmasq can now synthesise AAAA records for dual-stack
643 hosts which get IPv6 addresses via SLAAC. It is also now
644 possible to use SLAAC and stateless DHCPv6, and to
645 tell clients to use SLAAC addresses as well as DHCP ones.
646 Thanks to Dave Taht for help with this.
Simon Kelley7023e382012-03-09 12:05:49 +0000647
Simon Kelley8b372702012-03-09 17:45:10 +0000648 Add --dhcp-duid to allow DUID-EN uids to be used.
649
Simon Kelley8643ec72012-03-12 20:04:14 +0000650 Explicity send DHCPv6 replies to the correct port, instead
651 of relying on clients to send requests with the correct
652 source address, since at least one client in the wild gets
Simon Kelley8358e0f2012-04-29 21:53:09 +0100653 this wrong. Thanks to Conrad Kostecki for help tracking
Simon Kelley8643ec72012-03-12 20:04:14 +0000654 this down.
Simon Kelleyeabc6dd2012-03-07 20:28:20 +0000655
Simon Kelley8643ec72012-03-12 20:04:14 +0000656 Send a preference value of 255 in DHCPv6 replies when
657 --dhcp-authoritative is in effect. This tells clients not
658 to wait around for other DHCP servers.
659
660 Better logging of DHCPv6 options.
661
Simon Kelleye759d422012-03-16 13:18:57 +0000662 Add --host-record. Thanks to Rob Zwissler for the
663 suggestion.
664
Simon Kelleya9530962012-03-20 22:07:35 +0000665 Invoke the DHCP script with action "tftp" when a TFTP file
666 transfer completes. The size of the file, address to which
667 it was sent and complete pathname are supplied. Note that
668 version 2.60 introduced some script incompatibilties
669 associated with DHCPv6, and this is a further change. To
670 be safe, scripts should ignore unknown actions, and if
671 not IPv6-aware, should exit if the environment
672 variable DNSMASQ_IAID is set. The use-case for this is
673 to track netboot/install. Suggestion from Shantanu
674 Gadgil.
675
676 Update contrib/port-forward/dnsmasq-portforward to reflect
677 the above.
678
679 Set the environment variable DNSMASQ_LOG_DHCP when running
680 the script id --log-dhcp is in effect, so that script can
Simon Kelley52d4abf2012-03-21 21:39:48 +0000681 taylor their logging verbosity. Suggestion from Malte
682 Forkel.
683
684 Arrange that addresses specified with --listen-address
685 work even if there is no interface carrying the
686 address. This is chiefly useful for IPv4 loopback
687 addresses, where any address in 127.0.0.0/8 is a valid
688 loopback address, but normally only 127.0.0.1 appears on
689 the lo interface. Thanks to Mathieu Trudel-Lapierre for
690 the idea and initial patch.
Simon Kelleya9530962012-03-20 22:07:35 +0000691
Simon Kelley7d2b5c92012-03-23 10:00:02 +0000692 Fix crash, introduced in 2.60, when a DHCPINFORM is
693 received from a network which has no valid dhcp-range.
694 Thanks to Stephane Glondu for the bug report.
695
Simon Kelleyc8257542012-03-28 21:15:41 +0100696 Add a new DHCP lease time keyword, "deprecated" for
697 --dhcp-range. This is only valid for IPv6, and sets the
698 preffered lease time for both DHCP and RA to zero. The
699 effect is that clients can continue to use the address
700 for existing connections, but new connections will use
701 other addresses, if they exist. This makes hitless
702 renumbering at least possible.
703
704 Fix bug in address6_available() which caused DHCPv6 lease
Simon Kelley8358e0f2012-04-29 21:53:09 +0100705 aquisition to fail if more than one dhcp-range in use.
Simon Kelley18f0fb02012-03-31 21:18:55 +0100706
707 Provide RDNSS and DNSSL data in router advertisements,
708 using the settings provided for DHCP options
709 option6:domain-search and option6:dns-server.
Simon Kelley6c559c32012-04-02 20:40:34 +0100710
711 Tweak logo/favicon.ico to add some transparency. Thanks to
712 SamLT for work on this.
Simon Kelleyc8257542012-03-28 21:15:41 +0100713
Simon Kelley1023dcb2012-04-09 18:00:08 +0100714 Don't cache data from non-recursive nameservers, since it
715 may erroneously look like a valid CNAME to a non-exitant
716 name. Thanks to Ben Winslow for finding this.
Simon Kelley9380ba72012-04-16 14:41:56 +0100717
718 Call SO_BINDTODEVICE on the DHCP socket(s) when doing DHCP
Simon Kelley8358e0f2012-04-29 21:53:09 +0100719 on exactly one interface and --bind-interfaces is set. This
Simon Kelley9380ba72012-04-16 14:41:56 +0100720 makes the OpenStack use-case of one dnsmasq per virtual
721 interface work. This is only available on Linux; it's not
722 supported on other platforms. Thanks to Vishvananda Ishaya
Simon Kelleye46164e2012-04-16 16:39:38 +0100723 and the OpenStack team for the suggestion.
724
725 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelleyd1c759c2012-04-16 17:26:19 +0100726
727 Give correct from-cache answers to explict CNAME queries.
728 Thanks to Rob Zwissler for spotting this.
Simon Kelley1023dcb2012-04-09 18:00:08 +0100729
Simon Kelleyfc92ead2012-04-22 21:28:24 +0100730 Add --tftp-lowercase option. Thanks to Oliver Rath for the
Simon Kelley61ce6002012-04-20 21:28:49 +0100731 patch.
Simon Kelleydcffad22012-04-24 15:25:18 +0100732
733 Ensure that the DBus DhcpLeaseUpdated events are generated
734 when a lease goes through INIT_REBOOT state, even if the
Simon Kelley8358e0f2012-04-29 21:53:09 +0100735 dhcp-script is not in use. Thanks to Antoaneta-Ecaterina
Simon Kelleydcffad22012-04-24 15:25:18 +0100736 Ene for the patch.
Simon Kelley19d69be2012-04-27 10:14:34 +0100737
738 Fix failure of TFTP over IPv4 on OpenBSD platform. Thanks
739 to Brad Smith for spotting this.
Simon Kelley61ce6002012-04-20 21:28:49 +0100740
Simon Kelleyc8257542012-03-28 21:15:41 +0100741
Simon Kelleyc72daea2012-01-05 21:33:27 +0000742version 2.60
743 Fix compilation problem in Mac OS X Lion. Thanks to Olaf
744 Flebbe for the patch.
Simon Kelley74c95c22011-10-19 09:33:39 +0100745
Simon Kelleyc72daea2012-01-05 21:33:27 +0000746 Fix DHCP when using --listen-address with an IP address
747 which is not the primary address of an interface.
748
749 Add --dhcp-client-update option.
750
751 Add Lua integration. Dnsmasq can now execute a DHCP
752 lease-change script written in Lua. This needs to be
753 enabled at compile time by setting HAVE_LUASCRIPT in
754 src/config.h or running "make COPTS=-DHAVE_LUASCRIPT"
755 Thanks to Jan-Piet Mens for the idea and proof-of-concept
756 implementation.
757
758 Tidied src/config.h to distinguish between
759 platform-dependent compile-time options which are selected
760 automatically, and builder-selectable compile time
761 options. Document the latter better, and describe how to
762 set them from the make command line.
763
764 Tidied up IPPROTO_IP/SOL_IP (and IPv6 equivalent)
765 confusion. IPPROTO_IP works everywhere now.
766
767 Set TOS on DHCP sockets, this improves things on busy
768 wireless networks. Thanks to Dave Taht for the patch.
769
Simon Kelley984d2fd2012-01-06 14:34:32 +0000770 Determine VERSION automatically based on git magic:
771 release tags or hash values.
Simon Kelleyc72daea2012-01-05 21:33:27 +0000772
Simon Kelleya2761752012-01-18 16:07:21 +0000773 Improve start-up speed when reading large hosts files
774 containing many distinct addresses.
775
776 Fix problem if dnsmasq is started without the stdin,
777 stdout and stderr file descriptors open. This can manifest
778 itself as 100% CPU use. Thanks to Chris Moore for finding
779 this.
780
Simon Kelley9bbc8872012-02-09 21:33:09 +0000781 Fix shell-scripting bug in bld/pkg-wrapper. Thanks to
782 Mark Mitchell for the patch.
783
Simon Kelley751d6f42012-02-10 15:24:51 +0000784 Allow the TFP server or boot server in --pxe-service, to
785 be a domain name instead of an IP address. This allows for
786 round-robin to multiple servers, in the same way as
787 --dhcp-boot. A good suggestion from Cristiano Cumer.
788
Simon Kelleyfdacfb02012-02-28 15:20:25 +0000789 Support BUILDDIR variable in the Makefile. Allows builds
790 for multiple archs from the same source tree with eg.
791 make BUILDDIR=linux (relative to dnsmasq tree)
792 make BUILDDIR=/tmp/openbsd (absolute path)
Simon Kelleye5ffdb92012-02-13 14:19:25 +0000793 If BUILDDIR is not set, compilation happens in the src
Simon Kelleyb36ae192012-02-13 12:54:34 +0000794 directory, as before. Suggestion from Mark Mitchell.
795
Simon Kelleyfdacfb02012-02-28 15:20:25 +0000796 Support DHCPv6. Support is there for the sort of things
797 the existing v4 server does, including tags, options,
798 static addresses and relay support. Missing is prefix
799 delegation, which is probably not required in the dnsmasq
800 niche, and an easy way to accept prefix delegations from
801 an upstream DHCPv6 server, which is. Future plans include
802 support for DHCPv6 router option and MAC address option
803 (to make selecting clients by MAC address work like IPv4).
804 These will be added as the standards mature.
805 This code has been tested, but this is the first release,
806 so don't bet the farm on it just yet. Many thanks to all
807 testers who have got it this far.
Simon Kelley1adadf52012-02-13 22:15:58 +0000808
Simon Kelleyac8540c2012-02-26 20:57:31 +0000809 Support IPv6 router advertisements. This is a
810 simple-minded implementation, aimed at providing the
811 vestigial RA needed to go alongside IPv6. Is picks up
812 configuration from the DHCPv6 conf, and should just need
813 enabling with --enable-ra.
814
Simon Kelley552af8b2012-02-29 20:10:31 +0000815 Fix long-standing wrinkle with --localise-queries that
816 could result in wrong answers when DNS packets arrive
817 via an interface other than the expected one. Thanks to
818 Lorenzo Milesi and John Hanks for spotting this one.
Simon Kelley71ee7ee2012-03-03 18:06:49 +0000819
820 Update French translation. Thanks to Gildas Le Nadan.
Simon Kelley552af8b2012-02-29 20:10:31 +0000821
Simon Kelleydf66e342012-03-04 20:04:22 +0000822 Update Polish translation. Thanks to Jan Psota.
823
824
Simon Kelleyc72daea2012-01-05 21:33:27 +0000825version 2.59
826 Fix regression in 2.58 which caused failure to start up
827 with some combinations of dnsmasq config and IPv6 kernel
828 network config. Thanks to Brielle Bruns for the bug
829 report.
830
831 Improve dnsmasq's behaviour when network interfaces are
832 still doing duplicate address detection (DAD). Previously,
833 dnsmasq would wait up to 20 seconds at start-up for the
834 DAD state to terminate. This is broken for bridge
835 interfaces on recent Linux kernels, which don't start DAD
836 until the bridge comes up, and so can take arbitrary
837 time. The new behaviour lets dnsmasq poll for an arbitrary
838 time whilst providing service on other interfaces. Thanks
839 to Stephen Hemminger for pointing out the problem.
Simon Kelley74c95c22011-10-19 09:33:39 +0100840
841
Simon Kelley7de060b2011-08-26 17:24:52 +0100842version 2.58
843 Provide a definition of the SA_SIZE macro where it's
844 missing. Fixes build failure on openBSD.
845
846 Don't include a zero terminator at the end of messages
847 sent to /dev/log when /dev/log is a datagram socket.
848 Thanks to Didier Rabound for spotting the problem.
849
850 Add --dhcp-sequential-ip flag, to force allocation of IP
851 addresses in ascending order. Note that the default
852 pseudo-random mode is in general better but some
853 server-deployment applications need this.
854
855 Fix problem where a server-id of 0.0.0.0 is sent to a
856 client when a dhcp-relay is in use if a client renews a
857 lease after dnsmasq restart and before any clients on the
858 subnet get a new lease. Thanks to Mike Ruiz for assistance
859 in chasing this one down.
860
861 Don't return NXDOMAIN to an AAAA query if we have CNAME
862 which points to an A record only: NODATA is the correct
863 reply in this case. Thanks to Tom Fernandes for spotting
864 the problem.
865
866 Relax the need to supply a netmask in --dhcp-range for
867 networks which use a DHCP relay. Whilst this is still
868 desireable, in the absence of a netmask dnsmasq will use
869 a default based on the class (A, B, or C) of the address.
870 This should at least remove a cause of mysterious failure
871 for people using RFC1918 addresses and relays.
872
873 Add support for Linux conntrack connection marking. If
874 enabled with --conntrack, the connection mark for incoming
875 DNS queries will be copied to the outgoing connections
876 used to answer those queries. This allows clever firewall
877 and accounting stuff. Only available if dnsmasq is
878 compiled with HAVE_CONNTRACK and adds a dependency on
879 libnetfilter-conntrack. Thanks to Ed Wildgoose for the
880 initial idea, testing and sponsorship of this function.
881
882 Provide a sane error message when someone attempts to
883 match a tag in --dhcp-host.
884
885 Tweak the behaviour of --domain-needed, to avoid problems
886 with recursive nameservers downstream of dnsmasq. The new
887 behaviour only stops A and AAAA queries, and returns
888 NODATA rather than NXDOMAIN replies.
889
890 Efficiency fix for very large DHCP configurations, thanks
891 to James Gartrell and Mike Ruiz for help with this.
892
893 Allow the TFTP-server address in --dhcp-boot to be a
894 domain-name which is looked up in /etc/hosts. This can
895 give multiple IP addresses which are used round-robin,
896 thus doing TFTP server load-balancing. Thanks to Sushil
897 Agrawal for the patch.
898
899 When two tagged dhcp-options for a particular option
900 number are both valid, use the one which is valid without
901 a tag from the dhcp-range. Allows overriding of the value
902 of a DHCP option for a particular host as well as
903 per-network values. So
904 --dhcp-range=set:interface1,......
905 --dhcp-host=set:myhost,.....
906 --dhcp-option=tag:interface1,option:nis-domain,"domain1"
907 --dhcp-option=tag:myhost,option:nis-domain,"domain2"
908 will set the NIS-domain to domain1 for hosts in the range, but
909 override that to domain2 for a particular host.
910
911 Fix bug which resulted in truncated files and timeouts for
912 some TFTP transfers. The bug only occurs with netascii
913 transfers and needs an unfortunate relationship between
914 file size, blocksize and the number of newlines in the
915 last block before it manifests itself. Many thanks to
916 Alkis Georgopoulos for spotting the problem and providing
917 a comprehensive test-case.
918
919 Fix regression in TFTP server on *BSD platforms introduced
920 in version 2.56, due to confusion with sockaddr
Simon Kelleyde604c12012-10-19 09:50:01 +0100921 length. Many thanks to Loic Pefferkorn for finding this.
Simon Kelley7de060b2011-08-26 17:24:52 +0100922
923 Support scope-ids in IPv6 addresses of nameservers from
924 /etc/resolv.conf and in --server options. Eg
925 nameserver fe80::202:a412:4512:7bbf%eth0 or
926 server=fe80::202:a412:4512:7bbf%eth0. Thanks to
927 Michael Stapelberg for the suggestion.
928
929 Update Polish translation, thanks to Jan Psota.
930
931 Update French translation. Thanks to Gildas Le Nadan.
932
933
Simon Kelley572b41e2011-02-18 18:11:18 +0000934version 2.57
935 Add patches to allow build under Android.
936
937 Provide our own header for the DNS protocol, rather than
938 relying on arpa/nameser.h. This has proved more or less
939 defective over the years and the final straw is that it's
940 effectively empty on Android.
941
942 Fix regression in 2.56 which caused hex constants in
943 configuration to be rejected if they contain the '*'
944 wildcard.
945
946 Correct wrong casts of arguments to ctype.h functions,
947 isdigit(), isxdigit() etc. Thanks to Matthias Andree for
948 spotting this.
949
950 Allow build with IDN support independently from i18n.
951 IDN support continues to be included automatically
952 when i18n is included.
953 'make COPTS=-DHAVE_IDN' is the magic incantation.
954
955 Modify check on extraneous command line junk (added in
956 2.56) so that it doesn't complain about extra _empty_
957 arguments. Otherwise this breaks libvirt.
958
959
Simon Kelley28866e92011-02-14 20:19:14 +0000960version 2.56
961 Add a patch to allow dnsmasq to get interface names right in a
962 Solaris zone. Thanks to Dj Padzensky for this.
963
964 Improve data-type parsing heuristics so that
965 --dhcp-option=option:domain-search,.
966 treats the value as a string and not an IP address.
967 Thanks to Clemens Fischer for spotting that.
968
969 Add IPv6 support to the TFTP server. Many thanks to Jan
970 'RedBully' Seiffert for the patches.
971
972 Log DNS queries at level LOG_INFO, rather then
973 LOG_DEBUG. This makes things consistent with DHCP
974 logging. Thanks to Adam Pribyl for spotting the problem.
975
976 Ensure that dnsmasq terminates cleanly when using
977 --syslog-async even if it cannot make a connection to the
978 syslogd.
979
980 Add --add-mac option. This is to support currently
981 experimental DNS filtering facilities. Thanks to Benjamin
982 Petrin for the orignal patch.
983
984 Fix bug which meant that tags were ignored in dhcp-range
985 configuration specifying PXE-proxy service. Thanks to
986 Cristiano Cumer for spotting this.
987
988 Raise an error if there is extra junk, not part of an
989 option, on the command line.
990
991 Flag a couple of log messages in cache.c as coming from
992 the DHCP subsystem. Thanks to Olaf Westrik for the patch.
993
994 Omit timestamps from logs when a) logging to stderr and
995 b) --keep-in-forground is set. The logging facility on the
996 other end of stderr can be assumned to supply them. Thanks
997 to John Hallam for the patch.
998
999 Don't complain about strings longer than 255 characters in
1000 --txt-record, just split the long strings into 255
1001 character chunks instead.
1002
1003 Fix crash on double-free. This bug can only happen when
1004 dhcp-script is in use and then only in rare circumstances
1005 triggered by high DHCP transaction rate and a slow
1006 script. Thanks to Ferenc Wagner for finding the problem.
1007
1008 Only log that a file has been sent by TFTP after the
1009 transfer has completed succesfully.
1010
1011 A good suggestion from Ferenc Wagner: extend
1012 the --domain option to allow this sort of thing:
1013 --domain=thekelleys.org.uk,192.168.0.0/24,local
1014 which automatically creates
1015 --local=/thekelleys.org.uk/
1016 --local=/0.168.192.in-addr.arpa/
1017
1018 Tighten up syntax checking of hex contants in the config
1019 file. Thanks to Fred Damen for spotting this.
1020
1021 Add dnsmasq logo/icon, contributed by Justin Swift. Many
1022 thanks for that.
1023
1024 Never cache DNS replies which have the 'cd' bit set, or
1025 which result from queries forwarded with the 'cd' bit
1026 set. The 'cd' bit instructs a DNSSEC validating server
1027 upstream to ignore signature failures and return replies
1028 anyway. Without this change it's possible to pollute the
1029 dnsmasq cache with bad data by making a query with the
1030 'cd' bit set and subsequent queries would return this data
1031 without its being marked as suspect. Thanks to Anders
1032 Kaseorg for pointing out this problem.
1033
1034 Add --proxy-dnssec flag, for compliance with RFC
1035 4035. Dnsmasq will now clear the 'ad' bit in answers returned
1036 from upstream validating nameservers unless this option is
1037 set.
1038
1039 Allow a filename of "-" for --conf-file to read
1040 stdin. Suggestion from Timothy Redaelli.
1041
1042 Rotate the order of SRV records in replies, to provide
1043 round-robin load balancing when all the priorities are
1044 equal. Thanks to Peter McKinney for the suggestion.
1045
1046 Edit
1047 contrib/MacOSX-launchd/uk.org.thekelleys.dnsmasq.plist
1048 so that it doesn't log all queries to a file by
1049 default. Thanks again to Peter McKinney.
1050
1051 By default, setting an IPv4 address for a domain but not
1052 an IPv6 address causes dnsmasq to return
1053 an NODATA reply for IPv6 (or vice-versa). So
1054 --address=/google.com/1.2.3.4 stops IPv6 queries for
1055 *google.com from being forwarded. Make it possible to
1056 override this behaviour by defining the sematics if the
1057 same domain appears in both --server and --address.
1058 In that case, the --address has priority for the address
1059 family in which is appears, but the --server has priority
1060 of the address family which doesn't appear in --adddress
1061 So:
1062 --address=/google.com/1.2.3.4
1063 --server=/google.com/#
1064 will return 1.2.3.4 for IPv4 queries for *.google.com but
1065 forward IPv6 queries to the normal upstream nameserver.
1066 Similarly when setting an IPv6 address
1067 only this will allow forwarding of IPv4 queries. Thanks to
1068 William for pointing out the need for this.
1069
1070 Allow more than one --dhcp-optsfile and --dhcp-hostsfile
1071 and make them understand directories as arguments in the
1072 same way as --addn-hosts. Suggestion from John Hanks.
1073
1074 Ignore rebinding requests for leases we don't know
1075 about. Rebind is broadcast, so we might get to overhear a
1076 request meant for another DHCP server. NAKing this is
1077 wrong. Thanks to Brad D'Hondt for assistance with this.
1078
Simon Kelley572b41e2011-02-18 18:11:18 +00001079 Fix cosmetic bug which produced strange output when
1080 dumping cache statistics with some configurations. Thanks
1081 to Fedor Kozhevnikov for spotting this.
Simon Kelley28866e92011-02-14 20:19:14 +00001082
1083
Simon Kelleyc52e1892010-06-07 22:01:39 +01001084version 2.55
Simon Kelley28866e92011-02-14 20:19:14 +00001085 Fix crash when /etc/ethers is in use. Thanks to
1086 Gianluigi Tiesi for finding this.
Simon Kelleyc52e1892010-06-07 22:01:39 +01001087
Simon Kelley28866e92011-02-14 20:19:14 +00001088 Fix crash in netlink_multicast(). Thanks to Arno Wald for
1089 finding this one.
Simon Kelleyc52e1892010-06-07 22:01:39 +01001090
Simon Kelley28866e92011-02-14 20:19:14 +00001091 Allow the empty domain "." in dhcp domain-search (119)
1092 options.
Simon Kelleyc52e1892010-06-07 22:01:39 +01001093
1094
1095version 2.54
Simon Kelley28866e92011-02-14 20:19:14 +00001096 There is no version 2.54 to avoid confusion with 2.53,
1097 which incorrectly identifies itself as 2.54.
Simon Kelleyc52e1892010-06-07 22:01:39 +01001098
1099
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001100version 2.53
1101 Fix failure to compile on Debian/kFreeBSD. Thanks to
1102 Axel Beckert and Petr Salinger.
1103
1104 Fix code to avoid scary strict-aliasing warnings
1105 generated by gcc 4.4.
1106
1107 Added FAQ entry warning about DHCP failures with Vista
1108 when firewalls block 255.255.255.255.
1109
1110 Fixed bug which caused bad things to happen if a
1111 resolv.conf file which exists is subsequently removed.
1112 Thanks to Nikolai Saoukh for the patch.
1113
1114 Rationalised the DHCP tag system. Every configuration item
1115 which can set a tag does so by adding "set:<tag>" and
1116 every configuration item which is conditional on a tag is
1117 made so by "tag:<tag>". The NOT operator changes to '!',
1118 which is a bit more intuitive too. Dhcp-host directives
1119 can set more than one tag now. The old '#' NOT,
1120 "net:" prefix and no-prefixes are still honoured, so
1121 no existing config file needs to be changed, but
1122 the documentation and new-style config files should be
1123 much less confusing.
1124
1125 Added --tag-if to allow boolean operations on tags.
1126 This allows complicated logic to be clearer and more
1127 general. A great suggestion from Richard Voigt.
1128
1129 Add broadcast/unicast information to DHCP logging.
1130
1131 Allow --dhcp-broadcast to be unconditional.
1132
1133 Fixed incorrect behaviour with NOT <tag> conditionals in
1134 dhcp-options. Thanks to Max Turkewitz for assistance
1135 finding this.
1136
1137 If we send vendor-class encapsulated options based on the
1138 vendor-class supplied by the client, and no explicit
1139 vendor-class option is given, echo back the vendor-class
1140 from the client.
1141
1142 Fix bug which stopped dnsmasq from matching both a
1143 circuitid and a remoteid. Thanks to Ignacio Bravo for
1144 finding this.
1145
1146 Add --dhcp-proxy, which makes it possible to configure
1147 dnsmasq to use a DHCP relay agent as a full proxy, with
1148 all DHCP messages passing through the proxy. This is
1149 useful if the relay adds extra information to the packets
1150 it forwards, but cannot be configured with the RFC 5107
1151 server-override option.
1152
1153 Added interface:<iface name> part to dhcp-range. The
1154 semantics of this are very odd at first sight, but it
1155 allows a single line of the form
1156 dhcp-range=interface:virt0,192.168.0.4,192.168.0.200
1157 to be added to dnsmasq configuration which then supplies
1158 DHCP and DNS services to that interface, without affecting
1159 what services are supplied to other interfaces and
1160 irrespective of the existance or lack of
1161 interface=<interface>
1162 lines elsewhere in the dnsmasq configuration. The idea is
1163 that such a line can be added automatically by libvirt
1164 or equivalent systems, without disturbing any manual
1165 configuration.
1166
1167 Similarly to the above, allow --enable-tftp=<interface>
1168
1169 Allow a TFTP root to be set separately for requests via
1170 different interfaces, --tftp-root=<path>,<interface>
1171
1172 Correctly handle and log clashes between CNAMES and
1173 DNS names being given to DHCP leases. This fixes a bug
1174 which caused nonsense IP addresses to be logged. Thanks to
1175 Sergei Zhirikov for finding and analysing the problem.
1176
1177 Tweak flush_log so as to avoid leaving the log
1178 file in non-blocking mode. O_NONBLOCK is a property of the
1179 file, not the process/descriptor.
1180
1181 Fix contrib/Solaris10/create_package
1182 (/usr/man -> /usr/share/man) Thanks to Vita Batrla.
1183
1184 Fix a problem where, if a client got a lease, then went
1185 to another subnet and got another lease, then moved back,
1186 it couldn't resume the old lease, but would instead get
1187 a new address. Thanks to Leonardo Rodrigues for spotting
1188 this and testing the fix.
1189
1190 Fix weird bug which sometimes omitted certain characters
1191 from the start of quoted strings in dhcp-options. Thanks
1192 to Dayton Turner for spotting the problem.
1193
1194 Add facility to redirect some domains to the standard
1195 upstream servers: this allows something like
1196 --server=/google.com/1.2.3.4 --server=/www.google.com/#
1197 which will send queries for *.google.com to 1.2.3.4,
1198 except *www.google.com which will be forwarded as usual.
1199 Thanks to AJ Weber for prompting this addition.
1200
1201 Improve the hash-algorithm used to generate IP addresses
1202 from MAC addresses during initial DHCP address
1203 allocation. This improves performance when large numbers
1204 of hosts with similar MAC addresses all try and get an IP
1205 address at the same time. Thanks to Paul Smith for his
1206 work on this.
1207
1208 Tweak DHCP code so that --bridge-interface can be used to
1209 select which IP alias of an interface should be used for
1210 DHCP purposes on Linux. If eth0 has an alias eth0:dhcp
1211 then adding --bridge-interface=eth0:dhcp,eth0 will use
1212 the address of eth0:dhcp to determine the correct subnet
1213 for DHCP address allocation. Thanks to Pawel Golaszewski
1214 for prompting this and Eric Cooper for further testing.
1215
1216 Add --dhcp-generate-names. Suggestion by Ferenc Wagner.
1217
1218 Tweak DNS server selection algorithm when there is more
1219 than one server available for a domain, eg.
1220 --server=/mydomain/1.1.1.1
1221 --server=/mydomain/2.2.2.2
1222 Thanks to Alberto Cuesta-Canada for spotting a weakness
1223 here.
1224
1225 Add --max-ttl. Thanks to Fredrik Ringertz for the patch.
1226
1227 Allow --log-facility=- to force all logging to
1228 stderr. Suggestion from Clemens Fischer.
1229
1230 Fix regression which caused configuration like
1231 --address=/.domain.com/1.2.3.4 to be rejected. The dot to the
1232 left of the domain has been implied and not required for a
1233 long time, but it should be accepted for backward
1234 compatibility. Thanks to Andrew Burcin for spotting this.
1235
1236 Add --rebind-domain-ok and --rebind-localhost-ok.
1237 Suggestion from Clemens Fischer.
1238
1239 Log replies to queries of type TXT, when --log-queries
1240 is set.
1241
1242 Fix compiler warnings when compiled with -DNO_DHCP. Thanks
1243 to Shantanu Gadgil for the patch.
1244
1245 Updated French translation. Thanks to Gildas Le Nadan.
1246
1247 Updated Polish translation. Thanks to Jan Psota.
1248
1249 Updated German translation. Thanks to Matthias Andree.
1250
1251 Added contrib/static-arp, thanks to Darren Hoo.
1252
1253 Fix corruption of the domain when a name from /etc/hosts
1254 overrides one supplied by a DHCP client. Thanks to Fedor
1255 Kozhevnikov for spotting the problem.
1256
1257 Updated Spanish translation. Thanks to Chris Chatham.
1258
1259
Simon Kelley316e2732010-01-22 20:16:09 +00001260version 2.52
1261 Work around a Linux kernel bug which insists that the
1262 length of the option passed to setsockopt must be at least
1263 sizeof(int) bytes, even if we're calling SO_BINDTODEVICE
1264 and the device name is "lo". Note that this is fixed
1265 in kernel 2.6.31, but the workaround is harmless and
1266 allows earlier kernels to be used. Also fix dnsmasq
1267 bug which reported the wrong address when this failed.
1268 Thanks to Fedor for finding this.
1269
1270 The API for IPv6 PKTINFO changed around Linux kernel
1271 2.6.14. Workaround the case where dnsmasq is compiled
1272 against newer headers, but then run on an old kernel:
1273 necessary for some *WRT distros.
1274
1275 Re-read the set of network interfaces when re-loading
1276 /etc/resolv.conf if --bind-interfaces is not set. This
1277 handles the case that loopback interfaces do not exist
1278 when dnsmasq is first started.
1279
1280 Tweak the PXE code to support port 4011. This should
1281 reduce broadcasts and make things more reliable when other
1282 servers are around. It also improves inter-operability
1283 with certain clients.
1284
1285 Make a pxe-service configuration with no filename or boot
1286 service type legal: this does a local boot. eg.
1287 pxe-service=x86PC, "Local boot"
1288
1289 Be more conservative in detecting "A for A"
1290 queries. Dnsmasq checks if the name in a type=A query looks
1291 like a dotted-quad IP address and answers the query itself
1292 if so, rather than forwarding it. Previously dnsmasq
1293 relied in the library function inet_addr() to convert
1294 addresses, and that will accept some things which are
1295 confusing in this context, like 1.2.3 or even just
1296 1234. Now we only do A for A processing for four decimal
1297 numbers delimited by dots.
1298
1299 A couple of tweaks to fix compilation on Solaris. Thanks
1300 to Joel Macklow for help with this.
1301
1302 Another Solaris compilation tweak, needed for Solaris
1303 2009.06. Thanks to Lee Essen for that.
1304
1305 Added extract packaging stuff from Lee Essen to
1306 contrib/Solaris10.
1307
1308 Increased the default limit on number of leases to 1000
1309 (from 150). This is mainly a defence against DoS attacks,
1310 and for the average "one for two class C networks"
1311 installation, IP address exhaustion does that just as
1312 well. Making the limit greater than the number of IP
1313 addresses available in such an installation removes a
1314 surprise which otherwise can catch people out.
1315
1316 Removed extraneous trailing space in the value of the
1317 DNSMASQ_TIME_REMAINING DNSMASQ_LEASE_LENGTH and
1318 DNSMASQ_LEASE_EXPIRES environment variables. Thanks to
1319 Gildas Le Nadan for spotting this.
1320
1321 Provide the network-id tags for a DHCP transaction to
1322 the lease-change script in the environment variable
1323 DNSMASQ_TAGS. A good suggestion from Gildas Le Nadan.
1324
1325 Add support for RFC3925 "Vendor-Identifying Vendor
1326 Options". The syntax looks like this:
1327 --dhcp-option=vi-encap:<enterprise number>, .........
1328
1329 Add support to --dhcp-match to allow matching against
1330 RFC3925 "Vendor-Identifying Vendor Classes". The syntax
1331 looks like this:
1332 --dhcp-match=tag,vi-encap<enterprise number>, <value>
1333
1334 Add some application specific code to assist in
1335 implementing the Broadband forum TR069 CPE-WAN
1336 specification. The details are in contrib/CPE-WAN/README
1337
1338 Increase the default DNS packet size limit to 4096, as
1339 recommended by RFC5625 section 4.4.3. This can be
1340 reconfigured using --edns-packet-max if needed. Thanks to
1341 Francis Dupont for pointing this out.
1342
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001343 Rewrite query-ids even for TSIG signed packets, since
Simon Kelley316e2732010-01-22 20:16:09 +00001344 this is allowed by RFC5625 section 4.5.
1345
1346 Use getopt_long by default on OS X. It has been supported
1347 since version 10.3.0. Thanks to Arek Dreyer for spotting
1348 this.
1349
1350 Added up-to-date startup configuration for MacOSX/launchd
1351 in contrib/MacOSX-launchd. Thanks to Arek Dreyer for
1352 providing this.
1353
1354 Fix link error when including Dbus but excluding DHCP.
1355 Thanks to Oschtan for the bug report.
1356
1357 Updated French translation. Thanks to Gildas Le Nadan.
1358
1359 Updated Polish translation. Thanks to Jan Psota.
1360
1361 Updated Spanish translation. Thanks to Chris Chatham.
1362
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001363 Fixed confusion about domains, when looking up DHCP hosts
1364 in /etc/hosts. This could cause spurious "Ignoring
1365 domain..." messages. Thanks to Fedor Kozhevnikov for
1366 finding and analysing the problem.
Simon Kelley316e2732010-01-22 20:16:09 +00001367
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001368
Simon Kelley1f15b812009-10-13 17:49:32 +01001369version 2.51
1370 Add support for internationalised DNS. Non-ASCII characters
1371 in domain names found in /etc/hosts, /etc/ethers and
1372 /etc/dnsmasq.conf will be correctly handled by translation to
1373 punycode, as specified in RFC3490. This function is only
1374 available if dnsmasq is compiled with internationalisation
1375 support, and adds a dependency on GNU libidn. Without i18n
1376 support, dnsmasq continues to be compilable with just
1377 standard tools. Thanks to Yves Dorfsman for the
1378 suggestion.
1379
1380 Add two more environment variables for lease-change scripts:
1381 First, DNSMASQ_SUPPLIED_HOSTNAME; this is set to the hostname
1382 supplied by a client, even if the actual hostname used is
1383 over-ridden by dhcp-host or dhcp-ignore-names directives.
1384 Also DNSMASQ_RELAY_ADDRESS which gives the address of
1385 a DHCP relay, if used.
1386 Suggestions from Michael Rack.
1387
1388 Fix regression which broke echo of relay-agent
1389 options. Thanks to Michael Rack for spotting this.
1390
1391 Don't treat option 67 as being interchangeable with
1392 dhcp-boot parameters if it's specified as
1393 dhcp-option-force.
1394
1395 Make the code to call scripts on lease-change compile-time
1396 optional. It can be switched off by editing src/config.h
1397 or building with "make COPTS=-DNO_SCRIPT".
1398
1399 Make the TFTP server cope with filenames from Windows/DOS
1400 which use '\' as pathname separator. Thanks to Ralf for
1401 the patch.
1402
1403 Updated Polish translation. Thanks to Jan Psota.
1404
1405 Warn if an IP address is duplicated in /etc/ethers. Thanks
1406 to Felix Schwarz for pointing this out.
1407
1408 Teach --conf-dir to take an option list of file suffices
1409 which will be ignored when scanning the directory. Useful
1410 for backup files etc. Thanks to Helmut Hullen for the
1411 suggestion.
1412
1413 Add new DHCP option named tftpserver-address, which
1414 corresponds to the third argument of dhcp-boot. This
1415 allows the complete functionality of dhcp-boot to be
1416 replicated with dhcp-option. Useful when using
1417 dhcp-optsfile.
1418
1419 Test which upstream nameserver to use every 10 seconds
1420 or 50 queries and not just when a query times out and
1421 is retried. This should improve performance when there
1422 is a slow nameserver in the list. Thanks to Joe for the
1423 suggestion.
1424
1425 Don't do any PXE processing, even for clients with the
1426 correct vendorclass, unless at least one pxe-prompt or
1427 pxe-service option is given. This stops dnsmasq
1428 interfering with proxy PXE subsystems when it is just
1429 the DHCP server. Thanks to Spencer Clark for spotting this.
1430
1431 Limit the blocksize used for TFTP transfers to a value
1432 which avoids packet fragmentation, based on the MTU of the
1433 local interface. Many netboot ROMs can't cope with
1434 fragmented packets.
1435
1436 Honour dhcp-ignore configuration for PXE and proxy-PXE
1437 requests. Thanks to Niels Basjes for the bug report.
1438
1439 Updated French translation. Thanks to Gildas Le Nadan.
1440
1441
Simon Kelley77e94da2009-08-31 17:32:17 +01001442version 2.50
Simon Kelley1f15b812009-10-13 17:49:32 +01001443 Fix security problem which allowed any host permitted to
Simon Kelley77e94da2009-08-31 17:32:17 +01001444 do TFTP to possibly compromise dnsmasq by remote buffer
1445 overflow when TFTP enabled. Thanks to Core Security
1446 Technologies and Iván Arce, Pablo Hernán Jorge, Alejandro
1447 Pablo Rodriguez, Martín Coco, Alberto Soliño Testa and
1448 Pablo Annetta. This problem has Bugtraq id: 36121
1449 and CVE: 2009-2957
1450
1451 Fix a problem which allowed a malicious TFTP client to
1452 crash dnsmasq. Thanks to Steve Grubb at Red Hat for
1453 spotting this. This problem has Bugtraq id: 36120 and
1454 CVE: 2009-2958
1455
1456
Simon Kelley03a97b62009-06-10 20:55:49 +01001457version 2.49
1458 Fix regression in 2.48 which disables the lease-change
1459 script. Thanks to Jose Luis Duran for spotting this.
1460
1461 Log TFTP "file not found" errors. These were not logged,
1462 since a normal PXELinux boot generates many of them, but
1463 the lack of the messages seems to be more confusing than
1464 routinely seeing them when there is no real error.
1465
1466 Update Spanish translation. Thanks to Chris Chatham.
1467
1468
Simon Kelley7622fc02009-06-04 20:32:05 +01001469version 2.48
1470 Archived the extensive, backwards, changelog to
1471 CHANGELOG.archive. The current changelog now runs from
1472 version 2.43 and runs conventionally.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00001473
Simon Kelley7622fc02009-06-04 20:32:05 +01001474 Fixed bug which broke binding of servers to physical
1475 interfaces when interface names were longer than four
1476 characters. Thanks to MURASE Katsunori for the patch.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00001477
Simon Kelley7622fc02009-06-04 20:32:05 +01001478 Fixed netlink code to check that messages come from the
1479 correct source, and not another userspace process. Thanks
1480 to Steve Grubb for the patch.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00001481
Simon Kelley7622fc02009-06-04 20:32:05 +01001482 Maintainability drive: removed bug and missing feature
1483 workarounds for some old platforms. Solaris 9, OpenBSD
1484 older than 4.1, Glibc older than 2.2, Linux 2.2.x and
1485 DBus older than 1.1.x are no longer supported.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00001486
Simon Kelley7622fc02009-06-04 20:32:05 +01001487 Don't read included configuration files more than once:
1488 allows complex configuration structures without problems.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00001489
Simon Kelley7622fc02009-06-04 20:32:05 +01001490 Mark log messages from the various subsystems in dnsmasq:
1491 messages from the DHCP subsystem now have the ident string
1492 "dnsmasq-dhcp" and messages from TFTP have ident
1493 "dnsmasq-tftp". Thanks to Olaf Westrik for the patch.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00001494
Simon Kelley7622fc02009-06-04 20:32:05 +01001495 Fix possible infinite DHCP protocol loop when an IP
1496 address nailed to a hostname (not a MAC address) and a
1497 host sometimes provides the name, sometimes not.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00001498
Simon Kelley7622fc02009-06-04 20:32:05 +01001499 Allow --addn-hosts to take a directory: all the files
1500 in the directory are read. Thanks to Phil Cornelius for
1501 the suggestion.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00001502
Simon Kelley7622fc02009-06-04 20:32:05 +01001503 Support --bridge-interface on all platforms, not just BSD.
Simon Kelley1ab84e22004-01-29 16:48:35 +00001504
Simon Kelley7622fc02009-06-04 20:32:05 +01001505 Added support for advanced PXE functions. It's now
1506 possible to define a prompt and menu options which will
1507 be displayed when a client PXE boots. It's also possible to
1508 hand-off booting to other boot servers. Proxy-DHCP, where
1509 dnsmasq just supplies the PXE information and another DHCP
1510 server does address allocation, is also allowed. See the
1511 --pxe-prompt and --pxe-service keywords. Thanks to
1512 Alkis Georgopoulos for the suggestion and Guilherme Moro
1513 and Michael Brown for assistance.
Simon Kelley1ab84e22004-01-29 16:48:35 +00001514
Simon Kelley7622fc02009-06-04 20:32:05 +01001515 Improvements to DHCP logging. Thanks to Tom Metro for
1516 useful suggestions.
1517
1518 Add ability to build dnsmasq without DHCP support. To do
1519 this, edit src/config.h or build with
1520 "make COPTS=-DNO_DHCP". Thanks to Mahavir Jain for the patch.
1521
1522 Added --test command-line switch - syntax check
1523 configuration files only.
Simon Kelley33820b72004-04-03 21:10:00 +01001524
Simon Kelley7622fc02009-06-04 20:32:05 +01001525 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley9009d742008-11-14 20:04:27 +00001526
Simon Kelley73a08a22009-02-05 20:28:08 +00001527
1528version 2.47
1529 Updated French translation. Thanks to Gildas Le Nadan.
1530
1531 Fixed interface enumeration code to work on NetBSD
1532 5.0. Thanks to Roy Marples for the patch.
1533
1534 Updated config.h to use the same location for the lease
1535 file on NetBSD as the other *BSD variants. Also allow
1536 LEASEFILE and CONFFILE symbols to be overriden in CFLAGS.
1537
1538 Handle duplicate address detection on IPv6 more
1539 intelligently. In IPv6, an interface can have an address
1540 which is not usable, because it is still undergoing DAD
1541 (such addresses are marked "tentative"). Attempting to
1542 bind to an address in this state returns an error,
1543 EADDRNOTAVAIL. Previously, on getting such an error,
1544 dnsmasq would silently abandon the address, and never
1545 listen on it. Now, it retries once per second for 20
1546 seconds before generating a fatal error. 20 seconds should
1547 be long enough for any DAD process to complete, but can be
1548 adjusted in src/config.h if necessary. Thanks to Martin
1549 Krafft for the bug report.
1550
1551 Add DBus introspection. Patch from Jeremy Laine.
1552
1553 Update Dbus configuration file. Patch from Colin Walters.
1554 Fix for this bug:
1555 http://bugs.freedesktop.org/show_bug.cgi?id=18961
1556
1557 Support arbitrarily encapsulated DHCP options, suggestion
1558 and initial patch from Samium Gromoff. This is useful for
1559 (eg) gPXE, which expect all its private options to be
1560 encapsulated inside a single option 175. So, eg,
1561
1562 dhcp-option = encap:175, 190, "iscsi-client0"
1563 dhcp-option = encap:175, 191, "iscsi-client0-secret"
1564
1565 will provide iSCSI parameters to gPXE.
1566
1567 Enhance --dhcp-match to allow testing of the contents of a
1568 client-sent option, as well as its presence. This
1569 application in mind for this is RFC 4578
1570 client-architecture specifiers, but it's generally useful.
1571 Joey Korkames suggested the enhancement.
1572
1573 Move from using the IP_XMIT_IF ioctl to IP_BOUND_IF on
1574 OpenSolaris. Thanks to Bastian Machek for the heads-up.
1575
1576 No longer complain about blank lines in
1577 /etc/ethers. Thanks to Jon Nelson for the patch.
1578
1579 Fix binding of servers to physical devices, eg
1580 --server=/domain/1.2.3.4@eth0 which was broken from 2.43
1581 onwards unless --query-port=0 set. Thanks to Peter Naulls
1582 for the bug report.
1583
1584 Reply to DHCPINFORM requests even when the supplied ciaddr
1585 doesn't fall in any dhcp-range. In this case it's not
1586 possible to supply a complete configuration, but
1587 individually-configured options (eg PAC) may be useful.
1588
1589 Allow the source address of an alias to be a range:
1590 --alias=192.168.0.0,10.0.0.0,255.255.255.0 maps the whole
1591 subnet 192.168.0.0->192.168.0.255 to 10.0.0.0->10.0.0.255,
1592 as before.
1593 --alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0
1594 maps only the 192.168.0.10->192.168.0.40 region. Thanks to
1595 Ib Uhrskov for the suggestion.
1596
1597 Don't dynamically allocate DHCP addresses which may break
1598 Windows. Addresses which end in .255 or .0 are broken in
1599 Windows even when using supernetting.
1600 --dhcp-range=192.168.0.1,192.168.1.254,255,255,254.0 means
1601 192.168.0.255 is a valid IP address, but not for Windows.
1602 See Microsoft KB281579. We therefore no longer allocate
1603 these addresses to avoid hard-to-diagnose problems.
1604
1605 Update Polish translation. Thanks to Jan Psota.
1606
1607 Delete the PID-file when dnsmasq shuts down. Note that by
1608 this time, dnsmasq is normally not running as root, so
1609 this will fail if the PID-file is stored in a root-owned
1610 directory; such failure is silently ignored. To take
1611 advantage of this feature, the PID-file must be stored in a
1612 directory owned and write-able by the user running
1613 dnsmasq.
Simon Kelley7622fc02009-06-04 20:32:05 +01001614
1615
1616version 2.46
1617 Allow --bootp-dynamic to take a netid tag, so that it may
1618 be selectively enabled. Thanks to Olaf Westrik for the
1619 suggestion.
1620
1621 Remove ISC-leasefile reading code. This has been
1622 deprecated for a long time, and last time I removed it, it
1623 ended up going back by request of one user. This time,
1624 it's gone for good; otherwise it would need to be
1625 re-worked to support multiple domains (see below).
1626
1627 Support DHCP clients in multiple DNS domains. This is a
1628 long-standing request. Clients are assigned to a domain
1629 based in their IP address.
1630
1631 Add --dhcp-fqdn flag, which changes behaviour if DNS names
1632 assigned to DHCP clients. When this is set, there must be
1633 a domain associated with each client, and only
1634 fully-qualified domain names are added to the DNS. The
1635 advantage is that the only the FQDN needs to be unique,
1636 so that two or more DHCP clients can share a hostname, as
1637 long as they are in different domains.
1638
1639 Set environment variable DNSMASQ_DOMAIN when invoking
1640 lease-change script. This may be useful information to
1641 have now that it's variable.
1642
1643 Tighten up data-checking code for DNS packet
1644 handling. Thanks to Steve Dodd who found certain illegal
1645 packets which could crash dnsmasq. No memory overwrite was
1646 possible, so this is not a security issue beyond the DoS
1647 potential.
1648
1649 Update example config dhcp option 47, the previous
1650 suggestion generated an illegal, zero-length,
1651 option. Thanks to Matthias Andree for finding this.
1652
1653 Rewrite hosts-file reading code to remove the limit of
1654 1024 characters per line. John C Meuser found this.
1655
1656 Create a net-id tag with the name of the interface on
1657 which the DHCP request was received.
1658
1659 Fixed minor memory leak in DBus code, thanks to Jeremy
1660 Laine for the patch.
1661
1662 Emit DBus signals as the DHCP lease database
1663 changes. Thanks to Jeremy Laine for the patch.
1664
1665 Allow for more that one MAC address in a dhcp-host
1666 line. This configuration tells dnsmasq that it's OK to
1667 abandon a DHCP lease of the fixed address to one MAC
1668 address, if another MAC address in the dhcp-host statement
1669 asks for an address. This is useful to give a fixed
1670 address to a host which has two network interfaces
1671 (say, a laptop with wired and wireless interfaces.)
1672 It's very important to ensure that only one interface
1673 at a time is up, since dnsmasq abandons the first lease
1674 and re-uses the address before the leased time has
1675 elapsed. John Gray suggested this.
1676
1677 Tweak the response to a DHCP request packet with a wrong
1678 server-id when --dhcp-authoritative is set; dnsmasq now
1679 returns a DHCPNAK, rather than silently ignoring the
1680 packet. Thanks to Chris Marget for spotting this
1681 improvement.
1682
1683 Add --cname option. This provides a limited alias
1684 function, usable for DHCP names. Thanks to AJ Weber for
1685 suggestions on this.
1686
1687 Updated contrib/webmin with latest version from Neil
1688 Fisher.
1689
1690 Updated Polish translation. Thanks to Jan Psota.
1691
1692 Correct the text names for DHCP options 64 and 65 to be
1693 "nis+-domain" and "nis+-servers".
1694
1695 Updated Spanish translation. Thanks to Chris Chatham.
1696
1697 Force re-reading of /etc/resolv.conf when an "interface
1698 up" event occurs.
1699
1700
1701version 2.45
1702 Fix total DNS failure in release 2.44 unless --min-port
1703 specified. Thanks to Steven Barth and Grant Coady for
1704 bugreport. Also reject out-of-range port spec, which could
1705 break things too: suggestion from Gilles Espinasse.
1706
1707
1708version 2.44
1709 Fix crash when unknown client attempts to renew a DHCP
1710 lease, problem introduced in version 2.43. Thanks to
1711 Carlos Carvalho for help chasing this down.
1712
1713 Fix potential crash when a host which doesn't have a lease
1714 does DHCPINFORM. Again introduced in 2.43. This bug has
1715 never been reported in the wild.
1716
1717 Fix crash in netlink code introduced in 2.43. Thanks to
1718 Jean Wolter for finding this.
1719
1720 Change implementation of min_port to work even if min-port
1721 is large.
1722
1723 Patch to enable compilation of latest Mac OS X. Thanks to
1724 David Gilman.
1725
1726 Update Spanish translation. Thanks to Christopher Chatham.
1727
1728
1729version 2.43
1730 Updated Polish translation. Thanks to Jan Psota.
1731
1732 Flag errors when configuration options are repeated
1733 illegally.
1734
1735 Further tweaks for GNU/kFreeBSD
1736
1737 Add --no-wrap to msgmerge call - provides nicer .po file
1738 format.
1739
1740 Honour lease-time spec in dhcp-host lines even for
1741 BOOTP. The user is assumed to known what they are doing in
1742 this case. (Hosts without the time spec still get infinite
1743 leases for BOOTP, over-riding the default in the
1744 dhcp-range.) Thanks to Peter Katzmann for uncovering this.
1745
1746 Fix problem matching relay-agent ids. Thanks to Michael
1747 Rack for the bug report.
1748
1749 Add --naptr-record option. Suggestion from Johan
1750 Bergquist.
1751
1752 Implement RFC 5107 server-id-override DHCP relay agent
1753 option.
1754
1755 Apply patches from Stefan Kruger for compilation on
1756 Solaris 10 under Sun studio.
1757
1758 Yet more tweaking of Linux capability code, to suppress
1759 pointless wingeing from kernel 2.6.25 and above.
1760
1761 Improve error checking during startup. Previously, some
1762 errors which occurred during startup would be worked
1763 around, with dnsmasq still starting up. Some were logged,
1764 some silent. Now, they all cause a fatal error and dnsmasq
1765 terminates with a non-zero exit code. The errors are those
1766 associated with changing uid and gid, setting process
1767 capabilities and writing the pidfile. Thanks to Uwe
1768 Gansert and the Suse security team for pointing out
1769 this improvement, and Bill Reimers for good implementation
1770 suggestions.
1771
1772 Provide NO_LARGEFILE compile option to switch off largefile
1773 support when compiling against versions of uclibc which
1774 don't support it. Thanks to Stephane Billiart for the patch.
1775
1776 Implement random source ports for interactions with
1777 upstream nameservers. New spoofing attacks have been found
1778 against nameservers which do not do this, though it is not
1779 clear if dnsmasq is vulnerable, since to doesn't implement
1780 recursion. By default dnsmasq will now use a different
1781 source port (and socket) for each query it sends
1782 upstream. This behaviour can suppressed using the
1783 --query-port option, and the old default behaviour
1784 restored using --query-port=0. Explicit source-port
1785 specifications in --server configs are still honoured.
1786
1787 Replace the random number generator, for better
1788 security. On most BSD systems, dnsmasq uses the
1789 arc4random() RNG, which is secure, but on other platforms,
1790 it relied on the C-library RNG, which may be
1791 guessable and therefore allow spoofing. This release
1792 replaces the libc RNG with the SURF RNG, from Daniel
1793 J. Berstein's DJBDNS package.
1794
1795 Don't attempt to change user or group or set capabilities
1796 if dnsmasq is run as a non-root user. Without this, the
1797 change from soft to hard errors when these fail causes
1798 problems for non-root daemons listening on high
1799 ports. Thanks to Patrick McLean for spotting this.
1800
1801 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley1f15b812009-10-13 17:49:32 +01001802
1803
1804version 2.42
1805 The changelog for version 2.42 and earlier is
1806 available in CHANGELOG.archive.