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