blob: f2e4977c6bcc877cda67a4741cb92ebdb4b6f436 [file] [log] [blame]
Simon Kelley28866e92011-02-14 20:19:14 +00001version 2.56
2 Add a patch to allow dnsmasq to get interface names right in a
3 Solaris zone. Thanks to Dj Padzensky for this.
4
5 Improve data-type parsing heuristics so that
6 --dhcp-option=option:domain-search,.
7 treats the value as a string and not an IP address.
8 Thanks to Clemens Fischer for spotting that.
9
10 Add IPv6 support to the TFTP server. Many thanks to Jan
11 'RedBully' Seiffert for the patches.
12
13 Log DNS queries at level LOG_INFO, rather then
14 LOG_DEBUG. This makes things consistent with DHCP
15 logging. Thanks to Adam Pribyl for spotting the problem.
16
17 Ensure that dnsmasq terminates cleanly when using
18 --syslog-async even if it cannot make a connection to the
19 syslogd.
20
21 Add --add-mac option. This is to support currently
22 experimental DNS filtering facilities. Thanks to Benjamin
23 Petrin for the orignal patch.
24
25 Fix bug which meant that tags were ignored in dhcp-range
26 configuration specifying PXE-proxy service. Thanks to
27 Cristiano Cumer for spotting this.
28
29 Raise an error if there is extra junk, not part of an
30 option, on the command line.
31
32 Flag a couple of log messages in cache.c as coming from
33 the DHCP subsystem. Thanks to Olaf Westrik for the patch.
34
35 Omit timestamps from logs when a) logging to stderr and
36 b) --keep-in-forground is set. The logging facility on the
37 other end of stderr can be assumned to supply them. Thanks
38 to John Hallam for the patch.
39
40 Don't complain about strings longer than 255 characters in
41 --txt-record, just split the long strings into 255
42 character chunks instead.
43
44 Fix crash on double-free. This bug can only happen when
45 dhcp-script is in use and then only in rare circumstances
46 triggered by high DHCP transaction rate and a slow
47 script. Thanks to Ferenc Wagner for finding the problem.
48
49 Only log that a file has been sent by TFTP after the
50 transfer has completed succesfully.
51
52 A good suggestion from Ferenc Wagner: extend
53 the --domain option to allow this sort of thing:
54 --domain=thekelleys.org.uk,192.168.0.0/24,local
55 which automatically creates
56 --local=/thekelleys.org.uk/
57 --local=/0.168.192.in-addr.arpa/
58
59 Tighten up syntax checking of hex contants in the config
60 file. Thanks to Fred Damen for spotting this.
61
62 Add dnsmasq logo/icon, contributed by Justin Swift. Many
63 thanks for that.
64
65 Never cache DNS replies which have the 'cd' bit set, or
66 which result from queries forwarded with the 'cd' bit
67 set. The 'cd' bit instructs a DNSSEC validating server
68 upstream to ignore signature failures and return replies
69 anyway. Without this change it's possible to pollute the
70 dnsmasq cache with bad data by making a query with the
71 'cd' bit set and subsequent queries would return this data
72 without its being marked as suspect. Thanks to Anders
73 Kaseorg for pointing out this problem.
74
75 Add --proxy-dnssec flag, for compliance with RFC
76 4035. Dnsmasq will now clear the 'ad' bit in answers returned
77 from upstream validating nameservers unless this option is
78 set.
79
80 Allow a filename of "-" for --conf-file to read
81 stdin. Suggestion from Timothy Redaelli.
82
83 Rotate the order of SRV records in replies, to provide
84 round-robin load balancing when all the priorities are
85 equal. Thanks to Peter McKinney for the suggestion.
86
87 Edit
88 contrib/MacOSX-launchd/uk.org.thekelleys.dnsmasq.plist
89 so that it doesn't log all queries to a file by
90 default. Thanks again to Peter McKinney.
91
92 By default, setting an IPv4 address for a domain but not
93 an IPv6 address causes dnsmasq to return
94 an NODATA reply for IPv6 (or vice-versa). So
95 --address=/google.com/1.2.3.4 stops IPv6 queries for
96 *google.com from being forwarded. Make it possible to
97 override this behaviour by defining the sematics if the
98 same domain appears in both --server and --address.
99 In that case, the --address has priority for the address
100 family in which is appears, but the --server has priority
101 of the address family which doesn't appear in --adddress
102 So:
103 --address=/google.com/1.2.3.4
104 --server=/google.com/#
105 will return 1.2.3.4 for IPv4 queries for *.google.com but
106 forward IPv6 queries to the normal upstream nameserver.
107 Similarly when setting an IPv6 address
108 only this will allow forwarding of IPv4 queries. Thanks to
109 William for pointing out the need for this.
110
111 Allow more than one --dhcp-optsfile and --dhcp-hostsfile
112 and make them understand directories as arguments in the
113 same way as --addn-hosts. Suggestion from John Hanks.
114
115 Ignore rebinding requests for leases we don't know
116 about. Rebind is broadcast, so we might get to overhear a
117 request meant for another DHCP server. NAKing this is
118 wrong. Thanks to Brad D'Hondt for assistance with this.
119
120 Fix cosmetic bug which produced strange output when
121 dumping cache statistics with some configurations. Thanks
122 to Fedor Kozhevnikov for spotting this.
123
124
Simon Kelleyc52e1892010-06-07 22:01:39 +0100125version 2.55
Simon Kelley28866e92011-02-14 20:19:14 +0000126 Fix crash when /etc/ethers is in use. Thanks to
127 Gianluigi Tiesi for finding this.
Simon Kelleyc52e1892010-06-07 22:01:39 +0100128
Simon Kelley28866e92011-02-14 20:19:14 +0000129 Fix crash in netlink_multicast(). Thanks to Arno Wald for
130 finding this one.
Simon Kelleyc52e1892010-06-07 22:01:39 +0100131
Simon Kelley28866e92011-02-14 20:19:14 +0000132 Allow the empty domain "." in dhcp domain-search (119)
133 options.
Simon Kelleyc52e1892010-06-07 22:01:39 +0100134
135
136version 2.54
Simon Kelley28866e92011-02-14 20:19:14 +0000137 There is no version 2.54 to avoid confusion with 2.53,
138 which incorrectly identifies itself as 2.54.
Simon Kelleyc52e1892010-06-07 22:01:39 +0100139
140
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100141version 2.53
142 Fix failure to compile on Debian/kFreeBSD. Thanks to
143 Axel Beckert and Petr Salinger.
144
145 Fix code to avoid scary strict-aliasing warnings
146 generated by gcc 4.4.
147
148 Added FAQ entry warning about DHCP failures with Vista
149 when firewalls block 255.255.255.255.
150
151 Fixed bug which caused bad things to happen if a
152 resolv.conf file which exists is subsequently removed.
153 Thanks to Nikolai Saoukh for the patch.
154
155 Rationalised the DHCP tag system. Every configuration item
156 which can set a tag does so by adding "set:<tag>" and
157 every configuration item which is conditional on a tag is
158 made so by "tag:<tag>". The NOT operator changes to '!',
159 which is a bit more intuitive too. Dhcp-host directives
160 can set more than one tag now. The old '#' NOT,
161 "net:" prefix and no-prefixes are still honoured, so
162 no existing config file needs to be changed, but
163 the documentation and new-style config files should be
164 much less confusing.
165
166 Added --tag-if to allow boolean operations on tags.
167 This allows complicated logic to be clearer and more
168 general. A great suggestion from Richard Voigt.
169
170 Add broadcast/unicast information to DHCP logging.
171
172 Allow --dhcp-broadcast to be unconditional.
173
174 Fixed incorrect behaviour with NOT <tag> conditionals in
175 dhcp-options. Thanks to Max Turkewitz for assistance
176 finding this.
177
178 If we send vendor-class encapsulated options based on the
179 vendor-class supplied by the client, and no explicit
180 vendor-class option is given, echo back the vendor-class
181 from the client.
182
183 Fix bug which stopped dnsmasq from matching both a
184 circuitid and a remoteid. Thanks to Ignacio Bravo for
185 finding this.
186
187 Add --dhcp-proxy, which makes it possible to configure
188 dnsmasq to use a DHCP relay agent as a full proxy, with
189 all DHCP messages passing through the proxy. This is
190 useful if the relay adds extra information to the packets
191 it forwards, but cannot be configured with the RFC 5107
192 server-override option.
193
194 Added interface:<iface name> part to dhcp-range. The
195 semantics of this are very odd at first sight, but it
196 allows a single line of the form
197 dhcp-range=interface:virt0,192.168.0.4,192.168.0.200
198 to be added to dnsmasq configuration which then supplies
199 DHCP and DNS services to that interface, without affecting
200 what services are supplied to other interfaces and
201 irrespective of the existance or lack of
202 interface=<interface>
203 lines elsewhere in the dnsmasq configuration. The idea is
204 that such a line can be added automatically by libvirt
205 or equivalent systems, without disturbing any manual
206 configuration.
207
208 Similarly to the above, allow --enable-tftp=<interface>
209
210 Allow a TFTP root to be set separately for requests via
211 different interfaces, --tftp-root=<path>,<interface>
212
213 Correctly handle and log clashes between CNAMES and
214 DNS names being given to DHCP leases. This fixes a bug
215 which caused nonsense IP addresses to be logged. Thanks to
216 Sergei Zhirikov for finding and analysing the problem.
217
218 Tweak flush_log so as to avoid leaving the log
219 file in non-blocking mode. O_NONBLOCK is a property of the
220 file, not the process/descriptor.
221
222 Fix contrib/Solaris10/create_package
223 (/usr/man -> /usr/share/man) Thanks to Vita Batrla.
224
225 Fix a problem where, if a client got a lease, then went
226 to another subnet and got another lease, then moved back,
227 it couldn't resume the old lease, but would instead get
228 a new address. Thanks to Leonardo Rodrigues for spotting
229 this and testing the fix.
230
231 Fix weird bug which sometimes omitted certain characters
232 from the start of quoted strings in dhcp-options. Thanks
233 to Dayton Turner for spotting the problem.
234
235 Add facility to redirect some domains to the standard
236 upstream servers: this allows something like
237 --server=/google.com/1.2.3.4 --server=/www.google.com/#
238 which will send queries for *.google.com to 1.2.3.4,
239 except *www.google.com which will be forwarded as usual.
240 Thanks to AJ Weber for prompting this addition.
241
242 Improve the hash-algorithm used to generate IP addresses
243 from MAC addresses during initial DHCP address
244 allocation. This improves performance when large numbers
245 of hosts with similar MAC addresses all try and get an IP
246 address at the same time. Thanks to Paul Smith for his
247 work on this.
248
249 Tweak DHCP code so that --bridge-interface can be used to
250 select which IP alias of an interface should be used for
251 DHCP purposes on Linux. If eth0 has an alias eth0:dhcp
252 then adding --bridge-interface=eth0:dhcp,eth0 will use
253 the address of eth0:dhcp to determine the correct subnet
254 for DHCP address allocation. Thanks to Pawel Golaszewski
255 for prompting this and Eric Cooper for further testing.
256
257 Add --dhcp-generate-names. Suggestion by Ferenc Wagner.
258
259 Tweak DNS server selection algorithm when there is more
260 than one server available for a domain, eg.
261 --server=/mydomain/1.1.1.1
262 --server=/mydomain/2.2.2.2
263 Thanks to Alberto Cuesta-Canada for spotting a weakness
264 here.
265
266 Add --max-ttl. Thanks to Fredrik Ringertz for the patch.
267
268 Allow --log-facility=- to force all logging to
269 stderr. Suggestion from Clemens Fischer.
270
271 Fix regression which caused configuration like
272 --address=/.domain.com/1.2.3.4 to be rejected. The dot to the
273 left of the domain has been implied and not required for a
274 long time, but it should be accepted for backward
275 compatibility. Thanks to Andrew Burcin for spotting this.
276
277 Add --rebind-domain-ok and --rebind-localhost-ok.
278 Suggestion from Clemens Fischer.
279
280 Log replies to queries of type TXT, when --log-queries
281 is set.
282
283 Fix compiler warnings when compiled with -DNO_DHCP. Thanks
284 to Shantanu Gadgil for the patch.
285
286 Updated French translation. Thanks to Gildas Le Nadan.
287
288 Updated Polish translation. Thanks to Jan Psota.
289
290 Updated German translation. Thanks to Matthias Andree.
291
292 Added contrib/static-arp, thanks to Darren Hoo.
293
294 Fix corruption of the domain when a name from /etc/hosts
295 overrides one supplied by a DHCP client. Thanks to Fedor
296 Kozhevnikov for spotting the problem.
297
298 Updated Spanish translation. Thanks to Chris Chatham.
299
300
Simon Kelley316e2732010-01-22 20:16:09 +0000301version 2.52
302 Work around a Linux kernel bug which insists that the
303 length of the option passed to setsockopt must be at least
304 sizeof(int) bytes, even if we're calling SO_BINDTODEVICE
305 and the device name is "lo". Note that this is fixed
306 in kernel 2.6.31, but the workaround is harmless and
307 allows earlier kernels to be used. Also fix dnsmasq
308 bug which reported the wrong address when this failed.
309 Thanks to Fedor for finding this.
310
311 The API for IPv6 PKTINFO changed around Linux kernel
312 2.6.14. Workaround the case where dnsmasq is compiled
313 against newer headers, but then run on an old kernel:
314 necessary for some *WRT distros.
315
316 Re-read the set of network interfaces when re-loading
317 /etc/resolv.conf if --bind-interfaces is not set. This
318 handles the case that loopback interfaces do not exist
319 when dnsmasq is first started.
320
321 Tweak the PXE code to support port 4011. This should
322 reduce broadcasts and make things more reliable when other
323 servers are around. It also improves inter-operability
324 with certain clients.
325
326 Make a pxe-service configuration with no filename or boot
327 service type legal: this does a local boot. eg.
328 pxe-service=x86PC, "Local boot"
329
330 Be more conservative in detecting "A for A"
331 queries. Dnsmasq checks if the name in a type=A query looks
332 like a dotted-quad IP address and answers the query itself
333 if so, rather than forwarding it. Previously dnsmasq
334 relied in the library function inet_addr() to convert
335 addresses, and that will accept some things which are
336 confusing in this context, like 1.2.3 or even just
337 1234. Now we only do A for A processing for four decimal
338 numbers delimited by dots.
339
340 A couple of tweaks to fix compilation on Solaris. Thanks
341 to Joel Macklow for help with this.
342
343 Another Solaris compilation tweak, needed for Solaris
344 2009.06. Thanks to Lee Essen for that.
345
346 Added extract packaging stuff from Lee Essen to
347 contrib/Solaris10.
348
349 Increased the default limit on number of leases to 1000
350 (from 150). This is mainly a defence against DoS attacks,
351 and for the average "one for two class C networks"
352 installation, IP address exhaustion does that just as
353 well. Making the limit greater than the number of IP
354 addresses available in such an installation removes a
355 surprise which otherwise can catch people out.
356
357 Removed extraneous trailing space in the value of the
358 DNSMASQ_TIME_REMAINING DNSMASQ_LEASE_LENGTH and
359 DNSMASQ_LEASE_EXPIRES environment variables. Thanks to
360 Gildas Le Nadan for spotting this.
361
362 Provide the network-id tags for a DHCP transaction to
363 the lease-change script in the environment variable
364 DNSMASQ_TAGS. A good suggestion from Gildas Le Nadan.
365
366 Add support for RFC3925 "Vendor-Identifying Vendor
367 Options". The syntax looks like this:
368 --dhcp-option=vi-encap:<enterprise number>, .........
369
370 Add support to --dhcp-match to allow matching against
371 RFC3925 "Vendor-Identifying Vendor Classes". The syntax
372 looks like this:
373 --dhcp-match=tag,vi-encap<enterprise number>, <value>
374
375 Add some application specific code to assist in
376 implementing the Broadband forum TR069 CPE-WAN
377 specification. The details are in contrib/CPE-WAN/README
378
379 Increase the default DNS packet size limit to 4096, as
380 recommended by RFC5625 section 4.4.3. This can be
381 reconfigured using --edns-packet-max if needed. Thanks to
382 Francis Dupont for pointing this out.
383
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100384 Rewrite query-ids even for TSIG signed packets, since
Simon Kelley316e2732010-01-22 20:16:09 +0000385 this is allowed by RFC5625 section 4.5.
386
387 Use getopt_long by default on OS X. It has been supported
388 since version 10.3.0. Thanks to Arek Dreyer for spotting
389 this.
390
391 Added up-to-date startup configuration for MacOSX/launchd
392 in contrib/MacOSX-launchd. Thanks to Arek Dreyer for
393 providing this.
394
395 Fix link error when including Dbus but excluding DHCP.
396 Thanks to Oschtan for the bug report.
397
398 Updated French translation. Thanks to Gildas Le Nadan.
399
400 Updated Polish translation. Thanks to Jan Psota.
401
402 Updated Spanish translation. Thanks to Chris Chatham.
403
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100404 Fixed confusion about domains, when looking up DHCP hosts
405 in /etc/hosts. This could cause spurious "Ignoring
406 domain..." messages. Thanks to Fedor Kozhevnikov for
407 finding and analysing the problem.
Simon Kelley316e2732010-01-22 20:16:09 +0000408
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100409
Simon Kelley1f15b812009-10-13 17:49:32 +0100410version 2.51
411 Add support for internationalised DNS. Non-ASCII characters
412 in domain names found in /etc/hosts, /etc/ethers and
413 /etc/dnsmasq.conf will be correctly handled by translation to
414 punycode, as specified in RFC3490. This function is only
415 available if dnsmasq is compiled with internationalisation
416 support, and adds a dependency on GNU libidn. Without i18n
417 support, dnsmasq continues to be compilable with just
418 standard tools. Thanks to Yves Dorfsman for the
419 suggestion.
420
421 Add two more environment variables for lease-change scripts:
422 First, DNSMASQ_SUPPLIED_HOSTNAME; this is set to the hostname
423 supplied by a client, even if the actual hostname used is
424 over-ridden by dhcp-host or dhcp-ignore-names directives.
425 Also DNSMASQ_RELAY_ADDRESS which gives the address of
426 a DHCP relay, if used.
427 Suggestions from Michael Rack.
428
429 Fix regression which broke echo of relay-agent
430 options. Thanks to Michael Rack for spotting this.
431
432 Don't treat option 67 as being interchangeable with
433 dhcp-boot parameters if it's specified as
434 dhcp-option-force.
435
436 Make the code to call scripts on lease-change compile-time
437 optional. It can be switched off by editing src/config.h
438 or building with "make COPTS=-DNO_SCRIPT".
439
440 Make the TFTP server cope with filenames from Windows/DOS
441 which use '\' as pathname separator. Thanks to Ralf for
442 the patch.
443
444 Updated Polish translation. Thanks to Jan Psota.
445
446 Warn if an IP address is duplicated in /etc/ethers. Thanks
447 to Felix Schwarz for pointing this out.
448
449 Teach --conf-dir to take an option list of file suffices
450 which will be ignored when scanning the directory. Useful
451 for backup files etc. Thanks to Helmut Hullen for the
452 suggestion.
453
454 Add new DHCP option named tftpserver-address, which
455 corresponds to the third argument of dhcp-boot. This
456 allows the complete functionality of dhcp-boot to be
457 replicated with dhcp-option. Useful when using
458 dhcp-optsfile.
459
460 Test which upstream nameserver to use every 10 seconds
461 or 50 queries and not just when a query times out and
462 is retried. This should improve performance when there
463 is a slow nameserver in the list. Thanks to Joe for the
464 suggestion.
465
466 Don't do any PXE processing, even for clients with the
467 correct vendorclass, unless at least one pxe-prompt or
468 pxe-service option is given. This stops dnsmasq
469 interfering with proxy PXE subsystems when it is just
470 the DHCP server. Thanks to Spencer Clark for spotting this.
471
472 Limit the blocksize used for TFTP transfers to a value
473 which avoids packet fragmentation, based on the MTU of the
474 local interface. Many netboot ROMs can't cope with
475 fragmented packets.
476
477 Honour dhcp-ignore configuration for PXE and proxy-PXE
478 requests. Thanks to Niels Basjes for the bug report.
479
480 Updated French translation. Thanks to Gildas Le Nadan.
481
482
Simon Kelley77e94da2009-08-31 17:32:17 +0100483version 2.50
Simon Kelley1f15b812009-10-13 17:49:32 +0100484 Fix security problem which allowed any host permitted to
Simon Kelley77e94da2009-08-31 17:32:17 +0100485 do TFTP to possibly compromise dnsmasq by remote buffer
486 overflow when TFTP enabled. Thanks to Core Security
487 Technologies and Iván Arce, Pablo Hernán Jorge, Alejandro
488 Pablo Rodriguez, Martín Coco, Alberto Soliño Testa and
489 Pablo Annetta. This problem has Bugtraq id: 36121
490 and CVE: 2009-2957
491
492 Fix a problem which allowed a malicious TFTP client to
493 crash dnsmasq. Thanks to Steve Grubb at Red Hat for
494 spotting this. This problem has Bugtraq id: 36120 and
495 CVE: 2009-2958
496
497
Simon Kelley03a97b62009-06-10 20:55:49 +0100498version 2.49
499 Fix regression in 2.48 which disables the lease-change
500 script. Thanks to Jose Luis Duran for spotting this.
501
502 Log TFTP "file not found" errors. These were not logged,
503 since a normal PXELinux boot generates many of them, but
504 the lack of the messages seems to be more confusing than
505 routinely seeing them when there is no real error.
506
507 Update Spanish translation. Thanks to Chris Chatham.
508
509
Simon Kelley7622fc02009-06-04 20:32:05 +0100510version 2.48
511 Archived the extensive, backwards, changelog to
512 CHANGELOG.archive. The current changelog now runs from
513 version 2.43 and runs conventionally.
Simon Kelley9e4abcb2004-01-22 19:47:41 +0000514
Simon Kelley7622fc02009-06-04 20:32:05 +0100515 Fixed bug which broke binding of servers to physical
516 interfaces when interface names were longer than four
517 characters. Thanks to MURASE Katsunori for the patch.
Simon Kelley9e4abcb2004-01-22 19:47:41 +0000518
Simon Kelley7622fc02009-06-04 20:32:05 +0100519 Fixed netlink code to check that messages come from the
520 correct source, and not another userspace process. Thanks
521 to Steve Grubb for the patch.
Simon Kelley9e4abcb2004-01-22 19:47:41 +0000522
Simon Kelley7622fc02009-06-04 20:32:05 +0100523 Maintainability drive: removed bug and missing feature
524 workarounds for some old platforms. Solaris 9, OpenBSD
525 older than 4.1, Glibc older than 2.2, Linux 2.2.x and
526 DBus older than 1.1.x are no longer supported.
Simon Kelley9e4abcb2004-01-22 19:47:41 +0000527
Simon Kelley7622fc02009-06-04 20:32:05 +0100528 Don't read included configuration files more than once:
529 allows complex configuration structures without problems.
Simon Kelley9e4abcb2004-01-22 19:47:41 +0000530
Simon Kelley7622fc02009-06-04 20:32:05 +0100531 Mark log messages from the various subsystems in dnsmasq:
532 messages from the DHCP subsystem now have the ident string
533 "dnsmasq-dhcp" and messages from TFTP have ident
534 "dnsmasq-tftp". Thanks to Olaf Westrik for the patch.
Simon Kelley9e4abcb2004-01-22 19:47:41 +0000535
Simon Kelley7622fc02009-06-04 20:32:05 +0100536 Fix possible infinite DHCP protocol loop when an IP
537 address nailed to a hostname (not a MAC address) and a
538 host sometimes provides the name, sometimes not.
Simon Kelley9e4abcb2004-01-22 19:47:41 +0000539
Simon Kelley7622fc02009-06-04 20:32:05 +0100540 Allow --addn-hosts to take a directory: all the files
541 in the directory are read. Thanks to Phil Cornelius for
542 the suggestion.
Simon Kelley9e4abcb2004-01-22 19:47:41 +0000543
Simon Kelley7622fc02009-06-04 20:32:05 +0100544 Support --bridge-interface on all platforms, not just BSD.
Simon Kelley1ab84e22004-01-29 16:48:35 +0000545
Simon Kelley7622fc02009-06-04 20:32:05 +0100546 Added support for advanced PXE functions. It's now
547 possible to define a prompt and menu options which will
548 be displayed when a client PXE boots. It's also possible to
549 hand-off booting to other boot servers. Proxy-DHCP, where
550 dnsmasq just supplies the PXE information and another DHCP
551 server does address allocation, is also allowed. See the
552 --pxe-prompt and --pxe-service keywords. Thanks to
553 Alkis Georgopoulos for the suggestion and Guilherme Moro
554 and Michael Brown for assistance.
Simon Kelley1ab84e22004-01-29 16:48:35 +0000555
Simon Kelley7622fc02009-06-04 20:32:05 +0100556 Improvements to DHCP logging. Thanks to Tom Metro for
557 useful suggestions.
558
559 Add ability to build dnsmasq without DHCP support. To do
560 this, edit src/config.h or build with
561 "make COPTS=-DNO_DHCP". Thanks to Mahavir Jain for the patch.
562
563 Added --test command-line switch - syntax check
564 configuration files only.
Simon Kelley33820b72004-04-03 21:10:00 +0100565
Simon Kelley7622fc02009-06-04 20:32:05 +0100566 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley9009d742008-11-14 20:04:27 +0000567
Simon Kelley73a08a22009-02-05 20:28:08 +0000568
569version 2.47
570 Updated French translation. Thanks to Gildas Le Nadan.
571
572 Fixed interface enumeration code to work on NetBSD
573 5.0. Thanks to Roy Marples for the patch.
574
575 Updated config.h to use the same location for the lease
576 file on NetBSD as the other *BSD variants. Also allow
577 LEASEFILE and CONFFILE symbols to be overriden in CFLAGS.
578
579 Handle duplicate address detection on IPv6 more
580 intelligently. In IPv6, an interface can have an address
581 which is not usable, because it is still undergoing DAD
582 (such addresses are marked "tentative"). Attempting to
583 bind to an address in this state returns an error,
584 EADDRNOTAVAIL. Previously, on getting such an error,
585 dnsmasq would silently abandon the address, and never
586 listen on it. Now, it retries once per second for 20
587 seconds before generating a fatal error. 20 seconds should
588 be long enough for any DAD process to complete, but can be
589 adjusted in src/config.h if necessary. Thanks to Martin
590 Krafft for the bug report.
591
592 Add DBus introspection. Patch from Jeremy Laine.
593
594 Update Dbus configuration file. Patch from Colin Walters.
595 Fix for this bug:
596 http://bugs.freedesktop.org/show_bug.cgi?id=18961
597
598 Support arbitrarily encapsulated DHCP options, suggestion
599 and initial patch from Samium Gromoff. This is useful for
600 (eg) gPXE, which expect all its private options to be
601 encapsulated inside a single option 175. So, eg,
602
603 dhcp-option = encap:175, 190, "iscsi-client0"
604 dhcp-option = encap:175, 191, "iscsi-client0-secret"
605
606 will provide iSCSI parameters to gPXE.
607
608 Enhance --dhcp-match to allow testing of the contents of a
609 client-sent option, as well as its presence. This
610 application in mind for this is RFC 4578
611 client-architecture specifiers, but it's generally useful.
612 Joey Korkames suggested the enhancement.
613
614 Move from using the IP_XMIT_IF ioctl to IP_BOUND_IF on
615 OpenSolaris. Thanks to Bastian Machek for the heads-up.
616
617 No longer complain about blank lines in
618 /etc/ethers. Thanks to Jon Nelson for the patch.
619
620 Fix binding of servers to physical devices, eg
621 --server=/domain/1.2.3.4@eth0 which was broken from 2.43
622 onwards unless --query-port=0 set. Thanks to Peter Naulls
623 for the bug report.
624
625 Reply to DHCPINFORM requests even when the supplied ciaddr
626 doesn't fall in any dhcp-range. In this case it's not
627 possible to supply a complete configuration, but
628 individually-configured options (eg PAC) may be useful.
629
630 Allow the source address of an alias to be a range:
631 --alias=192.168.0.0,10.0.0.0,255.255.255.0 maps the whole
632 subnet 192.168.0.0->192.168.0.255 to 10.0.0.0->10.0.0.255,
633 as before.
634 --alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0
635 maps only the 192.168.0.10->192.168.0.40 region. Thanks to
636 Ib Uhrskov for the suggestion.
637
638 Don't dynamically allocate DHCP addresses which may break
639 Windows. Addresses which end in .255 or .0 are broken in
640 Windows even when using supernetting.
641 --dhcp-range=192.168.0.1,192.168.1.254,255,255,254.0 means
642 192.168.0.255 is a valid IP address, but not for Windows.
643 See Microsoft KB281579. We therefore no longer allocate
644 these addresses to avoid hard-to-diagnose problems.
645
646 Update Polish translation. Thanks to Jan Psota.
647
648 Delete the PID-file when dnsmasq shuts down. Note that by
649 this time, dnsmasq is normally not running as root, so
650 this will fail if the PID-file is stored in a root-owned
651 directory; such failure is silently ignored. To take
652 advantage of this feature, the PID-file must be stored in a
653 directory owned and write-able by the user running
654 dnsmasq.
Simon Kelley7622fc02009-06-04 20:32:05 +0100655
656
657version 2.46
658 Allow --bootp-dynamic to take a netid tag, so that it may
659 be selectively enabled. Thanks to Olaf Westrik for the
660 suggestion.
661
662 Remove ISC-leasefile reading code. This has been
663 deprecated for a long time, and last time I removed it, it
664 ended up going back by request of one user. This time,
665 it's gone for good; otherwise it would need to be
666 re-worked to support multiple domains (see below).
667
668 Support DHCP clients in multiple DNS domains. This is a
669 long-standing request. Clients are assigned to a domain
670 based in their IP address.
671
672 Add --dhcp-fqdn flag, which changes behaviour if DNS names
673 assigned to DHCP clients. When this is set, there must be
674 a domain associated with each client, and only
675 fully-qualified domain names are added to the DNS. The
676 advantage is that the only the FQDN needs to be unique,
677 so that two or more DHCP clients can share a hostname, as
678 long as they are in different domains.
679
680 Set environment variable DNSMASQ_DOMAIN when invoking
681 lease-change script. This may be useful information to
682 have now that it's variable.
683
684 Tighten up data-checking code for DNS packet
685 handling. Thanks to Steve Dodd who found certain illegal
686 packets which could crash dnsmasq. No memory overwrite was
687 possible, so this is not a security issue beyond the DoS
688 potential.
689
690 Update example config dhcp option 47, the previous
691 suggestion generated an illegal, zero-length,
692 option. Thanks to Matthias Andree for finding this.
693
694 Rewrite hosts-file reading code to remove the limit of
695 1024 characters per line. John C Meuser found this.
696
697 Create a net-id tag with the name of the interface on
698 which the DHCP request was received.
699
700 Fixed minor memory leak in DBus code, thanks to Jeremy
701 Laine for the patch.
702
703 Emit DBus signals as the DHCP lease database
704 changes. Thanks to Jeremy Laine for the patch.
705
706 Allow for more that one MAC address in a dhcp-host
707 line. This configuration tells dnsmasq that it's OK to
708 abandon a DHCP lease of the fixed address to one MAC
709 address, if another MAC address in the dhcp-host statement
710 asks for an address. This is useful to give a fixed
711 address to a host which has two network interfaces
712 (say, a laptop with wired and wireless interfaces.)
713 It's very important to ensure that only one interface
714 at a time is up, since dnsmasq abandons the first lease
715 and re-uses the address before the leased time has
716 elapsed. John Gray suggested this.
717
718 Tweak the response to a DHCP request packet with a wrong
719 server-id when --dhcp-authoritative is set; dnsmasq now
720 returns a DHCPNAK, rather than silently ignoring the
721 packet. Thanks to Chris Marget for spotting this
722 improvement.
723
724 Add --cname option. This provides a limited alias
725 function, usable for DHCP names. Thanks to AJ Weber for
726 suggestions on this.
727
728 Updated contrib/webmin with latest version from Neil
729 Fisher.
730
731 Updated Polish translation. Thanks to Jan Psota.
732
733 Correct the text names for DHCP options 64 and 65 to be
734 "nis+-domain" and "nis+-servers".
735
736 Updated Spanish translation. Thanks to Chris Chatham.
737
738 Force re-reading of /etc/resolv.conf when an "interface
739 up" event occurs.
740
741
742version 2.45
743 Fix total DNS failure in release 2.44 unless --min-port
744 specified. Thanks to Steven Barth and Grant Coady for
745 bugreport. Also reject out-of-range port spec, which could
746 break things too: suggestion from Gilles Espinasse.
747
748
749version 2.44
750 Fix crash when unknown client attempts to renew a DHCP
751 lease, problem introduced in version 2.43. Thanks to
752 Carlos Carvalho for help chasing this down.
753
754 Fix potential crash when a host which doesn't have a lease
755 does DHCPINFORM. Again introduced in 2.43. This bug has
756 never been reported in the wild.
757
758 Fix crash in netlink code introduced in 2.43. Thanks to
759 Jean Wolter for finding this.
760
761 Change implementation of min_port to work even if min-port
762 is large.
763
764 Patch to enable compilation of latest Mac OS X. Thanks to
765 David Gilman.
766
767 Update Spanish translation. Thanks to Christopher Chatham.
768
769
770version 2.43
771 Updated Polish translation. Thanks to Jan Psota.
772
773 Flag errors when configuration options are repeated
774 illegally.
775
776 Further tweaks for GNU/kFreeBSD
777
778 Add --no-wrap to msgmerge call - provides nicer .po file
779 format.
780
781 Honour lease-time spec in dhcp-host lines even for
782 BOOTP. The user is assumed to known what they are doing in
783 this case. (Hosts without the time spec still get infinite
784 leases for BOOTP, over-riding the default in the
785 dhcp-range.) Thanks to Peter Katzmann for uncovering this.
786
787 Fix problem matching relay-agent ids. Thanks to Michael
788 Rack for the bug report.
789
790 Add --naptr-record option. Suggestion from Johan
791 Bergquist.
792
793 Implement RFC 5107 server-id-override DHCP relay agent
794 option.
795
796 Apply patches from Stefan Kruger for compilation on
797 Solaris 10 under Sun studio.
798
799 Yet more tweaking of Linux capability code, to suppress
800 pointless wingeing from kernel 2.6.25 and above.
801
802 Improve error checking during startup. Previously, some
803 errors which occurred during startup would be worked
804 around, with dnsmasq still starting up. Some were logged,
805 some silent. Now, they all cause a fatal error and dnsmasq
806 terminates with a non-zero exit code. The errors are those
807 associated with changing uid and gid, setting process
808 capabilities and writing the pidfile. Thanks to Uwe
809 Gansert and the Suse security team for pointing out
810 this improvement, and Bill Reimers for good implementation
811 suggestions.
812
813 Provide NO_LARGEFILE compile option to switch off largefile
814 support when compiling against versions of uclibc which
815 don't support it. Thanks to Stephane Billiart for the patch.
816
817 Implement random source ports for interactions with
818 upstream nameservers. New spoofing attacks have been found
819 against nameservers which do not do this, though it is not
820 clear if dnsmasq is vulnerable, since to doesn't implement
821 recursion. By default dnsmasq will now use a different
822 source port (and socket) for each query it sends
823 upstream. This behaviour can suppressed using the
824 --query-port option, and the old default behaviour
825 restored using --query-port=0. Explicit source-port
826 specifications in --server configs are still honoured.
827
828 Replace the random number generator, for better
829 security. On most BSD systems, dnsmasq uses the
830 arc4random() RNG, which is secure, but on other platforms,
831 it relied on the C-library RNG, which may be
832 guessable and therefore allow spoofing. This release
833 replaces the libc RNG with the SURF RNG, from Daniel
834 J. Berstein's DJBDNS package.
835
836 Don't attempt to change user or group or set capabilities
837 if dnsmasq is run as a non-root user. Without this, the
838 change from soft to hard errors when these fail causes
839 problems for non-root daemons listening on high
840 ports. Thanks to Patrick McLean for spotting this.
841
842 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley1f15b812009-10-13 17:49:32 +0100843
844
845version 2.42
846 The changelog for version 2.42 and earlier is
847 available in CHANGELOG.archive.