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