]> git.ipfire.org Git - people/ms/dnsmasq.git/blame - CHANGELOG
Add --ignore-address option.
[people/ms/dnsmasq.git] / CHANGELOG
CommitLineData
00cd9d55
SK
1version 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.
800c5cc1
SK
5
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
ad946d55
SK
10 Use inotify for checking on updates to /etc/resolv.conf and
11 friends under Linux. This fixes race conditions when the files are
12 updated rapidly and saves CPU by noy polling.
3ad3f3bb
SK
13
14 Fix breakage of --domain=<domain>,<subnet>,local - only reverse
15 queries were intercepted. THis appears to have been broken
16 since 2.69. Thanks to Josh Stone for finding the bug.
47669367
SK
17
18 Eliminate IPv6 privacy addresses and deprecated addresses from
19 the answers given by --interface-name. Note that reverse queries
20 (ie looking for names, given addresses) are not affected.
21 Thanks to Michael Gorbach for the suggestion.
094b5c3d
SK
22
23 Fix crash in DNSSEC code with long RRs. Thanks to Marco Davids
24 for the bug report.
32fc6dbe
GH
25
26 Add --ignore-address option. Ignore replies to A-record
27 queries which include the specified address. No error is
28 generated, dnsmasq simply continues to listen for another
29 reply. This is useful to defeat blocking strategies which
30 rely on quickly supplying a forged answer to a DNS
31 request for certain domains, before the correct answer can
32 arrive. Thanks to Glen Huang for the patch.
ad946d55 33
00cd9d55 34
8e9ffba6 35version 2.72
c4a09376
SK
36 Add ra-advrouter mode, for RFC-3775 mobile IPv6 support.
37
38 Add support for "ipsets" in *BSD, using pf. Thanks to
39 Sven Falempim for the patch.
8e9ffba6 40
a0358e5d
SK
41 Fix race condition which could lock up dnsmasq when an
42 interface goes down and up rapidly. Thanks to Conrad
43 Kostecki for helping to chase this down.
c4638f9e
DC
44
45 Add DBus methods SetFilterWin2KOption and SetBogusPrivOption
46 Thanks to the Smoothwall project for the patch.
cdb755c5
SK
47
48 Fix failure to build against Nettle-3.0. Thanks to Steven
49 Barth for spotting this and finding the fix.
a0358e5d 50
6d8e8ac0
SK
51 When assigning existing DHCP leases to intefaces by comparing
52 networks, handle the case that two or more interfaces have the
53 same network part, but different prefix lengths (favour the
54 longer prefix length.) Thanks to Lung-Pin Chang for the
55 patch.
56
b5ea1cc2
SK
57 Add a mode which detects and removes DNS forwarding loops, ie
58 a query sent to an upstream server returns as a new query to
59 dnsmasq, and would therefore be forwarded again, resulting in
60 a query which loops many times before being dropped. Upstream
61 servers which loop back are disabled and this event is logged.
62 Thanks to Smoothwall for their sponsorship of this feature.
63
3e1551a1
SK
64 Extend --conf-dir to allow filtering of files. So
65 --conf-dir=/etc/dnsmasq.d,\*.conf
66 will load all the files in /etc/dnsmasq.d which end in .conf
5bf50af2 67
288df49c
SK
68 Fix bug when resulted in NXDOMAIN answers instead of NODATA in
69 some circumstances.
5782649a
SK
70
71 Fix bug which caused dnsmasq to become unresponsive if it
72 failed to send packets due to a network interface disappearing.
73 Thanks to Niels Peen for spotting this.
bf2db4b0
SK
74
75 Fix problem with --local-service option on big-endian platforms
76 Thanks to Richard Genoud for the patch.
77
8e9ffba6 78
9d1b22aa
SK
79version 2.71
80 Subtle change to error handling to help DNSSEC validation
81 when servers fail to provide NODATA answers for
82 non-existent DS records.
83
84 Tweak code which removes DNSSEC records from answers when
85 not required. Fixes broken answers when additional section
86 has real records in it. Thanks to Marco Davids for the bug
87 report.
88
89 Fix DNSSEC validation of ANY queries. Thanks to Marco Davids
90 for spotting that too.
91
b692f234
SK
92 Fix total DNS failure and 100% CPU use if cachesize set to zero,
93 regression introduced in 2.69. Thanks to James Hunt and
94 the Ubuntu crowd for assistance in fixing this.
95
9d1b22aa 96
63758384
SK
97version 2.70
98 Fix crash, introduced in 2.69, on TCP request when dnsmasq
99 compiled with DNSSEC support, but running without DNSSEC
100 enabled. Thanks to Manish Sing for spotting that one.
101
3b1b3e9d
SK
102 Fix regression which broke ipset functionality. Thanks to
103 Wang Jian for the bug report.
104
63758384 105
1ee9be4c
SK
106version 2.69
107 Implement dynamic interface discovery on *BSD. This allows
108 the contructor: syntax to be used in dhcp-range for DHCPv6
109 on the BSD platform. Thanks to Matthias Andree for
110 valuable research on how to implement this.
111
8db957df 112 Fix infinite loop associated with some --bogus-nxdomain
74e6b520 113 configs. Thanks fogobogo for the bug report.
8db957df 114
ae76242f
SK
115 Fix missing RA RDNS option with configuration like
116 --dhcp-option=option6:23,[::] Thanks to Tsachi Kimeldorfer
117 for spotting the problem.
118
c3a04081
SK
119 Add [fd00::] and [fe80::] as special addresses in DHCPv6
120 options, analogous to [::]. [fd00::] is replaced with the
121 actual ULA of the interface on the machine running
122 dnsmasq, [fe80::] with the link-local address.
123 Thanks to Tsachi Kimeldorfer for championing this.
124
613d6c52
SK
125 DNSSEC validation and caching. Dnsmasq needs to be
126 compiled with this enabled, with
127
128 make dnsmasq COPTS=-DHAVE_DNSSEC
129
130 this add dependencies on the nettle crypto library and the
131 gmp maths library. It's possible to have these linked
132 statically with
133
134 make dnsmasq COPTS='-DHAVE_DNSSEC -DHAVE_DNSSEC_STATIC'
135
198d940a
SK
136 which bloats the dnsmasq binary, but saves the size of
137 the shared libraries which are much bigger.
138
613d6c52
SK
139 To enable, DNSSEC, you will need a set of
140 trust-anchors. Now that the TLDs are signed, this can be
141 the keys for the root zone, and for convenience they are
142 included in trust-anchors.conf in the dnsmasq
143 distribution. You should of course check that these are
144 legitimate and up-to-date. So, adding
145
146 conf-file=/path/to/trust-anchors.conf
147 dnssec
1ee9be4c 148
613d6c52
SK
149 to your config is all thats needed to get things
150 working. The upstream nameservers have to be DNSSEC-capable
151 too, of course. Many ISP nameservers aren't, but the
152 Google public nameservers (8.8.8.8 and 8.8.4.4) are.
153 When DNSSEC is configured, dnsmasq validates any queries
154 for domains which are signed. Query results which are
155 bogus are replaced with SERVFAIL replies, and results
156 which are correctly signed have the AD bit set. In
157 addition, and just as importantly, dnsmasq supplies
158 correct DNSSEC information to clients which are doing
159 their own validation, and caches DNSKEY, DS and RRSIG
160 records, which significantly improve the performance of
161 downstream validators. Setting --log-queries will show
162 DNSSEC in action.
163
198d940a
SK
164 If a domain is returned from an upstream nameserver without
165 DNSSEC signature, dnsmasq by default trusts this. This
166 means that for unsigned zone (still the majority) there
167 is effectively no cost for having DNSSEC enabled. Of course
168 this allows an attacker to replace a signed record with a
169 false unsigned record. This is addressed by the
170 --dnssec-check-unsigned flag, which instructs dnsmasq
171 to prove that an unsigned record is legitimate, by finding
172 a secure proof that the zone containing the record is not
173 signed. Doing this has costs (typically one or two extra
174 upstream queries). It also has a nasty failure mode if
175 dnsmasq's upstream nameservers are not DNSSEC capable.
176 Without --dnssec-check-unsigned using such an upstream
177 server will simply result in not queries being validated;
178 with --dnssec-check-unsigned enabled and a
179 DNSSEC-ignorant upstream server, _all_ queries will fail.
180
181 Note that DNSSEC requires that the local time is valid and
182 accurate, if not then DNSSEC validation will fail. NTP
183 should be running. This presents a problem for routers
184 without a battery-backed clock. To set the time needs NTP
185 to do DNS lookups, but lookups will fail until NTP has run.
186 To address this, there's a flag, --dnssec-no-timecheck
187 which disables the time checks (only) in DNSSEC. When dnsmasq
188 is started and the clock is not synced, this flag should
189 be used. As soon as the clock is synced, SIGHUP dnsmasq.
190 The SIGHUP clears the cache of partially-validated data and
191 resets the no-timecheck flag, so that all DNSSEC checks
192 henceforward will be complete.
193
613d6c52
SK
194 The development of DNSSEC in dnsmasq was started by
195 Giovanni Bajo, to whom huge thanks are owed. It has been
196 supported by Comcast, whose techfund grant has allowed for
197 an invaluable period of full-time work to get it to
198 a workable state.
199
de73a497 200 Add --rev-server. Thanks to Dave Taht for suggesting this.
7b1eae4f
SK
201
202 Add --servers-file. Allows dynamic update of upstream servers
203 full access to configuration.
de73a497 204
c8a80487
SK
205 Add --local-service. Accept DNS queries only from hosts
206 whose address is on a local subnet, ie a subnet for which
207 an interface exists on the server. This option
f00690f9 208 only has effect if there are no --interface --except-interface,
c8a80487
SK
209 --listen-address or --auth-server options. It is intended
210 to be set as a default on installation, to allow
211 unconfigured installations to be useful but also safe from
212 being used for DNS amplification attacks.
213
604f7598
SK
214 Fix crashes in cache_get_cname_target() when dangling CNAMEs
215 encountered. Thanks to Andy and the rt-n56u project for
216 find this and helping to chase it down.
217
10068600
SK
218 Fix wrong RCODE in authoritative DNS replies to PTR queries. The
219 correct answer was included, but the RCODE was set to NXDOMAIN.
220 Thanks to Craig McQueen for spotting this.
221
198d940a
SK
222 Make statistics available as DNS queries in the .bind TLD as
223 well as logging them.
224
c8a80487 225
376d48c7
SK
226version 2.68
227 Use random addresses for DHCPv6 temporary address
228 allocations, instead of algorithmically determined stable
229 addresses.
230
231 Fix bug which meant that the DHCPv6 DUID was not available
232 in DHCP script runs during the lifetime of the dnsmasq
233 process which created the DUID de-novo. Once the DUID was
234 created and stored in the lease file and dnsmasq
235 restarted, this bug disappeared.
236
237 Fix bug introduced in 2.67 which could result in erroneous
238 NXDOMAIN returns to CNAME queries.
239
240 Fix build failures on MacOS X and openBSD.
241
242 Allow subnet specifications in --auth-zone to be interface
243 names as well as address literals. This makes it possible
244 to configure authoritative DNS when local address ranges
245 are dynamic and works much better than the previous
246 work-around which exempted contructed DHCP ranges from the
247 IP address filtering. As a consequence, that work-around
248 is removed. Under certain circumstances, this change wil
249 break existing configuration: if you're relying on the
250 contructed-range exception, you need to change --auth-zone
251 to specify the same interface as is used to construct your
252 DHCP ranges, probably with a trailing "/6" like this:
253 --auth-zone=example.com,eth0/6 to limit the addresses to
254 IPv6 addresses of eth0.
dd9d9ce5
SK
255
256 Fix problems when advertising deleted IPv6 prefixes. If
257 the prefix is deleted (rather than replaced), it doesn't
258 get advertised with zero preferred time. Thanks to Tsachi
259 for the bug report.
25439064
SK
260
261 Fix segfault with some locally configured CNAMEs. Thanks
262 to Andrew Childs for spotting the problem.
263
264 Fix memory leak on re-reading /etc/hosts and friends,
265 introduced in 2.67.
2329bef5
SK
266
267 Check the arrival interface of incoming DNS and TFTP
268 requests via IPv6, even in --bind-interfaces mode. This
269 isn't possible for IPv4 and can generate scary warnings,
270 but as it's always possible for IPv6 (the API always
271 exists) then we should do it always.
4c82efc5
VG
272
273 Tweak the rules on prefix-lengths in --dhcp-range for
274 IPv6. The new rule is that the specified prefix length
275 must be larger than or equal to the prefix length of the
276 corresponding address on the local interface.
277
376d48c7 278
797a7afb
GT
279version 2.67
280 Fix crash if upstream server returns SERVFAIL when
281 --conntrack in use. Thanks to Giacomo Tazzari for finding
282 this and supplying the patch.
aa63a21c
SK
283
284 Repair regression in 2.64. That release stopped sending
285 lease-time information in the reply to DHCPINFORM
286 requests, on the correct grounds that it was a standards
287 violation. However, this broke the dnsmasq-specific
288 dhcp_lease_time utility. Now, DHCPINFORM returns
289 lease-time only if it's specifically requested
290 (maintaining standards) and the dhcp_lease_time utility
291 has been taught to ask for it (restoring functionality).
86e92f99
SK
292
293 Fix --dhcp-match, --dhcp-vendorclass and --dhcp-userclass
294 to work with BOOTP and well as DHCP. Thanks to Peter
295 Korsgaard for spotting the problem.
2bb73af7
SK
296
297 Add --synth-domain. Thanks to Vishvananda Ishaya for
298 suggesting this.
d5052fb2
SK
299
300 Fix failure to compile ipset.c if old kernel headers are
301 in use. Thanks to Eugene Rudoy for pointing this out.
3f2873d4
SK
302
303 Handle IPv4 interface-address labels in Linux. These are
304 often used to emulate the old IP-alias addresses. Before,
305 using --interface=eth0 would service all the addresses of
306 eth0, including ones configured as aliases, which appear
307 in ifconfig as eth0:0. Now, only addresses with the label
308 eth0 are active. This is not backwards compatible: if you
309 want to continue to bind the aliases too, you need to add
310 eg. --interface=eth0:0 to the config.
797a7afb 311
cfcad42f
SK
312 Fix "failed to set SO_BINDTODEVICE on DHCP socket: Socket
313 operation on non-socket" error on startup with
314 configurations which have exactly one --interface option
315 and do RA but _not_ DHCPv6. Thanks to Trever Adams for the
316 bug report.
797a7afb 317
115ac3e4
SK
318 Generalise --interface-name to cope with IPv6 addresses
319 and multiple addresses per interface per address family.
320
3e8ed78b
SK
321 Fix option parsing for --dhcp-host, which was generating a
322 spurious error when all seven possible items were
323 included. Thanks to Zhiqiang Wang for the bug report.
baa80ae5
SK
324
325 Remove restriction on prefix-length in --auth-zone. Thanks
326 to Toke Hoiland-Jorgensen for suggesting this.
327
0da5e897
MSB
328 Log when the maximum number of concurrent DNS queries is
329 reached. Thanks to Marcelo Salhab Brogliato for the patch.
330
e2ba0df2
SK
331 If wildcards are used in --interface, don't assume that
332 there will only ever be one available interface for DHCP
333 just because there is one at start-up. More may appear, so
334 we can't use SO_BINDTODEVICE. Thanks to Natrio for the bug
335 report.
336
b4b93080
SK
337 Increase timeout/number of retries in TFTP to accomodate
338 AudioCodes Voice Gateways doing streaming writes to flash.
339 Thanks to Damian Kaczkowski for spotting the problem.
340
625ac28c 341 Fix crash with empty DHCP string options when adding zero
3953dcc7 342 terminator. Thanks to Patrick McLean for the bug report.
625ac28c 343
d859ca2f
KM
344 Allow hostnames to start with a number, as allowed in
345 RFC-1123. Thanks to Kyle Mestery for the patch.
346
3f3adae6
RM
347 Fixes to DHCP FQDN option handling: don't terminate FQDN
348 if domain not known and allow a FQDN option with blank
349 name to request that a FQDN option is returned in the
350 reply. Thanks to Roy Marples for the patch.
351
d9fb0be8
SK
352 Make --clear-on-reload apply to setting upstream servers
353 via DBus too.
354
ef1a94ab
SK
355 When the address which triggered the construction of an
356 advertised IPv6 prefix disappears, continue to advertise
357 the prefix for up to 2 hours, with the preferred lifetime
358 set to zero. This satisfies RFC 6204 4.3 L-13 and makes
359 things work better if a prefix disappears without being
360 deprecated first. Thanks to Uwe Schindler for persuasively
361 arguing for this.
362
fc4c4fda
SK
363 Fix MAC address enumeration on *BSD. Thanks to Brad Smith
364 for the bug report.
b4b93080 365
871d4562
SK
366 Support RFC-4242 information-refresh-time options in the
367 reply to DHCPv6 information-request. The lease time of the
368 smallest valid dhcp-range is sent. Thanks to Uwe Schindler
369 for suggesting this.
370
edf0bde0
SK
371 Make --listen-address higher priority than --except-interface
372 in all circumstances. Thanks to Thomas Hood for the bugreport.
373
2937f8a0
SK
374 Provide independent control over which interfaces get TFTP
375 service. If enable-tftp is given a list of interfaces, then TFTP
376 is provided on those. Without the list, the previous behaviour
377 (provide TFTP to the same interfaces we provide DHCP to)
378 is retained. Thanks to Lonnie Abelbeck for the suggestion.
379
6acef730
SK
380 Add --dhcp-relay config option. Many thanks to vtsl.net
381 for sponsoring this development.
ff7eea27 382
0932f9c0
SK
383 Fix crash with empty tag: in --dhcp-range. Thanks to
384 Kaspar Schleiser for the bug report.
385
ceae52df
SK
386 Add "baseline" and "bloatcheck" makefile targets, for
387 revealing size changes during development. Thanks to
388 Vladislav Grishenko for the patch.
389
c8f2dd8b
SK
390 Cope with DHCPv6 clients which send REQUESTs without
391 address options - treat them as SOLICIT with rapid commit.
392
89500e31
SK
393 Support identification of clients by MAC address in
394 DHCPv6. When using a relay, the relay must support RFC
395 6939 for this to work. It always works for directly
396 connected clients. Thanks to Vladislav Grishenko
397 for prompting this feature.
861c8914
SK
398
399 Remove the rule for constructed DHCP ranges that the local
400 address must be either the first or last address in the
401 range. This was originally to avoid SLAAC addresses, but
402 we now explicitly autoconfig and privacy addresses instead.
89500e31 403
889d8a15
SK
404 Update Polish translation. Thanks to Jan Psota.
405
ef1d7425
TB
406 Fix problem in DHCPv6 vendorclass/userclass matching
407 code. Thanks to Tanguy Bouzeloc for the patch.
408
043c271f 409 Update Spanish transalation. Thanks to Vicente Soriano.
871d4562 410
c4cd95df
SK
411 Add --ra-param option. Thanks to Vladislav Grishenko for
412 inspiration on this.
413
ed4c0767 414 Add --add-subnet configuration, to tell upstream DNS
f65b0e54
SK
415 servers where the original client is. Thanks to DNSthingy
416 for sponsoring this feature.
ed4c0767 417
8c0b73d3
KDB
418 Add --quiet-dhcp, --quiet-dhcp6 and --quiet-ra. Thanks to
419 Kevin Darbyshire-Bryant for the initial patch.
420
d56a604a
SK
421 Allow A/AAAA records created by --interface-name to be the
422 target of --cname. Thanks to Hadmut Danisch for the
423 suggestion.
424
24b5a5d5
SK
425 Avoid treating a --dhcp-host which has an IPv6 address
426 as eligable for use with DHCPv4 on the grounds that it has
427 no address, and vice-versa. Thanks to Yury Konovalov for
428 spotting the problem.
429
45cca585
SK
430 Do a better job caching dangling CNAMEs. Thanks to Yves
431 Dorfsman for spotting the problem.
432
043c271f 433
333b2ceb
SK
434version 2.66
435 Add the ability to act as an authoritative DNS
436 server. Dnsmasq can now answer queries from the wider 'net
437 with local data, as long as the correct NS records are set
438 up. Only local data is provided, to avoid creating an open
439 DNS relay. Zone transfer is supported, to allow secondary
440 servers to be configured.
441
442 Add "constructed DHCP ranges" for DHCPv6. This is intended
443 for IPv6 routers which get prefixes dynamically via prefix
444 delegation. With suitable configuration, stateful DHCPv6
445 and RA can happen automatically as prefixes are delegated
446 and then deprecated, without having to re-write the
447 dnsmasq configuration file or restart the daemon. Thanks to
448 Steven Barth for extensive testing and development work on
449 this idea.
71c73ac1
SK
450
451 Fix crash on startup on Solaris 11. Regression probably
22ce550e
SK
452 introduced in 2.61. Thanks to Geoff Johnstone for the
453 patch.
454
455 Add code to make behaviour for TCP DNS requests that same
456 as for UDP requests, when a request arrives for an allowed
457 address, but via a banned interface. This change is only
458 active on Linux, since the relevant API is missing (AFAIK)
459 on other platforms. Many thanks to Tomas Hozza for
460 spotting the problem, and doing invaluable discovery of
461 the obscure and undocumented API required for the solution.
a21e27bc
SK
462
463 Don't send the default DHCP option advertising dnsmasq as
464 the local DNS server if dnsmasq is configured to not act
465 as DNS server, or it's configured to a non-standard port.
dd1721c7
SK
466
467 Add DNSMASQ_CIRCUIT_ID, DNSMASQ_SUBCRIBER_ID,
468 DNSMASQ_REMOTE_ID variables to the environment of the
3d77c046 469 lease-change script (and the corresponding Lua). These hold
dd1721c7
SK
470 information inserted into the DHCP request by a DHCP relay
471 agent. Thanks to Lakefield Communications for providing a
472 bounty for this addition.
473
4038ae20
SK
474 Fixed crash, introduced in 2.64, whilst handling DHCPv6
475 information-requests with some common configurations.
476 Thanks to Robert M. Albrecht for the bug report and
477 chasing the problem.
478
13d86c73
JD
479 Add --ipset option. Thanks to Jason A. Donenfeld for the
480 patch.
481
c7961075 482 Don't erroneously reject some option names in --dhcp-match
3d77c046 483 options. Thanks to Benedikt Hochstrasser for the bug report.
49333cbd
SK
484
485 Allow a trailing '*' wildcard in all interface-name
486 configurations. Thanks to Christian Parpart for the patch.
c7961075 487
56a1142f
SK
488 Handle the situation where libc headers define
489 SO_REUSEPORT, but the kernel in use doesn't, to cope with
490 the introduction of this option to Linux. Thanks to Rich
491 Felker for the bug report.
492
cd1e04a2 493 Update Polish translation. Thanks to Jan Psota.
0b0a73c1
SK
494
495 Fix crash if the configured DHCP lease limit is
496 reached. Regression occurred in 2.61. Thanks to Tsachi for
497 the bug report.
cd1e04a2 498
834f36fe
SK
499 Update the French translation. Thanks to Gildas le Nadan.
500
49333cbd 501
ee86ce68
SK
502version 2.65
503 Fix regression which broke forwarding of queries sent via
504 TCP which are not for A and AAAA and which were directed to
505 non-default servers. Thanks to Niax for the bug report.
506
b5a8dd1d
SK
507 Fix failure to build with DHCP support excluded. Thanks to
508 Gustavo Zacarias for the patch.
1d6c6393
SK
509
510 Fix nasty regression in 2.64 which completely broke cacheing.
b5a8dd1d
SK
511
512
2e34ac14
SK
513version 2.64
514 Handle DHCP FQDN options with all flag bits zero and
515 --dhcp-client-update set. Thanks to Bernd Krumbroeck for
516 spotting the problem.
517
12d71ed2
SK
518 Finesse the check for /etc/hosts names which conflict with
519 DHCP names. Previously a name/address pair in /etc/hosts
520 which didn't match the name/address of a DHCP lease would
521 generate a warning. Now that only happesn if there is not
522 also a match. This allows multiple addresses for a name in
523 /etc/hosts with one of them assigned via DHCP.
524
4d0f5b4c
SK
525 Fix broken vendor-option processing for BOOTP. Thanks to
526 Hans-Joachim Baader for the bug report.
527
dfb23b3f
SK
528 Don't report spurious netlink errors, regression in
529 2.63. Thanks to Vladislav Grishenko for the patch.
530
2b127a1e
SK
531 Flag DHCP or DHCPv6 in starup logging. Thanks to
532 Vladislav Grishenko for the patch.
533
295a54ee 534 Add SetServersEx method in DBus interface. Thanks to Dan
faafb3f7
SK
535 Williams for the patch.
536
295a54ee
SK
537 Add SetDomainServers method in DBus interface. Thanks to
538 Roy Marples for the patch.
539
289a2535
SK
540 Fix build with later Lua libraries. Thansk to Cristian
541 Rodriguez for the patch.
2e34ac14 542
1d860415
SK
543 Add --max-cache-ttl option. Thanks to Dennis Kaarsemaker
544 for the patch.
545
e4807d8b
SK
546 Fix breakage of --host-record parsing, resulting in
547 infinte loop at startup. Regression in 2.63. Thanks to
548 Haim Gelfenbeyn for spotting this.
549
2022310f
SK
550 Set SO_REUSEADDRESS and SO_V6ONLY options on the DHCPv6
551 socket, this allows multiple instances of dnsmasq on a
552 single machine, in the same way as for DHCPv4. Thanks to
553 Gene Czarcinski and Vladislav Grishenko for work on this.
554
be6cfb42
SK
555 Fix DHCPv6 to do access control correctly when it's
556 configured with --listen-address. Thanks to
557 Gene Czarcinski for sorting this out.
558
819ff4dd
SK
559 Add a "wildcard" dhcp-range which works for any IPv6
560 subnet, --dhcp-range=::,static Useful for Stateless
561 DHCPv6. Thanks to Vladislav Grishenko for the patch.
562
d1a5975f
SK
563 Don't include lease-time in DHCPACK replies to DHCPINFORM
564 queries, since RFC-2131 says we shouldn't. Thanks to
565 Wouter Ibens for pointing this out.
8e4b8791
SK
566
567 Makefile tweak to do dependency checking on header files.
568 Thanks to Johan Peeters for the patch.
d89fb4ed
SK
569
570 Check interface for outgoing unsolicited router
571 advertisements, rather than relying on interface address
572 configuration. Thanks to Gene Czarinski for the patch.
29d28dda
SK
573
574 Handle better attempts to transmit on interfaces which are
575 still doing DAD, and specifically do not just transmit
576 without setting source address and interface, since this
577 can cause very puzzling effects when a router
578 advertisement goes astray. Thanks again to Gene Czarinski.
579
580 Get RA timers right when there is more than one
581 dhcp-range on a subnet.
289a2535 582
d1a5975f 583
078a630b
SK
584version 2.63
585 Do duplicate dhcp-host address check in --test mode.
586
8b3ae2fd
SK
587 Check that tftp-root directories are accessible before
588 start-up. Thanks to Daniel Veillard for the initial patch.
589
590 Allow more than one --tfp-root flag. The per-interface
591 stuff is pointless without that.
592
54dd393f
SK
593 Add --bind-dynamic. A hybrid mode between the default and
594 --bind-interfaces which copes with dynamically created
595 interfaces.
6b617c0d
SK
596
597 A couple of fixes to the build system for Android. Thanks
598 to Metin Kaya for the patches.
54dd393f 599
8bc4cece
SK
600 Remove the interface:<interface> argument in --dhcp-range, and
601 the interface argument to --enable-tftp. These were a
602 still-born attempt to allow automatic isolated
603 configuration by libvirt, but have never (to my knowledge)
604 been used, had very strange semantics, and have been
605 superceded by other mechanisms.
606
c4a7f90e
SK
607 Fixed bug logging filenames when duplicate dhcp-host
608 addresses are found. Thanks to John Hanks for the patch.
609
611ebc5f
SK
610 Fix regression in 2.61 which broke caching of CNAME
611 chains. Thanks to Atul Gupta for the bug report.
612
b271446f 613 Allow the target of a --cname flag to be another --cname.
611ebc5f 614
42243214
SK
615 Teach DHCPv6 about the RFC 4242 information-refresh-time
616 option, and add parsing if the minutes, hours and days
617 format for options. Thanks to Francois-Xavier Le Bail for
618 the suggestion.
619
620 Allow "w" (for week) as multiplier in lease times, as well
621 as seconds, minutes, hours and days. Álvaro Gámez Machado
622 spotted the ommission.
c4c0488a
SK
623
624 Update French translation. Thanks to Gildas Le Nadan.
42243214 625
ad094275
SK
626 Allow a DBus service name to be given with --enable-dbus
627 which overrides the default,
628 uk.org.thekelleys.dnsmasq. Thanks to Mathieu
629 Trudel-Lapierre for the patch.
630
fd05f127
SK
631 Set the "prefix on-link" bit in Router
632 Advertisements. Thanks to Gui Iribarren for the patch.
633
078a630b 634
8358e0f4
SK
635version 2.62
636 Update German translation. Thanks to Conrad Kostecki.
637
f632e567
SK
638 Cope with router-solict packets wich don't have a valid
639 source address. Thanks to Vladislav Grishenko for the patch.
640
919dd7cf
SK
641 Fixed bug which caused missing periodic router
642 advertisements with some configurations. Thanks to
643 Vladislav Grishenko for the patch.
644
c64b7f6a
SK
645 Fixed bug which broke DHCPv6/RA with prefix lengths
646 which are not divisible by 8. Thanks to Andre Coetzee
647 for spotting this.
648
18c63eff
SK
649 Fix non-response to router-solicitations when
650 router-advertisement configured, but DHCPv6 not
651 configured. Thanks to Marien Zwart for the patch.
652
9f7f3b12
SK
653 Add --dns-rr, to allow arbitrary DNS resource records.
654
5ae34bf3
SK
655 Fixed bug which broke RA scheduling when an interface had
656 two addresses in the same network. Thanks to Jim Bos for
657 his help nailing this.
658
eabc6dd7
SK
659version 2.61
660 Re-write interface discovery code on *BSD to use
661 getifaddrs. This is more portable, more straightforward,
662 and allows us to find the prefix length for IPv6
663 addresses.
664
01d1b8dd
SK
665 Add ra-names, ra-stateless and slaac keywords for DHCPv6.
666 Dnsmasq can now synthesise AAAA records for dual-stack
667 hosts which get IPv6 addresses via SLAAC. It is also now
668 possible to use SLAAC and stateless DHCPv6, and to
669 tell clients to use SLAAC addresses as well as DHCP ones.
670 Thanks to Dave Taht for help with this.
7023e382 671
8b372704
SK
672 Add --dhcp-duid to allow DUID-EN uids to be used.
673
8643ec7f
SK
674 Explicity send DHCPv6 replies to the correct port, instead
675 of relying on clients to send requests with the correct
676 source address, since at least one client in the wild gets
8358e0f4 677 this wrong. Thanks to Conrad Kostecki for help tracking
8643ec7f 678 this down.
eabc6dd7 679
8643ec7f
SK
680 Send a preference value of 255 in DHCPv6 replies when
681 --dhcp-authoritative is in effect. This tells clients not
682 to wait around for other DHCP servers.
683
684 Better logging of DHCPv6 options.
685
e759d426
SK
686 Add --host-record. Thanks to Rob Zwissler for the
687 suggestion.
688
a9530964
SK
689 Invoke the DHCP script with action "tftp" when a TFTP file
690 transfer completes. The size of the file, address to which
691 it was sent and complete pathname are supplied. Note that
692 version 2.60 introduced some script incompatibilties
693 associated with DHCPv6, and this is a further change. To
694 be safe, scripts should ignore unknown actions, and if
695 not IPv6-aware, should exit if the environment
696 variable DNSMASQ_IAID is set. The use-case for this is
697 to track netboot/install. Suggestion from Shantanu
698 Gadgil.
699
700 Update contrib/port-forward/dnsmasq-portforward to reflect
701 the above.
702
703 Set the environment variable DNSMASQ_LOG_DHCP when running
704 the script id --log-dhcp is in effect, so that script can
52d4abf2
SK
705 taylor their logging verbosity. Suggestion from Malte
706 Forkel.
707
708 Arrange that addresses specified with --listen-address
709 work even if there is no interface carrying the
710 address. This is chiefly useful for IPv4 loopback
711 addresses, where any address in 127.0.0.0/8 is a valid
712 loopback address, but normally only 127.0.0.1 appears on
713 the lo interface. Thanks to Mathieu Trudel-Lapierre for
714 the idea and initial patch.
a9530964 715
7d2b5c95
SK
716 Fix crash, introduced in 2.60, when a DHCPINFORM is
717 received from a network which has no valid dhcp-range.
718 Thanks to Stephane Glondu for the bug report.
719
c8257540
SK
720 Add a new DHCP lease time keyword, "deprecated" for
721 --dhcp-range. This is only valid for IPv6, and sets the
722 preffered lease time for both DHCP and RA to zero. The
723 effect is that clients can continue to use the address
724 for existing connections, but new connections will use
725 other addresses, if they exist. This makes hitless
726 renumbering at least possible.
727
728 Fix bug in address6_available() which caused DHCPv6 lease
8358e0f4 729 aquisition to fail if more than one dhcp-range in use.
18f0fb05
SK
730
731 Provide RDNSS and DNSSL data in router advertisements,
732 using the settings provided for DHCP options
733 option6:domain-search and option6:dns-server.
6c559c34
SK
734
735 Tweak logo/favicon.ico to add some transparency. Thanks to
736 SamLT for work on this.
c8257540 737
1023dcbc
SK
738 Don't cache data from non-recursive nameservers, since it
739 may erroneously look like a valid CNAME to a non-exitant
740 name. Thanks to Ben Winslow for finding this.
9380ba70
SK
741
742 Call SO_BINDTODEVICE on the DHCP socket(s) when doing DHCP
8358e0f4 743 on exactly one interface and --bind-interfaces is set. This
9380ba70
SK
744 makes the OpenStack use-case of one dnsmasq per virtual
745 interface work. This is only available on Linux; it's not
746 supported on other platforms. Thanks to Vishvananda Ishaya
e46164e0
SK
747 and the OpenStack team for the suggestion.
748
749 Updated French translation. Thanks to Gildas Le Nadan.
d1c759c5
SK
750
751 Give correct from-cache answers to explict CNAME queries.
752 Thanks to Rob Zwissler for spotting this.
1023dcbc 753
fc92ead0 754 Add --tftp-lowercase option. Thanks to Oliver Rath for the
61ce600b 755 patch.
dcffad2a
SK
756
757 Ensure that the DBus DhcpLeaseUpdated events are generated
758 when a lease goes through INIT_REBOOT state, even if the
8358e0f4 759 dhcp-script is not in use. Thanks to Antoaneta-Ecaterina
dcffad2a 760 Ene for the patch.
19d69be2
SK
761
762 Fix failure of TFTP over IPv4 on OpenBSD platform. Thanks
763 to Brad Smith for spotting this.
61ce600b 764
c8257540 765
c72daea8
SK
766version 2.60
767 Fix compilation problem in Mac OS X Lion. Thanks to Olaf
768 Flebbe for the patch.
769
770 Fix DHCP when using --listen-address with an IP address
771 which is not the primary address of an interface.
772
773 Add --dhcp-client-update option.
774
775 Add Lua integration. Dnsmasq can now execute a DHCP
776 lease-change script written in Lua. This needs to be
777 enabled at compile time by setting HAVE_LUASCRIPT in
778 src/config.h or running "make COPTS=-DHAVE_LUASCRIPT"
779 Thanks to Jan-Piet Mens for the idea and proof-of-concept
780 implementation.
781
782 Tidied src/config.h to distinguish between
783 platform-dependent compile-time options which are selected
784 automatically, and builder-selectable compile time
785 options. Document the latter better, and describe how to
786 set them from the make command line.
787
788 Tidied up IPPROTO_IP/SOL_IP (and IPv6 equivalent)
789 confusion. IPPROTO_IP works everywhere now.
790
791 Set TOS on DHCP sockets, this improves things on busy
792 wireless networks. Thanks to Dave Taht for the patch.
793
984d2fde
SK
794 Determine VERSION automatically based on git magic:
795 release tags or hash values.
c72daea8 796
a2761754
SK
797 Improve start-up speed when reading large hosts files
798 containing many distinct addresses.
799
800 Fix problem if dnsmasq is started without the stdin,
801 stdout and stderr file descriptors open. This can manifest
802 itself as 100% CPU use. Thanks to Chris Moore for finding
803 this.
804
9bbc8876
SK
805 Fix shell-scripting bug in bld/pkg-wrapper. Thanks to
806 Mark Mitchell for the patch.
807
751d6f4a
SK
808 Allow the TFP server or boot server in --pxe-service, to
809 be a domain name instead of an IP address. This allows for
810 round-robin to multiple servers, in the same way as
811 --dhcp-boot. A good suggestion from Cristiano Cumer.
812
fdacfb01
SK
813 Support BUILDDIR variable in the Makefile. Allows builds
814 for multiple archs from the same source tree with eg.
815 make BUILDDIR=linux (relative to dnsmasq tree)
816 make BUILDDIR=/tmp/openbsd (absolute path)
e5ffdb9c 817 If BUILDDIR is not set, compilation happens in the src
b36ae194
SK
818 directory, as before. Suggestion from Mark Mitchell.
819
fdacfb01
SK
820 Support DHCPv6. Support is there for the sort of things
821 the existing v4 server does, including tags, options,
822 static addresses and relay support. Missing is prefix
823 delegation, which is probably not required in the dnsmasq
824 niche, and an easy way to accept prefix delegations from
825 an upstream DHCPv6 server, which is. Future plans include
826 support for DHCPv6 router option and MAC address option
827 (to make selecting clients by MAC address work like IPv4).
828 These will be added as the standards mature.
829 This code has been tested, but this is the first release,
830 so don't bet the farm on it just yet. Many thanks to all
831 testers who have got it this far.
1adadf58 832
ac8540c3
SK
833 Support IPv6 router advertisements. This is a
834 simple-minded implementation, aimed at providing the
835 vestigial RA needed to go alongside IPv6. Is picks up
836 configuration from the DHCPv6 conf, and should just need
837 enabling with --enable-ra.
838
552af8b9
SK
839 Fix long-standing wrinkle with --localise-queries that
840 could result in wrong answers when DNS packets arrive
841 via an interface other than the expected one. Thanks to
842 Lorenzo Milesi and John Hanks for spotting this one.
71ee7ee2
SK
843
844 Update French translation. Thanks to Gildas Le Nadan.
552af8b9 845
df66e341
SK
846 Update Polish translation. Thanks to Jan Psota.
847
848
74c95c25 849version 2.59
c72daea8
SK
850 Fix regression in 2.58 which caused failure to start up
851 with some combinations of dnsmasq config and IPv6 kernel
852 network config. Thanks to Brielle Bruns for the bug
853 report.
854
855 Improve dnsmasq's behaviour when network interfaces are
856 still doing duplicate address detection (DAD). Previously,
857 dnsmasq would wait up to 20 seconds at start-up for the
858 DAD state to terminate. This is broken for bridge
859 interfaces on recent Linux kernels, which don't start DAD
860 until the bridge comes up, and so can take arbitrary
861 time. The new behaviour lets dnsmasq poll for an arbitrary
862 time whilst providing service on other interfaces. Thanks
863 to Stephen Hemminger for pointing out the problem.
74c95c25
SK
864
865
7de060b0
SK
866version 2.58
867 Provide a definition of the SA_SIZE macro where it's
868 missing. Fixes build failure on openBSD.
869
870 Don't include a zero terminator at the end of messages
871 sent to /dev/log when /dev/log is a datagram socket.
872 Thanks to Didier Rabound for spotting the problem.
873
874 Add --dhcp-sequential-ip flag, to force allocation of IP
875 addresses in ascending order. Note that the default
876 pseudo-random mode is in general better but some
877 server-deployment applications need this.
878
879 Fix problem where a server-id of 0.0.0.0 is sent to a
880 client when a dhcp-relay is in use if a client renews a
881 lease after dnsmasq restart and before any clients on the
882 subnet get a new lease. Thanks to Mike Ruiz for assistance
883 in chasing this one down.
884
885 Don't return NXDOMAIN to an AAAA query if we have CNAME
886 which points to an A record only: NODATA is the correct
887 reply in this case. Thanks to Tom Fernandes for spotting
888 the problem.
889
890 Relax the need to supply a netmask in --dhcp-range for
891 networks which use a DHCP relay. Whilst this is still
892 desireable, in the absence of a netmask dnsmasq will use
893 a default based on the class (A, B, or C) of the address.
894 This should at least remove a cause of mysterious failure
895 for people using RFC1918 addresses and relays.
896
897 Add support for Linux conntrack connection marking. If
898 enabled with --conntrack, the connection mark for incoming
899 DNS queries will be copied to the outgoing connections
900 used to answer those queries. This allows clever firewall
901 and accounting stuff. Only available if dnsmasq is
902 compiled with HAVE_CONNTRACK and adds a dependency on
903 libnetfilter-conntrack. Thanks to Ed Wildgoose for the
904 initial idea, testing and sponsorship of this function.
905
906 Provide a sane error message when someone attempts to
907 match a tag in --dhcp-host.
908
909 Tweak the behaviour of --domain-needed, to avoid problems
910 with recursive nameservers downstream of dnsmasq. The new
911 behaviour only stops A and AAAA queries, and returns
912 NODATA rather than NXDOMAIN replies.
913
914 Efficiency fix for very large DHCP configurations, thanks
915 to James Gartrell and Mike Ruiz for help with this.
916
917 Allow the TFTP-server address in --dhcp-boot to be a
918 domain-name which is looked up in /etc/hosts. This can
919 give multiple IP addresses which are used round-robin,
920 thus doing TFTP server load-balancing. Thanks to Sushil
921 Agrawal for the patch.
922
923 When two tagged dhcp-options for a particular option
924 number are both valid, use the one which is valid without
925 a tag from the dhcp-range. Allows overriding of the value
926 of a DHCP option for a particular host as well as
927 per-network values. So
928 --dhcp-range=set:interface1,......
929 --dhcp-host=set:myhost,.....
930 --dhcp-option=tag:interface1,option:nis-domain,"domain1"
931 --dhcp-option=tag:myhost,option:nis-domain,"domain2"
932 will set the NIS-domain to domain1 for hosts in the range, but
933 override that to domain2 for a particular host.
934
935 Fix bug which resulted in truncated files and timeouts for
936 some TFTP transfers. The bug only occurs with netascii
937 transfers and needs an unfortunate relationship between
938 file size, blocksize and the number of newlines in the
939 last block before it manifests itself. Many thanks to
940 Alkis Georgopoulos for spotting the problem and providing
941 a comprehensive test-case.
942
943 Fix regression in TFTP server on *BSD platforms introduced
944 in version 2.56, due to confusion with sockaddr
de604c18 945 length. Many thanks to Loic Pefferkorn for finding this.
7de060b0
SK
946
947 Support scope-ids in IPv6 addresses of nameservers from
948 /etc/resolv.conf and in --server options. Eg
949 nameserver fe80::202:a412:4512:7bbf%eth0 or
950 server=fe80::202:a412:4512:7bbf%eth0. Thanks to
951 Michael Stapelberg for the suggestion.
952
953 Update Polish translation, thanks to Jan Psota.
954
955 Update French translation. Thanks to Gildas Le Nadan.
956
957
572b41eb
SK
958version 2.57
959 Add patches to allow build under Android.
960
961 Provide our own header for the DNS protocol, rather than
962 relying on arpa/nameser.h. This has proved more or less
963 defective over the years and the final straw is that it's
964 effectively empty on Android.
965
966 Fix regression in 2.56 which caused hex constants in
967 configuration to be rejected if they contain the '*'
968 wildcard.
969
970 Correct wrong casts of arguments to ctype.h functions,
971 isdigit(), isxdigit() etc. Thanks to Matthias Andree for
972 spotting this.
973
974 Allow build with IDN support independently from i18n.
975 IDN support continues to be included automatically
976 when i18n is included.
977 'make COPTS=-DHAVE_IDN' is the magic incantation.
978
979 Modify check on extraneous command line junk (added in
980 2.56) so that it doesn't complain about extra _empty_
981 arguments. Otherwise this breaks libvirt.
982
983
28866e95
SK
984version 2.56
985 Add a patch to allow dnsmasq to get interface names right in a
986 Solaris zone. Thanks to Dj Padzensky for this.
987
988 Improve data-type parsing heuristics so that
989 --dhcp-option=option:domain-search,.
990 treats the value as a string and not an IP address.
991 Thanks to Clemens Fischer for spotting that.
992
993 Add IPv6 support to the TFTP server. Many thanks to Jan
994 'RedBully' Seiffert for the patches.
995
996 Log DNS queries at level LOG_INFO, rather then
997 LOG_DEBUG. This makes things consistent with DHCP
998 logging. Thanks to Adam Pribyl for spotting the problem.
999
1000 Ensure that dnsmasq terminates cleanly when using
1001 --syslog-async even if it cannot make a connection to the
1002 syslogd.
1003
1004 Add --add-mac option. This is to support currently
1005 experimental DNS filtering facilities. Thanks to Benjamin
1006 Petrin for the orignal patch.
1007
1008 Fix bug which meant that tags were ignored in dhcp-range
1009 configuration specifying PXE-proxy service. Thanks to
1010 Cristiano Cumer for spotting this.
1011
1012 Raise an error if there is extra junk, not part of an
1013 option, on the command line.
1014
1015 Flag a couple of log messages in cache.c as coming from
1016 the DHCP subsystem. Thanks to Olaf Westrik for the patch.
1017
1018 Omit timestamps from logs when a) logging to stderr and
1019 b) --keep-in-forground is set. The logging facility on the
1020 other end of stderr can be assumned to supply them. Thanks
1021 to John Hallam for the patch.
1022
1023 Don't complain about strings longer than 255 characters in
1024 --txt-record, just split the long strings into 255
1025 character chunks instead.
1026
1027 Fix crash on double-free. This bug can only happen when
1028 dhcp-script is in use and then only in rare circumstances
1029 triggered by high DHCP transaction rate and a slow
1030 script. Thanks to Ferenc Wagner for finding the problem.
1031
1032 Only log that a file has been sent by TFTP after the
1033 transfer has completed succesfully.
1034
1035 A good suggestion from Ferenc Wagner: extend
1036 the --domain option to allow this sort of thing:
1037 --domain=thekelleys.org.uk,192.168.0.0/24,local
1038 which automatically creates
1039 --local=/thekelleys.org.uk/
1040 --local=/0.168.192.in-addr.arpa/
1041
1042 Tighten up syntax checking of hex contants in the config
1043 file. Thanks to Fred Damen for spotting this.
1044
1045 Add dnsmasq logo/icon, contributed by Justin Swift. Many
1046 thanks for that.
1047
1048 Never cache DNS replies which have the 'cd' bit set, or
1049 which result from queries forwarded with the 'cd' bit
1050 set. The 'cd' bit instructs a DNSSEC validating server
1051 upstream to ignore signature failures and return replies
1052 anyway. Without this change it's possible to pollute the
1053 dnsmasq cache with bad data by making a query with the
1054 'cd' bit set and subsequent queries would return this data
1055 without its being marked as suspect. Thanks to Anders
1056 Kaseorg for pointing out this problem.
1057
1058 Add --proxy-dnssec flag, for compliance with RFC
1059 4035. Dnsmasq will now clear the 'ad' bit in answers returned
1060 from upstream validating nameservers unless this option is
1061 set.
1062
1063 Allow a filename of "-" for --conf-file to read
1064 stdin. Suggestion from Timothy Redaelli.
1065
1066 Rotate the order of SRV records in replies, to provide
1067 round-robin load balancing when all the priorities are
1068 equal. Thanks to Peter McKinney for the suggestion.
1069
1070 Edit
1071 contrib/MacOSX-launchd/uk.org.thekelleys.dnsmasq.plist
1072 so that it doesn't log all queries to a file by
1073 default. Thanks again to Peter McKinney.
1074
1075 By default, setting an IPv4 address for a domain but not
1076 an IPv6 address causes dnsmasq to return
1077 an NODATA reply for IPv6 (or vice-versa). So
1078 --address=/google.com/1.2.3.4 stops IPv6 queries for
1079 *google.com from being forwarded. Make it possible to
1080 override this behaviour by defining the sematics if the
1081 same domain appears in both --server and --address.
1082 In that case, the --address has priority for the address
1083 family in which is appears, but the --server has priority
1084 of the address family which doesn't appear in --adddress
1085 So:
1086 --address=/google.com/1.2.3.4
1087 --server=/google.com/#
1088 will return 1.2.3.4 for IPv4 queries for *.google.com but
1089 forward IPv6 queries to the normal upstream nameserver.
1090 Similarly when setting an IPv6 address
1091 only this will allow forwarding of IPv4 queries. Thanks to
1092 William for pointing out the need for this.
1093
1094 Allow more than one --dhcp-optsfile and --dhcp-hostsfile
1095 and make them understand directories as arguments in the
1096 same way as --addn-hosts. Suggestion from John Hanks.
1097
1098 Ignore rebinding requests for leases we don't know
1099 about. Rebind is broadcast, so we might get to overhear a
1100 request meant for another DHCP server. NAKing this is
1101 wrong. Thanks to Brad D'Hondt for assistance with this.
1102
572b41eb
SK
1103 Fix cosmetic bug which produced strange output when
1104 dumping cache statistics with some configurations. Thanks
1105 to Fedor Kozhevnikov for spotting this.
28866e95
SK
1106
1107
c52e1897 1108version 2.55
28866e95
SK
1109 Fix crash when /etc/ethers is in use. Thanks to
1110 Gianluigi Tiesi for finding this.
c52e1897 1111
28866e95
SK
1112 Fix crash in netlink_multicast(). Thanks to Arno Wald for
1113 finding this one.
c52e1897 1114
28866e95
SK
1115 Allow the empty domain "." in dhcp domain-search (119)
1116 options.
c52e1897
SK
1117
1118
1119version 2.54
28866e95
SK
1120 There is no version 2.54 to avoid confusion with 2.53,
1121 which incorrectly identifies itself as 2.54.
c52e1897
SK
1122
1123
8ef5ada2
SK
1124version 2.53
1125 Fix failure to compile on Debian/kFreeBSD. Thanks to
1126 Axel Beckert and Petr Salinger.
1127
1128 Fix code to avoid scary strict-aliasing warnings
1129 generated by gcc 4.4.
1130
1131 Added FAQ entry warning about DHCP failures with Vista
1132 when firewalls block 255.255.255.255.
1133
1134 Fixed bug which caused bad things to happen if a
1135 resolv.conf file which exists is subsequently removed.
1136 Thanks to Nikolai Saoukh for the patch.
1137
1138 Rationalised the DHCP tag system. Every configuration item
1139 which can set a tag does so by adding "set:<tag>" and
1140 every configuration item which is conditional on a tag is
1141 made so by "tag:<tag>". The NOT operator changes to '!',
1142 which is a bit more intuitive too. Dhcp-host directives
1143 can set more than one tag now. The old '#' NOT,
1144 "net:" prefix and no-prefixes are still honoured, so
1145 no existing config file needs to be changed, but
1146 the documentation and new-style config files should be
1147 much less confusing.
1148
1149 Added --tag-if to allow boolean operations on tags.
1150 This allows complicated logic to be clearer and more
1151 general. A great suggestion from Richard Voigt.
1152
1153 Add broadcast/unicast information to DHCP logging.
1154
1155 Allow --dhcp-broadcast to be unconditional.
1156
1157 Fixed incorrect behaviour with NOT <tag> conditionals in
1158 dhcp-options. Thanks to Max Turkewitz for assistance
1159 finding this.
1160
1161 If we send vendor-class encapsulated options based on the
1162 vendor-class supplied by the client, and no explicit
1163 vendor-class option is given, echo back the vendor-class
1164 from the client.
1165
1166 Fix bug which stopped dnsmasq from matching both a
1167 circuitid and a remoteid. Thanks to Ignacio Bravo for
1168 finding this.
1169
1170 Add --dhcp-proxy, which makes it possible to configure
1171 dnsmasq to use a DHCP relay agent as a full proxy, with
1172 all DHCP messages passing through the proxy. This is
1173 useful if the relay adds extra information to the packets
1174 it forwards, but cannot be configured with the RFC 5107
1175 server-override option.
1176
1177 Added interface:<iface name> part to dhcp-range. The
1178 semantics of this are very odd at first sight, but it
1179 allows a single line of the form
1180 dhcp-range=interface:virt0,192.168.0.4,192.168.0.200
1181 to be added to dnsmasq configuration which then supplies
1182 DHCP and DNS services to that interface, without affecting
1183 what services are supplied to other interfaces and
1184 irrespective of the existance or lack of
1185 interface=<interface>
1186 lines elsewhere in the dnsmasq configuration. The idea is
1187 that such a line can be added automatically by libvirt
1188 or equivalent systems, without disturbing any manual
1189 configuration.
1190
1191 Similarly to the above, allow --enable-tftp=<interface>
1192
1193 Allow a TFTP root to be set separately for requests via
1194 different interfaces, --tftp-root=<path>,<interface>
1195
1196 Correctly handle and log clashes between CNAMES and
1197 DNS names being given to DHCP leases. This fixes a bug
1198 which caused nonsense IP addresses to be logged. Thanks to
1199 Sergei Zhirikov for finding and analysing the problem.
1200
1201 Tweak flush_log so as to avoid leaving the log
1202 file in non-blocking mode. O_NONBLOCK is a property of the
1203 file, not the process/descriptor.
1204
1205 Fix contrib/Solaris10/create_package
1206 (/usr/man -> /usr/share/man) Thanks to Vita Batrla.
1207
1208 Fix a problem where, if a client got a lease, then went
1209 to another subnet and got another lease, then moved back,
1210 it couldn't resume the old lease, but would instead get
1211 a new address. Thanks to Leonardo Rodrigues for spotting
1212 this and testing the fix.
1213
1214 Fix weird bug which sometimes omitted certain characters
1215 from the start of quoted strings in dhcp-options. Thanks
1216 to Dayton Turner for spotting the problem.
1217
1218 Add facility to redirect some domains to the standard
1219 upstream servers: this allows something like
1220 --server=/google.com/1.2.3.4 --server=/www.google.com/#
1221 which will send queries for *.google.com to 1.2.3.4,
1222 except *www.google.com which will be forwarded as usual.
1223 Thanks to AJ Weber for prompting this addition.
1224
1225 Improve the hash-algorithm used to generate IP addresses
1226 from MAC addresses during initial DHCP address
1227 allocation. This improves performance when large numbers
1228 of hosts with similar MAC addresses all try and get an IP
1229 address at the same time. Thanks to Paul Smith for his
1230 work on this.
1231
1232 Tweak DHCP code so that --bridge-interface can be used to
1233 select which IP alias of an interface should be used for
1234 DHCP purposes on Linux. If eth0 has an alias eth0:dhcp
1235 then adding --bridge-interface=eth0:dhcp,eth0 will use
1236 the address of eth0:dhcp to determine the correct subnet
1237 for DHCP address allocation. Thanks to Pawel Golaszewski
1238 for prompting this and Eric Cooper for further testing.
1239
1240 Add --dhcp-generate-names. Suggestion by Ferenc Wagner.
1241
1242 Tweak DNS server selection algorithm when there is more
1243 than one server available for a domain, eg.
1244 --server=/mydomain/1.1.1.1
1245 --server=/mydomain/2.2.2.2
1246 Thanks to Alberto Cuesta-Canada for spotting a weakness
1247 here.
1248
1249 Add --max-ttl. Thanks to Fredrik Ringertz for the patch.
1250
1251 Allow --log-facility=- to force all logging to
1252 stderr. Suggestion from Clemens Fischer.
1253
1254 Fix regression which caused configuration like
1255 --address=/.domain.com/1.2.3.4 to be rejected. The dot to the
1256 left of the domain has been implied and not required for a
1257 long time, but it should be accepted for backward
1258 compatibility. Thanks to Andrew Burcin for spotting this.
1259
1260 Add --rebind-domain-ok and --rebind-localhost-ok.
1261 Suggestion from Clemens Fischer.
1262
1263 Log replies to queries of type TXT, when --log-queries
1264 is set.
1265
1266 Fix compiler warnings when compiled with -DNO_DHCP. Thanks
1267 to Shantanu Gadgil for the patch.
1268
1269 Updated French translation. Thanks to Gildas Le Nadan.
1270
1271 Updated Polish translation. Thanks to Jan Psota.
1272
1273 Updated German translation. Thanks to Matthias Andree.
1274
1275 Added contrib/static-arp, thanks to Darren Hoo.
1276
1277 Fix corruption of the domain when a name from /etc/hosts
1278 overrides one supplied by a DHCP client. Thanks to Fedor
1279 Kozhevnikov for spotting the problem.
1280
1281 Updated Spanish translation. Thanks to Chris Chatham.
1282
1283
316e2730
SK
1284version 2.52
1285 Work around a Linux kernel bug which insists that the
1286 length of the option passed to setsockopt must be at least
1287 sizeof(int) bytes, even if we're calling SO_BINDTODEVICE
1288 and the device name is "lo". Note that this is fixed
1289 in kernel 2.6.31, but the workaround is harmless and
1290 allows earlier kernels to be used. Also fix dnsmasq
1291 bug which reported the wrong address when this failed.
1292 Thanks to Fedor for finding this.
1293
1294 The API for IPv6 PKTINFO changed around Linux kernel
1295 2.6.14. Workaround the case where dnsmasq is compiled
1296 against newer headers, but then run on an old kernel:
1297 necessary for some *WRT distros.
1298
1299 Re-read the set of network interfaces when re-loading
1300 /etc/resolv.conf if --bind-interfaces is not set. This
1301 handles the case that loopback interfaces do not exist
1302 when dnsmasq is first started.
1303
1304 Tweak the PXE code to support port 4011. This should
1305 reduce broadcasts and make things more reliable when other
1306 servers are around. It also improves inter-operability
1307 with certain clients.
1308
1309 Make a pxe-service configuration with no filename or boot
1310 service type legal: this does a local boot. eg.
1311 pxe-service=x86PC, "Local boot"
1312
1313 Be more conservative in detecting "A for A"
1314 queries. Dnsmasq checks if the name in a type=A query looks
1315 like a dotted-quad IP address and answers the query itself
1316 if so, rather than forwarding it. Previously dnsmasq
1317 relied in the library function inet_addr() to convert
1318 addresses, and that will accept some things which are
1319 confusing in this context, like 1.2.3 or even just
1320 1234. Now we only do A for A processing for four decimal
1321 numbers delimited by dots.
1322
1323 A couple of tweaks to fix compilation on Solaris. Thanks
1324 to Joel Macklow for help with this.
1325
1326 Another Solaris compilation tweak, needed for Solaris
1327 2009.06. Thanks to Lee Essen for that.
1328
1329 Added extract packaging stuff from Lee Essen to
1330 contrib/Solaris10.
1331
1332 Increased the default limit on number of leases to 1000
1333 (from 150). This is mainly a defence against DoS attacks,
1334 and for the average "one for two class C networks"
1335 installation, IP address exhaustion does that just as
1336 well. Making the limit greater than the number of IP
1337 addresses available in such an installation removes a
1338 surprise which otherwise can catch people out.
1339
1340 Removed extraneous trailing space in the value of the
1341 DNSMASQ_TIME_REMAINING DNSMASQ_LEASE_LENGTH and
1342 DNSMASQ_LEASE_EXPIRES environment variables. Thanks to
1343 Gildas Le Nadan for spotting this.
1344
1345 Provide the network-id tags for a DHCP transaction to
1346 the lease-change script in the environment variable
1347 DNSMASQ_TAGS. A good suggestion from Gildas Le Nadan.
1348
1349 Add support for RFC3925 "Vendor-Identifying Vendor
1350 Options". The syntax looks like this:
1351 --dhcp-option=vi-encap:<enterprise number>, .........
1352
1353 Add support to --dhcp-match to allow matching against
1354 RFC3925 "Vendor-Identifying Vendor Classes". The syntax
1355 looks like this:
1356 --dhcp-match=tag,vi-encap<enterprise number>, <value>
1357
1358 Add some application specific code to assist in
1359 implementing the Broadband forum TR069 CPE-WAN
1360 specification. The details are in contrib/CPE-WAN/README
1361
1362 Increase the default DNS packet size limit to 4096, as
1363 recommended by RFC5625 section 4.4.3. This can be
1364 reconfigured using --edns-packet-max if needed. Thanks to
1365 Francis Dupont for pointing this out.
1366
8ef5ada2 1367 Rewrite query-ids even for TSIG signed packets, since
316e2730
SK
1368 this is allowed by RFC5625 section 4.5.
1369
1370 Use getopt_long by default on OS X. It has been supported
1371 since version 10.3.0. Thanks to Arek Dreyer for spotting
1372 this.
1373
1374 Added up-to-date startup configuration for MacOSX/launchd
1375 in contrib/MacOSX-launchd. Thanks to Arek Dreyer for
1376 providing this.
1377
1378 Fix link error when including Dbus but excluding DHCP.
1379 Thanks to Oschtan for the bug report.
1380
1381 Updated French translation. Thanks to Gildas Le Nadan.
1382
1383 Updated Polish translation. Thanks to Jan Psota.
1384
1385 Updated Spanish translation. Thanks to Chris Chatham.
1386
8ef5ada2
SK
1387 Fixed confusion about domains, when looking up DHCP hosts
1388 in /etc/hosts. This could cause spurious "Ignoring
1389 domain..." messages. Thanks to Fedor Kozhevnikov for
1390 finding and analysing the problem.
316e2730 1391
8ef5ada2 1392
1f15b81d
SK
1393version 2.51
1394 Add support for internationalised DNS. Non-ASCII characters
1395 in domain names found in /etc/hosts, /etc/ethers and
1396 /etc/dnsmasq.conf will be correctly handled by translation to
1397 punycode, as specified in RFC3490. This function is only
1398 available if dnsmasq is compiled with internationalisation
1399 support, and adds a dependency on GNU libidn. Without i18n
1400 support, dnsmasq continues to be compilable with just
1401 standard tools. Thanks to Yves Dorfsman for the
1402 suggestion.
1403
1404 Add two more environment variables for lease-change scripts:
1405 First, DNSMASQ_SUPPLIED_HOSTNAME; this is set to the hostname
1406 supplied by a client, even if the actual hostname used is
1407 over-ridden by dhcp-host or dhcp-ignore-names directives.
1408 Also DNSMASQ_RELAY_ADDRESS which gives the address of
1409 a DHCP relay, if used.
1410 Suggestions from Michael Rack.
1411
1412 Fix regression which broke echo of relay-agent
1413 options. Thanks to Michael Rack for spotting this.
1414
1415 Don't treat option 67 as being interchangeable with
1416 dhcp-boot parameters if it's specified as
1417 dhcp-option-force.
1418
1419 Make the code to call scripts on lease-change compile-time
1420 optional. It can be switched off by editing src/config.h
1421 or building with "make COPTS=-DNO_SCRIPT".
1422
1423 Make the TFTP server cope with filenames from Windows/DOS
1424 which use '\' as pathname separator. Thanks to Ralf for
1425 the patch.
1426
1427 Updated Polish translation. Thanks to Jan Psota.
1428
1429 Warn if an IP address is duplicated in /etc/ethers. Thanks
1430 to Felix Schwarz for pointing this out.
1431
1432 Teach --conf-dir to take an option list of file suffices
1433 which will be ignored when scanning the directory. Useful
1434 for backup files etc. Thanks to Helmut Hullen for the
1435 suggestion.
1436
1437 Add new DHCP option named tftpserver-address, which
1438 corresponds to the third argument of dhcp-boot. This
1439 allows the complete functionality of dhcp-boot to be
1440 replicated with dhcp-option. Useful when using
1441 dhcp-optsfile.
1442
1443 Test which upstream nameserver to use every 10 seconds
1444 or 50 queries and not just when a query times out and
1445 is retried. This should improve performance when there
1446 is a slow nameserver in the list. Thanks to Joe for the
1447 suggestion.
1448
1449 Don't do any PXE processing, even for clients with the
1450 correct vendorclass, unless at least one pxe-prompt or
1451 pxe-service option is given. This stops dnsmasq
1452 interfering with proxy PXE subsystems when it is just
1453 the DHCP server. Thanks to Spencer Clark for spotting this.
1454
1455 Limit the blocksize used for TFTP transfers to a value
1456 which avoids packet fragmentation, based on the MTU of the
1457 local interface. Many netboot ROMs can't cope with
1458 fragmented packets.
1459
1460 Honour dhcp-ignore configuration for PXE and proxy-PXE
1461 requests. Thanks to Niels Basjes for the bug report.
1462
1463 Updated French translation. Thanks to Gildas Le Nadan.
1464
1465
77e94da7 1466version 2.50
1f15b81d 1467 Fix security problem which allowed any host permitted to
77e94da7
SK
1468 do TFTP to possibly compromise dnsmasq by remote buffer
1469 overflow when TFTP enabled. Thanks to Core Security
1470 Technologies and Iván Arce, Pablo Hernán Jorge, Alejandro
1471 Pablo Rodriguez, Martín Coco, Alberto Soliño Testa and
1472 Pablo Annetta. This problem has Bugtraq id: 36121
1473 and CVE: 2009-2957
1474
1475 Fix a problem which allowed a malicious TFTP client to
1476 crash dnsmasq. Thanks to Steve Grubb at Red Hat for
1477 spotting this. This problem has Bugtraq id: 36120 and
1478 CVE: 2009-2958
1479
1480
03a97b61
SK
1481version 2.49
1482 Fix regression in 2.48 which disables the lease-change
1483 script. Thanks to Jose Luis Duran for spotting this.
1484
1485 Log TFTP "file not found" errors. These were not logged,
1486 since a normal PXELinux boot generates many of them, but
1487 the lack of the messages seems to be more confusing than
1488 routinely seeing them when there is no real error.
1489
1490 Update Spanish translation. Thanks to Chris Chatham.
1491
1492
7622fc06
SK
1493version 2.48
1494 Archived the extensive, backwards, changelog to
1495 CHANGELOG.archive. The current changelog now runs from
1496 version 2.43 and runs conventionally.
9e4abcb5 1497
7622fc06
SK
1498 Fixed bug which broke binding of servers to physical
1499 interfaces when interface names were longer than four
1500 characters. Thanks to MURASE Katsunori for the patch.
9e4abcb5 1501
7622fc06
SK
1502 Fixed netlink code to check that messages come from the
1503 correct source, and not another userspace process. Thanks
1504 to Steve Grubb for the patch.
9e4abcb5 1505
7622fc06
SK
1506 Maintainability drive: removed bug and missing feature
1507 workarounds for some old platforms. Solaris 9, OpenBSD
1508 older than 4.1, Glibc older than 2.2, Linux 2.2.x and
1509 DBus older than 1.1.x are no longer supported.
9e4abcb5 1510
7622fc06
SK
1511 Don't read included configuration files more than once:
1512 allows complex configuration structures without problems.
9e4abcb5 1513
7622fc06
SK
1514 Mark log messages from the various subsystems in dnsmasq:
1515 messages from the DHCP subsystem now have the ident string
1516 "dnsmasq-dhcp" and messages from TFTP have ident
1517 "dnsmasq-tftp". Thanks to Olaf Westrik for the patch.
9e4abcb5 1518
7622fc06
SK
1519 Fix possible infinite DHCP protocol loop when an IP
1520 address nailed to a hostname (not a MAC address) and a
1521 host sometimes provides the name, sometimes not.
9e4abcb5 1522
7622fc06
SK
1523 Allow --addn-hosts to take a directory: all the files
1524 in the directory are read. Thanks to Phil Cornelius for
1525 the suggestion.
9e4abcb5 1526
7622fc06 1527 Support --bridge-interface on all platforms, not just BSD.
1ab84e2f 1528
7622fc06
SK
1529 Added support for advanced PXE functions. It's now
1530 possible to define a prompt and menu options which will
1531 be displayed when a client PXE boots. It's also possible to
1532 hand-off booting to other boot servers. Proxy-DHCP, where
1533 dnsmasq just supplies the PXE information and another DHCP
1534 server does address allocation, is also allowed. See the
1535 --pxe-prompt and --pxe-service keywords. Thanks to
1536 Alkis Georgopoulos for the suggestion and Guilherme Moro
1537 and Michael Brown for assistance.
1538
1539 Improvements to DHCP logging. Thanks to Tom Metro for
1540 useful suggestions.
3be34541 1541
7622fc06
SK
1542 Add ability to build dnsmasq without DHCP support. To do
1543 this, edit src/config.h or build with
1544 "make COPTS=-DNO_DHCP". Thanks to Mahavir Jain for the patch.
36717eee 1545
7622fc06
SK
1546 Added --test command-line switch - syntax check
1547 configuration files only.
36717eee 1548
7622fc06 1549 Updated French translation. Thanks to Gildas Le Nadan.
fd9fa481 1550
3d8df260 1551
7622fc06
SK
1552version 2.47
1553 Updated French translation. Thanks to Gildas Le Nadan.
3d8df260 1554
7622fc06
SK
1555 Fixed interface enumeration code to work on NetBSD
1556 5.0. Thanks to Roy Marples for the patch.
3d8df260 1557
7622fc06
SK
1558 Updated config.h to use the same location for the lease
1559 file on NetBSD as the other *BSD variants. Also allow
1560 LEASEFILE and CONFFILE symbols to be overriden in CFLAGS.
3d8df260 1561
7622fc06
SK
1562 Handle duplicate address detection on IPv6 more
1563 intelligently. In IPv6, an interface can have an address
1564 which is not usable, because it is still undergoing DAD
1565 (such addresses are marked "tentative"). Attempting to
1566 bind to an address in this state returns an error,
1567 EADDRNOTAVAIL. Previously, on getting such an error,
1568 dnsmasq would silently abandon the address, and never
1569 listen on it. Now, it retries once per second for 20
1570 seconds before generating a fatal error. 20 seconds should
1571 be long enough for any DAD process to complete, but can be
1572 adjusted in src/config.h if necessary. Thanks to Martin
1573 Krafft for the bug report.
3d8df260 1574
7622fc06 1575 Add DBus introspection. Patch from Jeremy Laine.
b8187c80 1576
7622fc06
SK
1577 Update Dbus configuration file. Patch from Colin Walters.
1578 Fix for this bug:
1579 http://bugs.freedesktop.org/show_bug.cgi?id=18961
b8187c80 1580
7622fc06
SK
1581 Support arbitrarily encapsulated DHCP options, suggestion
1582 and initial patch from Samium Gromoff. This is useful for
1583 (eg) gPXE, which expect all its private options to be
1584 encapsulated inside a single option 175. So, eg,
b8187c80 1585
7622fc06
SK
1586 dhcp-option = encap:175, 190, "iscsi-client0"
1587 dhcp-option = encap:175, 191, "iscsi-client0-secret"
b8187c80 1588
7622fc06 1589 will provide iSCSI parameters to gPXE.
b8187c80 1590
7622fc06
SK
1591 Enhance --dhcp-match to allow testing of the contents of a
1592 client-sent option, as well as its presence. This
1593 application in mind for this is RFC 4578
1594 client-architecture specifiers, but it's generally useful.
1595 Joey Korkames suggested the enhancement.
b8187c80 1596
7622fc06
SK
1597 Move from using the IP_XMIT_IF ioctl to IP_BOUND_IF on
1598 OpenSolaris. Thanks to Bastian Machek for the heads-up.
b8187c80 1599
7622fc06
SK
1600 No longer complain about blank lines in
1601 /etc/ethers. Thanks to Jon Nelson for the patch.
b8187c80 1602
7622fc06
SK
1603 Fix binding of servers to physical devices, eg
1604 --server=/domain/1.2.3.4@eth0 which was broken from 2.43
1605 onwards unless --query-port=0 set. Thanks to Peter Naulls
cdeda28f
SK
1606 for the bug report.
1607
7622fc06
SK
1608 Reply to DHCPINFORM requests even when the supplied ciaddr
1609 doesn't fall in any dhcp-range. In this case it's not
1610 possible to supply a complete configuration, but
1611 individually-configured options (eg PAC) may be useful.
5aabfc78 1612
7622fc06
SK
1613 Allow the source address of an alias to be a range:
1614 --alias=192.168.0.0,10.0.0.0,255.255.255.0 maps the whole
1615 subnet 192.168.0.0->192.168.0.255 to 10.0.0.0->10.0.0.255,
1616 as before.
1617 --alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0
1618 maps only the 192.168.0.10->192.168.0.40 region. Thanks to
1619 Ib Uhrskov for the suggestion.
5aabfc78 1620
7622fc06
SK
1621 Don't dynamically allocate DHCP addresses which may break
1622 Windows. Addresses which end in .255 or .0 are broken in
1623 Windows even when using supernetting.
1624 --dhcp-range=192.168.0.1,192.168.1.254,255,255,254.0 means
1625 192.168.0.255 is a valid IP address, but not for Windows.
1626 See Microsoft KB281579. We therefore no longer allocate
1627 these addresses to avoid hard-to-diagnose problems.
5aabfc78 1628
7622fc06 1629 Update Polish translation. Thanks to Jan Psota.
5aabfc78 1630
7622fc06
SK
1631 Delete the PID-file when dnsmasq shuts down. Note that by
1632 this time, dnsmasq is normally not running as root, so
1633 this will fail if the PID-file is stored in a root-owned
1634 directory; such failure is silently ignored. To take
1635 advantage of this feature, the PID-file must be stored in a
1636 directory owned and write-able by the user running
1637 dnsmasq.
5aabfc78 1638
5aabfc78 1639
7622fc06
SK
1640version 2.46
1641 Allow --bootp-dynamic to take a netid tag, so that it may
1642 be selectively enabled. Thanks to Olaf Westrik for the
1643 suggestion.
5aabfc78 1644
7622fc06
SK
1645 Remove ISC-leasefile reading code. This has been
1646 deprecated for a long time, and last time I removed it, it
1647 ended up going back by request of one user. This time,
1648 it's gone for good; otherwise it would need to be
1649 re-worked to support multiple domains (see below).
5aabfc78 1650
7622fc06
SK
1651 Support DHCP clients in multiple DNS domains. This is a
1652 long-standing request. Clients are assigned to a domain
1653 based in their IP address.
5aabfc78 1654
7622fc06
SK
1655 Add --dhcp-fqdn flag, which changes behaviour if DNS names
1656 assigned to DHCP clients. When this is set, there must be
1657 a domain associated with each client, and only
1658 fully-qualified domain names are added to the DNS. The
1659 advantage is that the only the FQDN needs to be unique,
1660 so that two or more DHCP clients can share a hostname, as
1661 long as they are in different domains.
5aabfc78 1662
7622fc06
SK
1663 Set environment variable DNSMASQ_DOMAIN when invoking
1664 lease-change script. This may be useful information to
1665 have now that it's variable.
5aabfc78 1666
7622fc06
SK
1667 Tighten up data-checking code for DNS packet
1668 handling. Thanks to Steve Dodd who found certain illegal
1669 packets which could crash dnsmasq. No memory overwrite was
1670 possible, so this is not a security issue beyond the DoS
1671 potential.
824af85b 1672
7622fc06
SK
1673 Update example config dhcp option 47, the previous
1674 suggestion generated an illegal, zero-length,
1675 option. Thanks to Matthias Andree for finding this.
824af85b 1676
7622fc06
SK
1677 Rewrite hosts-file reading code to remove the limit of
1678 1024 characters per line. John C Meuser found this.
824af85b 1679
7622fc06
SK
1680 Create a net-id tag with the name of the interface on
1681 which the DHCP request was received.
824af85b 1682
7622fc06
SK
1683 Fixed minor memory leak in DBus code, thanks to Jeremy
1684 Laine for the patch.
824af85b 1685
7622fc06
SK
1686 Emit DBus signals as the DHCP lease database
1687 changes. Thanks to Jeremy Laine for the patch.
824af85b 1688
7622fc06
SK
1689 Allow for more that one MAC address in a dhcp-host
1690 line. This configuration tells dnsmasq that it's OK to
1691 abandon a DHCP lease of the fixed address to one MAC
1692 address, if another MAC address in the dhcp-host statement
1693 asks for an address. This is useful to give a fixed
1694 address to a host which has two network interfaces
1695 (say, a laptop with wired and wireless interfaces.)
1696 It's very important to ensure that only one interface
1697 at a time is up, since dnsmasq abandons the first lease
1698 and re-uses the address before the leased time has
1699 elapsed. John Gray suggested this.
824af85b 1700
7622fc06
SK
1701 Tweak the response to a DHCP request packet with a wrong
1702 server-id when --dhcp-authoritative is set; dnsmasq now
1703 returns a DHCPNAK, rather than silently ignoring the
1704 packet. Thanks to Chris Marget for spotting this
1705 improvement.
824af85b 1706
7622fc06
SK
1707 Add --cname option. This provides a limited alias
1708 function, usable for DHCP names. Thanks to AJ Weber for
1709 suggestions on this.
824af85b 1710
7622fc06
SK
1711 Updated contrib/webmin with latest version from Neil
1712 Fisher.
824af85b 1713
7622fc06 1714 Updated Polish translation. Thanks to Jan Psota.
824af85b 1715
7622fc06
SK
1716 Correct the text names for DHCP options 64 and 65 to be
1717 "nis+-domain" and "nis+-servers".
9e038946 1718
7622fc06 1719 Updated Spanish translation. Thanks to Chris Chatham.
9e038946 1720
7622fc06
SK
1721 Force re-reading of /etc/resolv.conf when an "interface
1722 up" event occurs.
9e038946 1723
824af85b 1724
7622fc06
SK
1725version 2.45
1726 Fix total DNS failure in release 2.44 unless --min-port
1727 specified. Thanks to Steven Barth and Grant Coady for
1728 bugreport. Also reject out-of-range port spec, which could
1729 break things too: suggestion from Gilles Espinasse.
824af85b 1730
9e038946 1731
7622fc06
SK
1732version 2.44
1733 Fix crash when unknown client attempts to renew a DHCP
1734 lease, problem introduced in version 2.43. Thanks to
1735 Carlos Carvalho for help chasing this down.
9e038946 1736
7622fc06
SK
1737 Fix potential crash when a host which doesn't have a lease
1738 does DHCPINFORM. Again introduced in 2.43. This bug has
1739 never been reported in the wild.
9e038946 1740
7622fc06
SK
1741 Fix crash in netlink code introduced in 2.43. Thanks to
1742 Jean Wolter for finding this.
9e038946 1743
7622fc06
SK
1744 Change implementation of min_port to work even if min-port
1745 is large.
9e038946 1746
7622fc06
SK
1747 Patch to enable compilation of latest Mac OS X. Thanks to
1748 David Gilman.
9e038946 1749
7622fc06 1750 Update Spanish translation. Thanks to Christopher Chatham.
1a6bca81
SK
1751
1752
1753version 2.43
1754 Updated Polish translation. Thanks to Jan Psota.
1755
1756 Flag errors when configuration options are repeated
1757 illegally.
1758
1759 Further tweaks for GNU/kFreeBSD
1760
1761 Add --no-wrap to msgmerge call - provides nicer .po file
1762 format.
1763
1764 Honour lease-time spec in dhcp-host lines even for
1765 BOOTP. The user is assumed to known what they are doing in
1766 this case. (Hosts without the time spec still get infinite
1767 leases for BOOTP, over-riding the default in the
1768 dhcp-range.) Thanks to Peter Katzmann for uncovering this.
1769
1770 Fix problem matching relay-agent ids. Thanks to Michael
1771 Rack for the bug report.
1772
1773 Add --naptr-record option. Suggestion from Johan
1774 Bergquist.
1775
1776 Implement RFC 5107 server-id-override DHCP relay agent
1777 option.
1778
1779 Apply patches from Stefan Kruger for compilation on
1780 Solaris 10 under Sun studio.
1781
1782 Yet more tweaking of Linux capability code, to suppress
1783 pointless wingeing from kernel 2.6.25 and above.
1784
1785 Improve error checking during startup. Previously, some
1786 errors which occurred during startup would be worked
1787 around, with dnsmasq still starting up. Some were logged,
1788 some silent. Now, they all cause a fatal error and dnsmasq
1789 terminates with a non-zero exit code. The errors are those
1790 associated with changing uid and gid, setting process
1791 capabilities and writing the pidfile. Thanks to Uwe
1792 Gansert and the Suse security team for pointing out
1793 this improvement, and Bill Reimers for good implementation
1794 suggestions.
1795
1796 Provide NO_LARGEFILE compile option to switch off largefile
1797 support when compiling against versions of uclibc which
1798 don't support it. Thanks to Stephane Billiart for the patch.
1799
1800 Implement random source ports for interactions with
1801 upstream nameservers. New spoofing attacks have been found
1802 against nameservers which do not do this, though it is not
1803 clear if dnsmasq is vulnerable, since to doesn't implement
1804 recursion. By default dnsmasq will now use a different
1805 source port (and socket) for each query it sends
1806 upstream. This behaviour can suppressed using the
1807 --query-port option, and the old default behaviour
1808 restored using --query-port=0. Explicit source-port
1809 specifications in --server configs are still honoured.
1810
1811 Replace the random number generator, for better
1812 security. On most BSD systems, dnsmasq uses the
1813 arc4random() RNG, which is secure, but on other platforms,
1814 it relied on the C-library RNG, which may be
1815 guessable and therefore allow spoofing. This release
1816 replaces the libc RNG with the SURF RNG, from Daniel
1817 J. Berstein's DJBDNS package.
1818
1819 Don't attempt to change user or group or set capabilities
1820 if dnsmasq is run as a non-root user. Without this, the
1821 change from soft to hard errors when these fail causes
1822 problems for non-root daemons listening on high
1823 ports. Thanks to Patrick McLean for spotting this.
1824
1825 Updated French translation. Thanks to Gildas Le Nadan.
1f15b81d
SK
1826
1827
1828version 2.42
1829 The changelog for version 2.42 and earlier is
1830 available in CHANGELOG.archive.