Annotation of embedaddon/dnsmasq/CHANGELOG, revision 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>