Annotation of embedaddon/dnsmasq/CHANGELOG, revision 1.1.1.1

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>