Annotation of embedaddon/dnsmasq/CHANGELOG, revision 1.1.1.4

1.1.1.4 ! misho       1: version 2.83
        !             2:        Use the values of --min-port and --max-port in outgoing
        !             3:        TCP connections to upstream DNS servers.
        !             4: 
        !             5:        Fix a remote buffer overflow problem in the DNSSEC code. Any
        !             6:        dnsmasq with DNSSEC compiled in and enabled is vulnerable to this,
        !             7:        referenced by CVE-2020-25681, CVE-2020-25682, CVE-2020-25683
        !             8:        CVE-2020-25687.
        !             9: 
        !            10:        Be sure to only accept UDP DNS query replies at the address
        !            11:        from which the query was originated. This keeps as much entropy
        !            12:        in the {query-ID, random-port} tuple as possible, to help defeat
        !            13:        cache poisoning attacks. Refer: CVE-2020-25684.
        !            14: 
        !            15:        Use the SHA-256 hash function to verify that DNS answers
        !            16:        received are for the questions originally asked. This replaces
        !            17:        the slightly insecure SHA-1 (when compiled with DNSSEC) or
        !            18:        the very insecure CRC32 (otherwise). Refer: CVE-2020-25685.
        !            19: 
        !            20:        Handle multiple identical near simultaneous DNS queries better.
        !            21:        Previously, such queries would all be forwarded
        !            22:        independently. This is, in theory, inefficent but in practise
        !            23:        not a problem, _except_ that is means that an answer for any
        !            24:        of the forwarded queries will be accepted and cached.
        !            25:        An attacker can send a query multiple times, and for each repeat,
        !            26:        another {port, ID} becomes capable of accepting the answer he is
        !            27:        sending in the blind, to random IDs and ports. The chance of a
        !            28:        succesful attack is therefore multiplied by the number of repeats
        !            29:        of the query. The new behaviour detects repeated queries and
        !            30:        merely stores the clients sending repeats so that when the
        !            31:        first query completes, the answer can be sent to all the
        !            32:        clients who asked. Refer: CVE-2020-25686.
        !            33:        
1.1.1.3   misho      34: 
1.1.1.4 ! misho      35: version 2.82
        !            36:        Improve behaviour in the face of network interfaces which come
        !            37:        and go and change index. Thanks to Petr Mensik for the patch.
1.1.1.3   misho      38: 
1.1.1.4 ! misho      39:        Convert hard startup failure on NETLINK_NO_ENOBUFS under qemu-user
        !            40:        to a warning.
1.1.1.3   misho      41: 
1.1.1.4 ! misho      42:        Allow IPv6 addresses ofthe form [::ffff:1.2.3.4] in --dhcp-option.
1.1.1.3   misho      43: 
1.1.1.4 ! misho      44:        Fix crash under heavy TCP connection load introduced in 2.81.
        !            45:        Thanks to Frank for good work chasing this down.
1.1.1.3   misho      46: 
1.1.1.4 ! misho      47:        Change default lease time for DHCPv6 to one day.
        !            48: 
        !            49:        Alter calculation of preferred and valid times in router
        !            50:        advertisements, so that these do not have a floor applied
        !            51:        of the lease time in the dhcp-range if this is not explicitly
        !            52:        specified and is merely the default.
        !            53:        Thanks to Martin-Éric Racine for suggestions on this.
1.1.1.3   misho      54: 
                     55:        
1.1.1.4 ! misho      56: version 2.81
        !            57:        Improve cache behaviour for TCP connections. For ease of
        !            58:        implementation, dnsmasq has always forked a new process to handle
        !            59:        each incoming TCP connection. A side-effect of this is that
        !            60:        any DNS queries answered from TCP connections are not cached:
        !            61:        when TCP connections were rare, this was not a problem.
        !            62:        With the coming of DNSSEC, it is now the case that some
        !            63:        DNSSEC queries have answers which spill to TCP, and if,
        !            64:        for instance, this applies to the keys for the root, then
        !            65:        those never get cached, and performance is very bad.
        !            66:        This fix passes cache entries back from the TCP child process to
        !            67:        the main server process, and fixes the problem.
        !            68: 
        !            69:        Remove the NO_FORK compile-time option, and support for uclinux.
        !            70:        In an era where everything has an MMU, this looks like
        !            71:        an anachronism, and it adds to (Ok, multiplies!) the
        !            72:        combinatorial explosion of compile-time options. Thanks to
        !            73:        Kevin Darbyshire-Bryant for the patch.
        !            74: 
        !            75:        Fix line-counting when reading /etc/hosts and friends; for
        !            76:        correct error messages. Thanks to Christian Rosentreter
        !            77:        for reporting this.
        !            78: 
        !            79:        Fix bug in DNS non-terminal code, added in 2.80, which could
        !            80:        sometimes cause a NODATA rather than an NXDOMAIN reply.
        !            81:        Thanks to Norman Rasmussen, Sven Mueller and Maciej Żenczykowski
        !            82:        for spotting and diagnosing the bug and providing patches.
        !            83: 
        !            84:        Support TCP-fastopen (RFC-7413) on both incoming and
        !            85:        outgoing TCP connections, if supported and enabled in the OS.
        !            86: 
        !            87:        Improve kernel-capability manipulation code under Linux. Dnsmasq
        !            88:        now fails early if a required capability is not available, and
        !            89:        tries not to request capabilities not required by its
        !            90:        configuration.
        !            91: 
        !            92:        Add --shared-network config. This enables allocation of addresses
        !            93:        by the DHCP server in subnets where the server (or relay) does not
        !            94:        have an interface on the network in that subnet. Many thanks to
        !            95:        kamp.de for sponsoring this feature.
1.1.1.3   misho      96:        
1.1.1.4 ! misho      97:        Fix broken contrib/lease_tools/dhcp_lease_time.c. A packet
        !            98:        validation check got borked in commit 2b38e382 and release 2.80.
        !            99:        Thanks to Tomasz Szajner for spotting this.
        !           100: 
        !           101:        Fix compilation against nettle version 3.5 and later.
        !           102: 
        !           103:        Fix spurious DNSSEC validation failures when the auth section
        !           104:        of a reply contains unsigned RRs from a signed zone, 
        !           105:        with the exception that NSEC and NSEC3 RRs must always be signed.
        !           106:         Thanks to Tore Anderson for spotting and diagnosing the bug.
1.1.1.3   misho     107: 
1.1.1.4 ! misho     108:        Add --dhcp-ignore-clid. This disables reading of DHCP client
        !           109:        identifier option (option 61), so clients are only identified by
        !           110:        MAC addresses.
        !           111: 
        !           112:        Fix a bug which stopped --dhcp-name-match from working when a hostname
        !           113:        is supplied in --dhcp-host. Thanks to James Feeney for spotting this.
        !           114: 
        !           115:        Fix bug which caused very rarely caused zero-length DHCPv6 packets.
        !           116:        Thanks to Dereck Higgins for spotting this.
        !           117: 
        !           118:        Add --tftp-single-port option.
        !           119: 
        !           120:        Enhance --conf-dir to load files in a deterministic order. Thanks to
        !           121:        Evgenii Seliavka for the suggestion and initial patch.
        !           122: 
        !           123:        In the router advert code, handle case where we have two
        !           124:        different interfaces on the same IPv6 net, and we are doing
        !           125:        RA/DHCP service on only one of them. Thanks to NIIBE Yutaka
        !           126:        for spotting this case and making the initial patch.
        !           127: 
        !           128:        Support prefixed ranges of ipv6 addresses in dhcp-host.
        !           129:        This eases problems chain-netbooting, where each link in the
        !           130:        chain requests an address using a different UID. With a single
        !           131:        address, only one gets the "static" address, but with this
        !           132:        fix, enough addresses can be reserved for all the stages of the
        !           133:        boot. Many thanks to Harald Jensås for his work on this idea and
        !           134:        earlier patches.
        !           135: 
        !           136:        Add filtering by tag of --dhcp-host directives. Based on a patch
        !           137:        by Harald Jensås.
        !           138: 
        !           139:        Allow empty server spec in --rev-server, to match --server.
        !           140:        
        !           141:        Remove DSA signature verification from DNSSEC, as specified in
        !           142:        RFC 8624. Thanks to Loganaden Velvindron for the original patch.
1.1.1.3   misho     143: 
1.1.1.4 ! misho     144:        Add --script-on-renewal option.
1.1.1.3   misho     145: 
                    146:        
1.1.1.4 ! misho     147: version 2.80
        !           148:        Add support for RFC 4039 DHCP rapid commit. Thanks to Ashram Method
        !           149:        for the initial patch and motivation.
        !           150: 
        !           151:        Alter the default for dnssec-check-unsigned. Versions of
        !           152:        dnsmasq prior to 2.80 defaulted to not checking unsigned
        !           153:        replies, and used --dnssec-check-unsigned to switch
        !           154:         this on. Such configurations will continue to work as before,
        !           155:         but those which used the default of no checking will need to be
        !           156:         altered to explicitly select no checking. The new default is
        !           157:         because switching off checking for unsigned replies is
        !           158:        inherently dangerous. Not only does it open the possiblity of forged
        !           159:         replies, but it allows everything to appear to be working even
        !           160:         when the upstream namesevers do not support DNSSEC, and in this
        !           161:         case no DNSSEC validation at all is occuring.
        !           162: 
        !           163:         Fix DHCP broken-ness when --no-ping AND --dhcp-sequential-ip
        !           164:        are set. Thanks to Daniel Miess for help with this.
        !           165: 
        !           166:        Add a facilty to store DNS packets sent/recieved in a
        !           167:        pcap-format file for later debugging. The file location
        !           168:        is given by the --dumpfile option, and a bitmap controlling
        !           169:        which packets should be dumped is given by the --dumpmask
        !           170:        option.
        !           171: 
        !           172:        Handle the case of both standard and constructed dhcp-ranges on the
        !           173:        same interface better. We don't now contruct a dhcp-range if there's
        !           174:        already one specified. This allows the specified interface to
        !           175:        have different parameters and avoids advertising the same
        !           176:        prefix twice. Thanks to Luis Marsano for spotting this case.
        !           177: 
        !           178:        Allow zone transfer in authoritative mode if auth-peer is specified,
        !           179:        even if auth-sec-servers is not. Thanks to Raphaël Halimi for
        !           180:        the suggestion.
        !           181: 
        !           182:        Fix bug which sometimes caused dnsmasq to wrongly return answers
        !           183:        without DNSSEC RRs to queries with the do-bit set, but only when
        !           184:        DNSSEC validation was not enabled.
        !           185:        Thanks to Petr Menšík for spotting this.
        !           186: 
        !           187:        Fix missing fatal errors with some malformed options
        !           188:        (server, local, address, rebind-domain-ok, ipset, alias).
        !           189:        Thanks to Eugene Lozovoy for spotting the problem.
        !           190: 
        !           191:        Fix crash on startup with a --synth-domain which has no prefix.
        !           192:        Introduced in 2.79. Thanks to Andreas Engel for the bug report.
        !           193: 
        !           194:        Fix missing EDNS0 section in some replies generated by local
        !           195:        DNS configuration which confused systemd-resolvd. Thanks to
        !           196:        Steve Dodd for characterising the problem.
        !           197: 
        !           198:        Add --dhcp-name-match config option. 
        !           199: 
        !           200:        Add --caa-record config option.
        !           201: 
        !           202:        Implement --address=/example.com/# as (more efficient) syntactic
        !           203:        sugar for --address=/example.com/0.0.0.0 and
        !           204:        --address=/example.com/::
        !           205:        Returning null addresses is a useful technique for ad-blocking.
        !           206:        Thanks to Peter Russell for the suggestion.
1.1.1.3   misho     207:        
1.1.1.4 ! misho     208:        Change anti cache-snooping behaviour with queries with the
        !           209:        recursion-desired bit unset. Instead to returning SERVFAIL, we
        !           210:        now always forward, and never answer from the cache. This
        !           211:        allows "dig +trace" command to work. 
        !           212:        
        !           213:        Include in the example config file a formulation which
        !           214:        stops DHCP clients from claiming the DNS name "wpad".
        !           215:        This is a fix for the CERT Vulnerability VU#598349.
        !           216: 
        !           217:        
        !           218: version 2.79
        !           219:        Fix parsing of CNAME arguments, which are confused by extra spaces.
        !           220:        Thanks to Diego Aguirre for spotting the bug.
        !           221: 
        !           222:        Where available, use IP_UNICAST_IF or IPV6_UNICAST_IF to bind
        !           223:        upstream servers to an interface, rather than SO_BINDTODEVICE.
        !           224:        Thanks to Beniamino Galvani for the patch.
        !           225: 
        !           226:        Always return a SERVFAIL answer to DNS queries without the
        !           227:        recursion desired bit set, UNLESS acting as an authoritative
        !           228:        DNS server. This avoids a potential route to cache snooping.
        !           229: 
        !           230:        Add support for Ed25519 signatures in DNSSEC validation.
        !           231: 
        !           232:        No longer support RSA/MD5 signatures in DNSSEC validation,
        !           233:        since these are not secure. This behaviour is mandated in
        !           234:        RFC-6944.
        !           235: 
        !           236:        Fix incorrect error exit code from dhcp_release6 utility.
        !           237:        Thanks Gaudenz Steinlin for the bug report.
        !           238: 
        !           239:        Use SIGINT (instead of overloading SIGHUP) to turn on DNSSEC
        !           240:        time validation when --dnssec-no-timecheck is in use.
        !           241:        Note that this is an incompatible change from earlier releases.
        !           242: 
        !           243:        Allow more than one --bridge-interface option to refer to an
        !           244:        interface, so that we can use
        !           245:        --bridge-interface=int1,alias1
        !           246:        --bridge-interface=int1,alias2
        !           247:        as an alternative to
        !           248:        --bridge-interface=int1,alias1,alias2
        !           249:        Thanks to Neil Jerram for work on this.
        !           250: 
        !           251:        Fix for DNSSEC with wildcard-derived NSEC records.
        !           252:        It's OK for NSEC records to be expanded from wildcards,
        !           253:        but in that case, the proof of non-existence is only valid
        !           254:        starting at the wildcard name, *.<domain> NOT the name expanded
        !           255:        from the wildcard. Without this check it's possible for an
        !           256:        attacker to craft an NSEC which wrongly proves non-existence.
        !           257:        Thanks to Ralph Dolmans for finding this, and co-ordinating 
        !           258:        the vulnerability tracking and fix release.
        !           259:        CVE-2017-15107 applies.
        !           260: 
        !           261:        Remove special handling of A-for-A DNS queries. These
        !           262:        are no longer a significant problem in the global DNS.
        !           263:        http://cs.northwestern.edu/~ychen/Papers/DNS_ToN15.pdf
        !           264:        Thanks to Mattias Hellström for the initial patch.
        !           265: 
        !           266:        Fix failure to delete dynamically created dhcp options
        !           267:        from files in -dhcp-optsdir directories. Thanks to
        !           268:        Lindgren Fredrik for the bug report.
        !           269: 
        !           270:        Add to --synth-domain the ability to create names using
        !           271:        sequential numbers, as well as encodings of IP addresses.
        !           272:        For instance,
        !           273:        --synth-domain=thekelleys.org.uk,192.168.0.50,192.168.0.70,internal-*
        !           274:        creates 21 domain names of the form
        !           275:        internal-4.thekelleys.org.uk over the address range given, with
        !           276:        internal-0.thekelleys.org.uk being 192.168.0.50 and
        !           277:        internal-20.thekelleys.org.uk being 192.168.0.70
        !           278:        Thanks to Andy Hawkins for the suggestion.
        !           279: 
        !           280:        Tidy up Crypto code, removing workarounds for ancient
        !           281:        versions of libnettle. We now require libnettle 3.
        !           282: 
        !           283: 
        !           284: version 2.78
        !           285:         Fix logic of appending ".<layer>" to PXE basename. Thanks to Chris
        !           286:        Novakovic for the patch.
        !           287: 
        !           288:        Revert ping-check of address in DHCPDISCOVER if there
        !           289:        already exists a lease for the address. Under some
        !           290:        circumstances, and netbooted windows installation can reply
        !           291:        to pings before if has a DHCP lease and block allocation
        !           292:        of the address it already used during netboot. Thanks to
        !           293:        Jan Psota for spotting this.
        !           294: 
        !           295:        Fix DHCP relaying, broken in 2.76 and 2.77 by commit
        !           296:        ff325644c7afae2588583f935f4ea9b9694eb52e. Thanks to
        !           297:        John Fitzgibbon for the diagnosis and patch.
        !           298: 
        !           299:         Try other servers if first returns REFUSED when
        !           300:        --strict-order active. Thanks to Hans Dedecker
        !           301:        for the patch
        !           302: 
        !           303:        Fix regression in 2.77, ironically added as a security
        !           304:        improvement, which resulted in a crash when a DNS
        !           305:        query exceeded 512 bytes (or the EDNS0 packet size,
        !           306:        if different.) Thanks to Christian Kujau, Arne Woerner
        !           307:        Juan Manuel Fernandez and Kevin Darbyshire-Bryant for
        !           308:        chasing this one down.  CVE-2017-13704 applies.
        !           309: 
        !           310:        Fix heap overflow in DNS code. This is a potentially serious
        !           311:        security hole. It allows an attacker who can make DNS
        !           312:        requests to dnsmasq, and who controls the contents of
        !           313:        a domain, which is thereby queried, to overflow
        !           314:        (by 2 bytes) a heap buffer and either crash, or
        !           315:        even take control of, dnsmasq.
        !           316:        CVE-2017-14491 applies.
        !           317:        Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
        !           318:        Kevin Hamacher and Ron Bowes of the Google Security Team for
        !           319:        finding this.
        !           320: 
        !           321:        Fix heap overflow in IPv6 router advertisement code.
        !           322:        This is a potentially serious security hole, as a
        !           323:        crafted RA request can overflow a buffer and crash or
        !           324:        control dnsmasq. Attacker must be on the local network.
        !           325:        CVE-2017-14492 applies.
        !           326:         Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
        !           327:        and Kevin Hamacher of the Google Security Team for
        !           328:        finding this.
        !           329: 
        !           330:        Fix stack overflow in DHCPv6 code. An attacker who can send
        !           331:        a DHCPv6 request to dnsmasq can overflow the stack frame and
        !           332:        crash or control dnsmasq.
        !           333:        CVE-2017-14493 applies.
        !           334:        Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
        !           335:        Kevin Hamacher and Ron Bowes of the Google Security Team for
        !           336:        finding this.
        !           337: 
        !           338:        Fix information leak in DHCPv6. A crafted DHCPv6 packet can
        !           339:        cause dnsmasq to forward memory from outside the packet
        !           340:        buffer to a DHCPv6 server when acting as a relay.
        !           341:        CVE-2017-14494 applies.
        !           342:        Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
        !           343:        Kevin Hamacher and Ron Bowes of the Google Security Team for
        !           344:        finding this.
        !           345: 
        !           346:        Fix DoS in DNS. Invalid boundary checks in the
        !           347:        add_pseudoheader function allows a memcpy call with negative
        !           348:        size An attacker which can send malicious DNS queries
        !           349:        to dnsmasq can trigger a DoS remotely.
        !           350:        dnsmasq is vulnerable only if one of the following option is
        !           351:        specified: --add-mac, --add-cpe-id or --add-subnet.
        !           352:        CVE-2017-14496 applies.
        !           353:        Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
        !           354:        Kevin Hamacher and Ron Bowes of the Google Security Team for
        !           355:        finding this.
        !           356: 
        !           357:        Fix out-of-memory Dos vulnerability. An attacker which can
        !           358:        send malicious DNS queries to dnsmasq can trigger memory
        !           359:        allocations in the add_pseudoheader function
        !           360:        The allocated memory is never freed which leads to a DoS
        !           361:        through memory exhaustion. dnsmasq is vulnerable only
        !           362:        if one of the following option is specified:
        !           363:        --add-mac, --add-cpe-id or --add-subnet.
        !           364:        CVE-2017-14495 applies.
        !           365:        Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
        !           366:        Kevin Hamacher and Ron Bowes of the Google Security Team for
        !           367:        finding this.
        !           368: 
        !           369: 
        !           370: version 2.77
        !           371:        Generate an error when configured with a CNAME loop,
        !           372:        rather than a crash. Thanks to George Metz for
        !           373:        spotting this problem.
        !           374: 
        !           375:        Calculate the length of TFTP error reply packet 
        !           376:        correctly. This fixes a problem when the error 
        !           377:        message in a TFTP packet exceeds the arbitrary 
        !           378:        limit of 500 characters. The message was correctly
        !           379:        truncated, but not the packet length, so 
        !           380:        extra data was appended. This is a possible
        !           381:        security risk, since the extra data comes from
        !           382:        a buffer which is also used for DNS, so that
        !           383:        previous DNS queries or replies may be leaked.
        !           384:        Thanks to Mozilla for funding the security audit 
        !           385:        which spotted this bug.
        !           386: 
        !           387:        Fix logic error in Linux netlink code. This could
        !           388:        cause dnsmasq to enter a tight loop on systems
        !           389:        with a very large number of network interfaces.
        !           390:        Thanks to Ivan Kokshaysky for the diagnosis and
        !           391:        patch.
        !           392: 
        !           393:        Fix problem with --dnssec-timestamp whereby receipt
        !           394:        of SIGHUP would erroneously engage timestamp checking.
        !           395:        Thanks to Kevin Darbyshire-Bryant for this work.
        !           396: 
        !           397:        Bump zone serial on reloading /etc/hosts and friends
        !           398:        when providing authoritative DNS. Thanks to Harrald
        !           399:        Dunkel for spotting this.
        !           400: 
        !           401:        Handle v4-mapped IPv6 addresses sanely in --synth-domain.
        !           402:        These have standard representation like ::ffff:1.2.3.4
        !           403:        and are now converted to names like
        !           404:        <prefix>--ffff-1-2-3-4.<domain>
        !           405: 
        !           406:        Handle binding upstream servers to an interface 
        !           407:        (--server=1.2.3.4@eth0) when the named interface
        !           408:        is destroyed and recreated in the kernel. Thanks to 
        !           409:        Beniamino Galvani for the patch.
        !           410: 
        !           411:        Allow wildcard CNAME records in authoritative zones.
        !           412:        For example --cname=*.example.com,default.example.com
        !           413:        Thanks to Pro Backup for sponsoring this development.
        !           414: 
        !           415:        Bump the allowed backlog of TCP connections from 5 to 32,
        !           416:        and make this a compile-time configurable option. Thanks
        !           417:        to Donatas Abraitis for diagnosing this as a potential
        !           418:        problem.
        !           419: 
        !           420:        Add DNSMASQ_REQUESTED_OPTIONS environment variable to the 
        !           421:        lease-change script. Thanks to ZHAO Yu for the patch.
        !           422: 
        !           423:        Fix foobar in rrfilter code, that could cause malformed 
        !           424:        replies, especially when DNSSEC validation on, and 
        !           425:        the upstream server returns answer with the RRs in a 
        !           426:        particular order. The only DNS server known to tickle
        !           427:        this is Nominum's. Thanks to Dave Täht for spotting the
        !           428:        bug and assisting in the fix.
        !           429: 
        !           430:        Fix the manpage which lied that only the primary address
        !           431:        of an interface is used by --interface-name.
        !           432: 
        !           433:        Make --localise-queries apply to names from --interface-name.
        !           434:        Thanks to Kevin Darbyshire-Bryant and Eric Luehrsen
        !           435:        for pushing this.
        !           436: 
        !           437:        Improve connection handling when talking to TCP upstream 
        !           438:        servers. Specifically, be prepared to open a new TCP
        !           439:        connection when we want to make multiple queries
        !           440:        but the upstream server accepts fewer queries per connection.
        !           441: 
        !           442:        Improve logging of upstream servers when there are a lot
        !           443:        of "local addresses only" entries. Thanks to Hannu Nyman for
        !           444:        the patch.
        !           445: 
        !           446:        Make --bogus-priv apply to IPv6, for the prefixes specified
        !           447:        in RFC6303. Thanks to Kevin Darbyshire-Bryant for work on this.
        !           448: 
        !           449:        Allow use of MAC addresses with --tftp-unique-root. Thanks
        !           450:        to Floris Bos for the patch.
        !           451: 
        !           452:        Add --dhcp-reply-delay option. Thanks to Floris Bos
        !           453:        for the patch.
        !           454: 
        !           455:        Add mtu setting facility to --ra-param. Thanks to David
        !           456:        Flamand for the patch.
        !           457: 
        !           458:        Capture STDOUT and STDERR output from dhcp-script and log
        !           459:        it as part of the dnsmasq log stream. Makes life easier
        !           460:        for diagnosing unexpected problems in scripts.
        !           461:        Thanks to Petr Mensik for the patch.
        !           462: 
        !           463:        Generate fatal errors when failing to parse the output
        !           464:        of the dhcp-script in "init" mode. Avoids strange errors
        !           465:        when the script accidentally emits error messages.
        !           466:        Thanks to Petr Mensik for the patch.
        !           467: 
        !           468:        Make --rev-server for an RFC1918 subnet work even in the
        !           469:        presence of the --bogus-priv flag. Thanks to
        !           470:        Vladislav Grishenko for the patch.
        !           471: 
        !           472:        Extend --ra-param mtu: field to allow an interface name.
        !           473:        This allows the MTU of a WAN interface to be advertised on
        !           474:        the internal interfaces of a router. Thanks to
        !           475:        Vladislav Grishenko for the patch.
        !           476: 
        !           477:        Do ICMP-ping check for address-in-use for DHCPv4 when
        !           478:        the client specifies an address in DHCPDISCOVER, and when
        !           479:        an address in configured locally. Thanks to Alin Năstac
        !           480:        for spotting the problem.
        !           481: 
        !           482:        Add new DHCP tag "known-othernet" which is set when only a
        !           483:        dhcp-host exists for another subnet. Can be used to ensure
        !           484:        that privileged hosts are not given "guest" addresses by
        !           485:        accident. Thanks to Todd Sanket for the suggestion.
        !           486: 
        !           487:        Remove historic automatic inclusion of IDN support when
        !           488:        building internationalisation support. This doesn't
        !           489:        fit now there is a choice of IDN libraries. Be sure
        !           490:        to include either -DHAVE_IDN or -DHAVE_LIBIDN2 for
        !           491:        IDN support.
        !           492: 
        !           493: 
        !           494: version 2.76
        !           495:        Include 0.0.0.0/8 in DNS rebind checks. This range 
        !           496:        translates to hosts on  the local network, or, at 
        !           497:        least, 0.0.0.0 accesses the local host, so could
        !           498:        be targets for DNS rebinding. See RFC 5735 section 3 
        !           499:        for details. Thanks to Stephen Röttger for the bug report.
        !           500: 
        !           501:        Enhance --add-subnet to allow arbitrary subnet addresses.
        !           502:        Thanks to Ed Barsley for the patch.
        !           503: 
        !           504:        Respect the --no-resolv flag in inotify code. Fixes bug
        !           505:        which caused dnsmasq to fail to start if a resolv-file 
        !           506:        was a dangling symbolic link, even of --no-resolv set.
        !           507:        Thanks to Alexander Kurtz for spotting the problem.
        !           508: 
        !           509:        Fix crash when an A or AAAA record is defined locally,
        !           510:        in a hosts file, and an upstream server sends a reply
        !           511:        that the same name is empty. Thanks to Edwin Török for
        !           512:        the patch.
        !           513: 
        !           514:        Fix failure to correctly calculate cache-size when 
        !           515:        reading a hosts-file fails. Thanks to André Glüpker 
        !           516:        for the patch.
        !           517: 
        !           518:        Fix wrong answer to simple name query when --domain-needed
        !           519:        set, but no upstream servers configured. Dnsmasq returned
        !           520:        REFUSED, in this case, when it should be the same as when
        !           521:        upstream servers are configured - NOERROR. Thanks to 
        !           522:        Allain Legacy for spotting the problem.
        !           523: 
        !           524:        Return REFUSED when running out of forwarding table slots,
        !           525:        not SERVFAIL.
        !           526: 
        !           527:        Add --max-port configuration. Thanks to Hans Dedecker for
        !           528:        the patch.
        !           529: 
        !           530:        Add --script-arp and two new functions for the dhcp-script.
        !           531:        These are "arp" and "arp-old" which announce the arrival and
        !           532:        removal of entries in the ARP or neighbour tables.
        !           533: 
        !           534:        Extend --add-mac to allow a new encoding of the MAC address 
        !           535:        as base64, by configuring --add-mac=base64
        !           536: 
        !           537:        Add --add-cpe-id option.
        !           538: 
        !           539:        Don't crash with divide-by-zero if an IPv6 dhcp-range
        !           540:        is declared as a whole /64.
        !           541:        (ie xx::0 to xx::ffff:ffff:ffff:ffff) 
        !           542:        Thanks to Laurent Bendel for spotting this problem.
        !           543: 
        !           544:        Add support for a TTL parameter in --host-record and
        !           545:        --cname.
        !           546: 
        !           547:        Add --dhcp-ttl option.
        !           548: 
        !           549:        Add --tftp-mtu option. Thanks to Patrick McLean for the 
        !           550:        initial patch.
        !           551: 
        !           552:        Check return-code of inet_pton() when parsing dhcp-option.
        !           553:        Bad addresses could fail to generate errors and result in
        !           554:        garbage dhcp-options being sent. Thanks to Marc Branchaud 
        !           555:        for spotting this.
        !           556: 
        !           557:        Fix wrong value for EDNS UDP packet size when using 
        !           558:        --servers-file to define upstream DNS servers. Thanks to
        !           559:        Scott Bonar for the bug report.
        !           560: 
        !           561:        Move the dhcp_release and dhcp_lease_time tools from 
        !           562:        contrib/wrt to contrib/lease-tools.
        !           563: 
        !           564:        Add dhcp_release6 to contrib/lease-tools. Many thanks 
        !           565:        to Sergey Nechaev for this code.
        !           566: 
        !           567:        To avoid filling logs in configurations which define
        !           568:        many upstream nameservers, don't log more that 30 servers.
        !           569:        The number to be logged can be changed as SERVERS_LOGGED
        !           570:        in src/config.h.
        !           571: 
        !           572:        Swap the values if BC_EFI and x86-64_EFI in --pxe-service. 
        !           573:        These were previously wrong due to an error in RFC 4578.
        !           574:        If you're using BC_EFI to boot 64-bit EFI machines, you
        !           575:        will need to update your config.
        !           576: 
        !           577:        Add ARM32_EFI and ARM64_EFI as valid architectures in
        !           578:        --pxe-service.
        !           579: 
        !           580:        Fix PXE booting for UEFI architectures. Modify PXE boot
        !           581:        sequence in this case to force the client to talk to dnsmasq
        !           582:        over port 4011. This makes PXE and especially proxy-DHCP PXE
        !           583:        work with these architectures.
        !           584: 
        !           585:        Workaround problems with UEFI PXE clients. There exist
        !           586:        in the wild PXE clients which have problems with PXE
        !           587:        boot menus. To work around this, when there's a single
        !           588:        --pxe-service which applies to client, then that target
        !           589:        will be booted directly, rather then sending a
        !           590:        single-item boot menu.
        !           591: 
        !           592:        Many thanks to Jarek Polok, Michael Kuron and Dreamcat4 
        !           593:        for their work on the long-standing UEFI PXE problem.
        !           594: 
        !           595:        Subtle change in the semantics of "basename" in
        !           596:        --pxe-service. The historical behaviour has always been
        !           597:        that the actual filename downloaded from the TFTP server
        !           598:        is <basename>.<layer> where <layer> is an integer which
        !           599:        corresponds to the layer parameter supplied by the client.
        !           600:        It's not clear what the function of the "layer" 
        !           601:        actually is in the PXE protocol, and in practise layer 
        !           602:        is always zero, so the filename is <basename>.0
        !           603:        The new behaviour is the same as the old, except when
        !           604:        <basename> includes a file suffix, in which case
        !           605:        the layer suffix is no longer added. This allows
        !           606:        sensible suffices to be used, rather then the
        !           607:        meaningless ".0". Only in the unlikely event that you
        !           608:        have a config with a basename which already has a
        !           609:        suffix, is this an incompatible change, since the file
        !           610:        downloaded will change from name.suffix.0 to just 
        !           611:        name.suffix
        !           612: 
        !           613: 
        !           614: version 2.75
        !           615:        Fix reversion on 2.74 which caused 100% CPU use when a 
        !           616:        dhcp-script is configured. Thanks to Adrian Davey for
        !           617:        reporting the bug and testing the fix.
        !           618: 
        !           619: 
        !           620: version 2.74
        !           621:        Fix reversion in 2.73 where --conf-file would attempt to
        !           622:        read the default file, rather than no file.
        !           623: 
        !           624:        Fix inotify code to handle dangling symlinks better and
        !           625:        not SEGV in some circumstances.
        !           626: 
        !           627:        DNSSEC fix. In the case of a signed CNAME generated by a
        !           628:        wildcard which pointed to an unsigned domain, the wrong
        !           629:        status would be logged, and some necessary checks omitted.
        !           630: 
        !           631: 
        !           632: version 2.73
        !           633:        Fix crash at startup when an empty suffix is supplied to
        !           634:        --conf-dir, also trivial memory leak. Thanks to 
        !           635:        Tomas Hozza for spotting this.
        !           636: 
        !           637:        Remove floor of 4096 on advertised EDNS0 packet size when 
        !           638:        DNSSEC in use, the original rationale for this has long gone.
        !           639:        Thanks to Anders Kaseorg for spotting this.
        !           640: 
        !           641:        Use inotify for checking on updates to /etc/resolv.conf and
        !           642:        friends under Linux. This fixes race conditions when the files are 
        !           643:        updated rapidly and saves CPU by noy polling. To build
        !           644:        a binary that runs on old Linux kernels without inotify,
        !           645:        use make COPTS=-DNO_INOTIFY
        !           646: 
        !           647:        Fix breakage of --domain=<domain>,<subnet>,local - only reverse
        !           648:        queries were intercepted. THis appears to have been broken 
        !           649:        since 2.69. Thanks to Josh Stone for finding the bug.
        !           650: 
        !           651:        Eliminate IPv6 privacy addresses and deprecated addresses from
        !           652:        the answers given by --interface-name. Note that reverse queries
        !           653:        (ie looking for names, given addresses) are not affected. 
        !           654:        Thanks to Michael Gorbach for the suggestion.
        !           655: 
        !           656:        Fix crash in DNSSEC code with long RRs. Thanks to Marco Davids
        !           657:        for the bug report.
        !           658: 
        !           659:        Add --ignore-address option. Ignore replies to A-record 
        !           660:        queries which include the specified address. No error is
        !           661:        generated, dnsmasq simply continues to listen for another 
        !           662:        reply. This is useful to defeat blocking strategies which
        !           663:        rely on quickly supplying a forged answer to a DNS 
        !           664:        request for certain domains, before the correct answer can
        !           665:        arrive. Thanks to Glen Huang for the patch.
        !           666: 
        !           667:        Revisit the part of DNSSEC validation which determines if an 
        !           668:        unsigned answer is legit, or is in some part of the DNS 
        !           669:        tree which should be signed. Dnsmasq now works from the 
        !           670:        DNS root downward looking for the limit of signed 
        !           671:        delegations, rather than working bottom up. This is 
        !           672:        both more correct, and less likely to trip over broken 
        !           673:        nameservers in the unsigned parts of the DNS tree 
        !           674:        which don't respond well to DNSSEC queries.
        !           675: 
        !           676:        Add --log-queries=extra option, which makes logs easier
        !           677:        to search automatically.
        !           678: 
        !           679:        Add --min-cache-ttl option. I've resisted this for a long 
        !           680:        time, on the grounds that disbelieving TTLs is never a 
        !           681:        good idea, but I've been persuaded that there are 
        !           682:        sometimes reasons to do it. (Step forward, GFW).
        !           683:        To avoid misuse, there's a hard limit on the TTL 
        !           684:        floor of one hour. Thanks to RinSatsuki for the patch.
        !           685: 
        !           686:        Cope with multiple interfaces with the same link-local 
        !           687:        address. (IPv6 addresses are scoped, so this is allowed.)
        !           688:        Thanks to Cory Benfield for help with this.
        !           689: 
        !           690:        Add --dhcp-hostsdir. This allows addition of new host
        !           691:        configurations to a running dnsmasq instance much more 
        !           692:        cheaply than having dnsmasq re-read all its existing
        !           693:        configuration each time. 
        !           694: 
        !           695:        Don't reply to DHCPv6 SOLICIT messages if we're not 
        !           696:        configured to do stateful DHCPv6. Thanks to Win King Wan 
        !           697:        for the patch.
        !           698: 
        !           699:        Fix broken DNSSEC validation of ECDSA signatures.
        !           700: 
        !           701:        Add --dnssec-timestamp option, which provides an automatic
        !           702:        way to detect when the system time becomes valid after 
        !           703:        boot on systems without an RTC, whilst allowing DNS 
        !           704:        queries before the clock is valid so that NTP can run. 
        !           705:        Thanks to Kevin Darbyshire-Bryant for developing this idea.
        !           706: 
        !           707:        Add --tftp-no-fail option. Thanks to Stefan Tomanek for
        !           708:        the patch.
        !           709: 
        !           710:        Fix crash caused by looking up servers.bind, CHAOS text 
        !           711:        record, when more than about five --servers= lines are 
        !           712:        in the dnsmasq config. This causes memory corruption 
        !           713:        which causes a crash later. Thanks to Matt Coddington for 
        !           714:        sterling work chasing this down.
        !           715: 
        !           716:        Fix crash on receipt of certain malformed DNS requests.
        !           717:        Thanks to Nick Sampanis for spotting the problem.
        !           718:        Note that this is could allow the dnsmasq process's
        !           719:        memory to be read by an attacker under certain
        !           720:        circumstances, so it has a CVE, CVE-2015-3294 
        !           721: 
        !           722:        Fix crash in authoritative DNS code, if a .arpa zone 
        !           723:        is declared as authoritative, and then a PTR query which
        !           724:        is not to be treated as authoritative arrived. Normally, 
        !           725:        directly declaring .arpa zone as authoritative is not 
        !           726:        done, so this crash wouldn't be seen. Instead the 
        !           727:        relevant .arpa zone should be specified as a subnet
        !           728:        in the auth-zone declaration. Thanks to Johnny S. Lee
        !           729:        for the bugreport and initial patch.
        !           730: 
        !           731:        Fix authoritative DNS code to correctly reply to NS 
        !           732:        and SOA queries for .arpa zones for which we are 
        !           733:        declared authoritative by means of a subnet in auth-zone.
        !           734:        Previously we provided correct answers to PTR queries
        !           735:        in such zones (including NS and SOA) but not direct
        !           736:        NS and SOA queries. Thanks to Johnny S. Lee for 
        !           737:        pointing out the problem.
        !           738: 
        !           739:        Fix logging of DHCPREPLY which should be suppressed 
        !           740:        by quiet-dhcp6. Thanks to J. Pablo Abonia for 
        !           741:        spotting the problem.
        !           742: 
        !           743:        Try and handle net connections with broken fragmentation 
        !           744:        that lose large UDP packets. If a server times out, 
        !           745:        reduce the maximum UDP packet size field in the EDNS0
        !           746:        header to 1280 bytes. If it then answers, make that
        !           747:        change permanent.
        !           748: 
        !           749:        Check IPv4-mapped IPv6 addresses when --stop-rebind
        !           750:        is active. Thanks to Jordan Milne for spotting this.
        !           751: 
        !           752:        Allow DHCPv4 options T1 and T2 to be set using --dhcp-option.
        !           753:        Thanks to Kevin Benton for patches and work on this.
        !           754: 
        !           755:        Fix code for DHCPCONFIRM DHCPv6 messages to confirm addresses
        !           756:        in the correct subnet, even of not in dynamic address 
        !           757:        allocation range. Thanks to Steve Hirsch for spotting
        !           758:        the problem.
        !           759: 
        !           760:        Add AddDhcpLease and DeleteDhcpLease DBus methods. Thanks
        !           761:        to Nicolas Cavallari for the patch.
        !           762: 
        !           763:        Allow configuration of router advertisements without the 
        !           764:        "on-link" bit set. Thanks to Neil Jerram for the patch.
        !           765: 
        !           766:        Extend --bridge-interface to DHCPv6 and router 
        !           767:        advertisements. Thanks to Neil Jerram for the patch.
        !           768: 
        !           769: 
1.1.1.3   misho     770: version 2.72
1.1.1.4 ! misho     771:        Add ra-advrouter mode, for RFC-3775 mobile IPv6 support.
1.1.1.3   misho     772: 
1.1.1.4 ! misho     773:        Add support for "ipsets" in *BSD, using pf. Thanks to 
        !           774:        Sven Falempin for the patch.
        !           775: 
        !           776:        Fix race condition which could lock up dnsmasq when an 
        !           777:        interface goes down and up rapidly. Thanks to Conrad 
        !           778:        Kostecki for helping to chase this down.
        !           779: 
        !           780:        Add DBus methods SetFilterWin2KOption and SetBogusPrivOption
        !           781:        Thanks to the Smoothwall project for the patch.
        !           782: 
        !           783:        Fix failure to build against Nettle-3.0. Thanks to Steven 
        !           784:        Barth for spotting this and finding the fix. 
        !           785: 
        !           786:        When assigning existing DHCP leases to interfaces by comparing 
        !           787:        networks, handle the case that two or more interfaces have the
        !           788:        same network part, but different prefix lengths (favour the
        !           789:        longer prefix length.) Thanks to Lung-Pin Chang for the 
        !           790:        patch.
        !           791: 
        !           792:        Add a mode which detects and removes DNS forwarding loops, ie 
        !           793:        a query sent to an upstream server returns as a new query to 
        !           794:        dnsmasq, and would therefore be forwarded again, resulting in 
        !           795:        a query which loops many times before being dropped. Upstream
        !           796:        servers which loop back are disabled and this event is logged.
        !           797:        Thanks to Smoothwall for their sponsorship of this feature.
        !           798: 
        !           799:        Extend --conf-dir to allow filtering of files. So
        !           800:        --conf-dir=/etc/dnsmasq.d,\*.conf
        !           801:        will load all the files in /etc/dnsmasq.d which end in .conf
        !           802: 
        !           803:        Fix bug when resulted in NXDOMAIN answers instead of NODATA in
        !           804:        some circumstances.
        !           805: 
        !           806:        Fix bug which caused dnsmasq to become unresponsive if it 
        !           807:        failed to send packets due to a network interface disappearing.
        !           808:        Thanks to Niels Peen for spotting this.
        !           809: 
        !           810:        Fix problem with --local-service option on big-endian platforms
        !           811:        Thanks to Richard Genoud for the patch.
1.1.1.3   misho     812: 
                    813: 
1.1.1.2   misho     814: version 2.71
1.1.1.4 ! misho     815:        Subtle change to error handling to help DNSSEC validation 
        !           816:        when servers fail to provide NODATA answers for 
        !           817:        non-existent DS records.
        !           818: 
        !           819:        Tweak code which removes DNSSEC records from answers when
        !           820:        not required. Fixes broken answers when additional section
        !           821:        has real records in it. Thanks to Marco Davids for the bug 
        !           822:        report.
        !           823: 
        !           824:        Fix DNSSEC validation of ANY queries. Thanks to Marco Davids
        !           825:        for spotting that too.
        !           826: 
        !           827:        Fix total DNS failure and 100% CPU use if cachesize set to zero,
        !           828:        regression introduced in 2.69. Thanks to James Hunt and
        !           829:        the Ubuntu crowd for assistance in fixing this.
1.1.1.2   misho     830: 
                    831: 
                    832: version 2.70
1.1.1.4 ! misho     833:        Fix crash, introduced in 2.69, on TCP request when dnsmasq
        !           834:        compiled with DNSSEC support, but running without DNSSEC
        !           835:        enabled. Thanks to Manish Sing for spotting that one.
1.1.1.2   misho     836: 
1.1.1.4 ! misho     837:        Fix regression which broke ipset functionality. Thanks to 
        !           838:        Wang Jian for the bug report.
1.1.1.2   misho     839: 
                    840: 
                    841: version 2.69
1.1.1.4 ! misho     842:        Implement dynamic interface discovery on *BSD. This allows
        !           843:        the constructor: syntax to be used in dhcp-range for DHCPv6
        !           844:        on the BSD platform. Thanks to Matthias Andree for
        !           845:        valuable research on how to implement this.
        !           846: 
        !           847:        Fix infinite loop associated with some --bogus-nxdomain
        !           848:        configs. Thanks fogobogo for the bug report.
        !           849: 
        !           850:        Fix missing RA RDNS option with configuration like
        !           851:        --dhcp-option=option6:23,[::] Thanks to Tsachi Kimeldorfer
        !           852:        for spotting the problem.
        !           853: 
        !           854:        Add [fd00::] and [fe80::] as special addresses in DHCPv6
        !           855:        options, analogous to [::]. [fd00::] is replaced with the
        !           856:        actual ULA of the interface on the machine running
        !           857:        dnsmasq, [fe80::] with the link-local address. 
        !           858:        Thanks to Tsachi Kimeldorfer for championing this.
        !           859: 
        !           860:        DNSSEC validation and caching. Dnsmasq needs to be
        !           861:        compiled with this enabled, with 
        !           862: 
        !           863:        make dnsmasq COPTS=-DHAVE_DNSSEC
        !           864: 
        !           865:        this adds dependencies on the nettle crypto library and the 
        !           866:        gmp maths library. It's possible to have these linked
        !           867:        statically with
        !           868: 
        !           869:        make dnsmasq COPTS='-DHAVE_DNSSEC -DHAVE_DNSSEC_STATIC'
        !           870: 
        !           871:        which bloats the dnsmasq binary, but saves the size of 
        !           872:        the shared libraries which are much bigger.
        !           873: 
        !           874:        To enable, DNSSEC, you will need a set of
        !           875:        trust-anchors. Now that the TLDs are signed, this can be
        !           876:        the keys for the root zone, and for convenience they are
        !           877:        included in trust-anchors.conf in the dnsmasq
        !           878:        distribution. You should of course check that these are
        !           879:        legitimate and up-to-date. So, adding
        !           880: 
        !           881:        conf-file=/path/to/trust-anchors.conf
        !           882:        dnssec
        !           883: 
        !           884:        to your config is all that's needed to get things
        !           885:        working. The upstream nameservers have to be DNSSEC-capable
        !           886:        too, of course. Many ISP nameservers aren't, but the
        !           887:        Google public nameservers (8.8.8.8 and 8.8.4.4) are.
        !           888:        When DNSSEC is configured, dnsmasq validates any queries 
        !           889:        for domains which are signed. Query results which are 
        !           890:        bogus are replaced with SERVFAIL replies, and results 
        !           891:        which are correctly signed have the AD bit set. In 
        !           892:        addition, and just as importantly, dnsmasq supplies 
        !           893:        correct DNSSEC information to clients which are doing 
        !           894:        their own validation, and caches DNSKEY, DS and RRSIG
        !           895:        records, which significantly improve the performance of 
        !           896:        downstream validators. Setting --log-queries will show 
        !           897:        DNSSEC in action.
        !           898: 
        !           899:        If a domain is returned from an upstream nameserver without 
        !           900:        DNSSEC signature, dnsmasq by default trusts this. This 
        !           901:        means that for unsigned zone (still the majority) there 
        !           902:        is effectively no cost for having DNSSEC enabled. Of course
        !           903:        this allows an attacker to replace a signed record with a 
        !           904:        false unsigned record. This is addressed by the 
        !           905:        --dnssec-check-unsigned flag, which instructs dnsmasq
        !           906:        to prove that an unsigned record is legitimate, by finding  
        !           907:        a secure proof that the zone containing the record is not
        !           908:        signed. Doing this has costs (typically one or two extra
        !           909:        upstream queries). It also has a nasty failure mode if
        !           910:        dnsmasq's upstream nameservers are not DNSSEC capable. 
        !           911:        Without --dnssec-check-unsigned using such an upstream
        !           912:        server will simply result in not queries being validated; 
        !           913:        with --dnssec-check-unsigned enabled and a 
        !           914:        DNSSEC-ignorant upstream server, _all_ queries will fail.
        !           915: 
        !           916:        Note that DNSSEC requires that the local time is valid and 
        !           917:        accurate, if not then DNSSEC validation will fail. NTP 
        !           918:        should be running. This presents a problem for routers
        !           919:        without a battery-backed clock. To set the time needs NTP 
        !           920:        to do DNS lookups, but lookups will fail until NTP has run.
        !           921:        To address this, there's a flag, --dnssec-no-timecheck 
        !           922:        which disables the time checks (only) in DNSSEC. When dnsmasq
        !           923:        is started and the clock is not synced, this flag should
        !           924:        be used. As soon as the clock is synced, SIGHUP dnsmasq. 
        !           925:        The SIGHUP clears the cache of partially-validated data and
        !           926:        resets the no-timecheck flag, so that all DNSSEC checks 
        !           927:        henceforward will be complete.
        !           928: 
        !           929:        The development of DNSSEC in dnsmasq was started by 
        !           930:        Giovanni Bajo, to whom huge thanks are owed. It has been
        !           931:        supported by Comcast, whose techfund grant has allowed for 
        !           932:        an invaluable period of full-time work to get it to 
        !           933:        a workable state.
        !           934: 
        !           935:        Add --rev-server. Thanks to Dave Taht for suggesting this.
        !           936: 
        !           937:        Add --servers-file. Allows dynamic update of upstream servers 
        !           938:        full access to configuration. 
        !           939: 
        !           940:        Add --local-service. Accept DNS queries only from hosts 
        !           941:        whose address is on a local subnet, ie a subnet for which 
        !           942:        an interface exists on the server. This option
        !           943:        only has effect if there are no --interface --except-interface,
        !           944:        --listen-address or --auth-server options. It is intended 
        !           945:        to be set as a default on installation, to allow
        !           946:        unconfigured installations to be useful but also safe from 
        !           947:        being used for DNS amplification attacks.
        !           948: 
        !           949:        Fix crashes in cache_get_cname_target() when dangling CNAMEs
        !           950:        encountered. Thanks to Andy and the rt-n56u project for
        !           951:        find this and helping to chase it down.
        !           952: 
        !           953:        Fix wrong RCODE in authoritative DNS replies to PTR queries. The
        !           954:        correct answer was included, but the RCODE was set to NXDOMAIN.
        !           955:        Thanks to Craig McQueen for spotting this.
1.1.1.2   misho     956: 
1.1.1.4 ! misho     957:        Make statistics available as DNS queries in the .bind TLD as 
        !           958:        well as logging them.
1.1.1.2   misho     959: 
                    960: 
                    961: version 2.68
1.1.1.4 ! misho     962:        Use random addresses for DHCPv6 temporary address
        !           963:        allocations, instead of algorithmically determined stable
        !           964:        addresses.
        !           965: 
        !           966:        Fix bug which meant that the DHCPv6 DUID was not available
        !           967:        in DHCP script runs during the lifetime of the dnsmasq
        !           968:        process which created the DUID de-novo. Once the DUID was
        !           969:        created and stored in the lease file and dnsmasq
        !           970:        restarted, this bug disappeared.
        !           971: 
        !           972:        Fix bug introduced in 2.67 which could result in erroneous
        !           973:        NXDOMAIN returns to CNAME queries.
        !           974: 
        !           975:        Fix build failures on MacOS X and openBSD.
        !           976: 
        !           977:        Allow subnet specifications in --auth-zone to be interface 
        !           978:        names as well as address literals. This makes it possible
        !           979:        to configure authoritative DNS when local address ranges
        !           980:        are dynamic and works much better than the previous
        !           981:        work-around which exempted constructed DHCP ranges from the
        !           982:        IP address filtering. As a consequence, that work-around
        !           983:        is removed. Under certain circumstances, this change wil
        !           984:        break existing configuration: if you're relying on the
        !           985:        constructed-range exception, you need to change --auth-zone
        !           986:        to specify the same interface as is used to construct your
        !           987:        DHCP ranges, probably with a trailing "/6" like this: 
        !           988:        --auth-zone=example.com,eth0/6 to limit the addresses to
        !           989:        IPv6 addresses of eth0.
        !           990: 
        !           991:        Fix problems when advertising deleted IPv6 prefixes. If
        !           992:        the prefix is deleted (rather than replaced), it doesn't
        !           993:        get advertised with zero preferred time. Thanks to Tsachi
        !           994:        for the bug report. 
        !           995: 
        !           996:        Fix segfault with some locally configured CNAMEs. Thanks
        !           997:        to Andrew Childs for spotting the problem.
        !           998: 
        !           999:        Fix memory leak on re-reading /etc/hosts and friends,
        !          1000:        introduced in 2.67.
        !          1001: 
        !          1002:        Check the arrival interface of incoming DNS and TFTP
        !          1003:        requests via IPv6, even in --bind-interfaces mode. This
        !          1004:        isn't possible for IPv4 and can generate scary warnings,
        !          1005:        but as it's always possible for IPv6 (the API always
        !          1006:        exists) then we should do it always. 
        !          1007: 
        !          1008:        Tweak the rules on prefix-lengths in --dhcp-range for
        !          1009:        IPv6. The new rule is that the specified prefix length
        !          1010:        must be larger than or equal to the prefix length of the
        !          1011:        corresponding address on the local interface. 
1.1.1.2   misho    1012: 
                   1013: 
                   1014: version 2.67
1.1.1.4 ! misho    1015:        Fix crash if upstream server returns SERVFAIL when
        !          1016:        --conntrack in use. Thanks to Giacomo Tazzari for finding
        !          1017:        this and supplying the patch. 
        !          1018: 
        !          1019:        Repair regression in 2.64. That release stopped sending
        !          1020:        lease-time information in the reply to DHCPINFORM
        !          1021:        requests, on the correct grounds that it was a standards
        !          1022:        violation. However, this broke the dnsmasq-specific
        !          1023:        dhcp_lease_time utility. Now, DHCPINFORM returns
        !          1024:        lease-time only if it's specifically requested
        !          1025:        (maintaining standards) and the dhcp_lease_time utility
        !          1026:        has been taught to ask for it (restoring functionality). 
        !          1027: 
        !          1028:        Fix --dhcp-match, --dhcp-vendorclass and --dhcp-userclass
        !          1029:        to work with BOOTP and well as DHCP. Thanks to Peter
        !          1030:        Korsgaard for spotting the problem. 
        !          1031: 
        !          1032:        Add --synth-domain. Thanks to Vishvananda Ishaya for
        !          1033:        suggesting this.
        !          1034: 
        !          1035:        Fix failure to compile ipset.c if old kernel headers are
        !          1036:        in use. Thanks to Eugene Rudoy for pointing this out.
        !          1037: 
        !          1038:        Handle IPv4 interface-address labels in Linux. These are
        !          1039:        often used to emulate the old IP-alias addresses. Before,
        !          1040:        using --interface=eth0 would service all the addresses of
        !          1041:        eth0, including ones configured as aliases, which appear
        !          1042:        in ifconfig as eth0:0. Now, only addresses with the label
        !          1043:        eth0 are active. This is not backwards compatible: if you
        !          1044:        want to continue to bind the aliases too, you need to add
        !          1045:        eg. --interface=eth0:0 to the config. 
        !          1046: 
        !          1047:        Fix "failed to set SO_BINDTODEVICE on DHCP socket: Socket 
        !          1048:        operation on non-socket" error on startup with
        !          1049:        configurations which have exactly one --interface option
        !          1050:        and do RA but _not_ DHCPv6. Thanks to Trever Adams for the
        !          1051:        bug report.
        !          1052: 
        !          1053:        Generalise --interface-name to cope with IPv6 addresses
        !          1054:        and multiple addresses per interface per address family.
        !          1055: 
        !          1056:        Fix option parsing for --dhcp-host, which was generating a
        !          1057:        spurious error when all seven possible items were
        !          1058:        included. Thanks to Zhiqiang Wang for the bug report.
        !          1059: 
        !          1060:        Remove restriction on prefix-length in --auth-zone. Thanks
        !          1061:        to Toke Hoiland-Jorgensen for suggesting this.
        !          1062: 
        !          1063:        Log when the maximum number of concurrent DNS queries is
        !          1064:        reached. Thanks to Marcelo Salhab Brogliato for the patch.
        !          1065: 
        !          1066:        If wildcards are used in --interface, don't assume that 
        !          1067:        there will only ever be one available interface for DHCP
        !          1068:        just because there is one at start-up. More may appear, so
        !          1069:        we can't use SO_BINDTODEVICE. Thanks to Natrio for the bug
        !          1070:        report. 
        !          1071: 
        !          1072:        Increase timeout/number of retries in TFTP to accommodate
        !          1073:        AudioCodes Voice Gateways doing streaming writes to flash.
        !          1074:        Thanks to Damian Kaczkowski for spotting the problem.
        !          1075: 
        !          1076:        Fix crash with empty DHCP string options when adding zero
        !          1077:        terminator. Thanks to Patrick McLean for the bug report.
        !          1078: 
        !          1079:        Allow hostnames to start with a number, as allowed in
        !          1080:        RFC-1123. Thanks to Kyle Mestery for the patch. 
        !          1081: 
        !          1082:        Fixes to DHCP FQDN option handling: don't terminate FQDN
        !          1083:        if domain not known and allow a FQDN option with blank
        !          1084:        name to request that a FQDN option is returned in the
        !          1085:        reply. Thanks to Roy Marples for the patch.
        !          1086: 
        !          1087:        Make --clear-on-reload apply to setting upstream servers
        !          1088:        via DBus too.
        !          1089: 
        !          1090:        When the address which triggered the construction of an
        !          1091:        advertised IPv6 prefix disappears, continue to advertise 
        !          1092:        the prefix for up to 2 hours, with the preferred lifetime
        !          1093:        set to zero. This satisfies RFC 6204 4.3 L-13 and makes
        !          1094:        things work better if a prefix disappears without being
        !          1095:        deprecated first. Thanks to Uwe Schindler for persuasively
        !          1096:        arguing for this.
        !          1097: 
        !          1098:        Fix MAC address enumeration on *BSD. Thanks to Brad Smith
        !          1099:        for the bug report.
        !          1100: 
        !          1101:        Support RFC-4242 information-refresh-time options in the 
        !          1102:        reply to DHCPv6 information-request. The lease time of the
        !          1103:        smallest valid dhcp-range is sent. Thanks to Uwe Schindler 
        !          1104:        for suggesting this.
        !          1105: 
        !          1106:        Make --listen-address higher priority than --except-interface
        !          1107:        in all circumstances. Thanks to Thomas Hood for the bugreport.
        !          1108: 
        !          1109:        Provide independent control over which interfaces get TFTP 
        !          1110:        service. If enable-tftp is given a list of interfaces, then TFTP 
        !          1111:        is provided on those. Without the list, the previous behaviour
        !          1112:        (provide TFTP to the same interfaces we provide DHCP to) 
        !          1113:        is retained. Thanks to Lonnie Abelbeck for the suggestion.
        !          1114: 
        !          1115:        Add --dhcp-relay config option. Many thanks to vtsl.net
        !          1116:        for sponsoring this development.
        !          1117: 
        !          1118:        Fix crash with empty tag: in --dhcp-range. Thanks to
        !          1119:        Kaspar Schleiser for the bug report.
        !          1120: 
        !          1121:        Add "baseline" and "bloatcheck" makefile targets, for 
        !          1122:        revealing size changes during development. Thanks to
        !          1123:        Vladislav Grishenko for the patch. 
        !          1124: 
        !          1125:        Cope with DHCPv6 clients which send REQUESTs without
        !          1126:        address options - treat them as SOLICIT with rapid commit.
        !          1127: 
        !          1128:        Support identification of clients by MAC address in
        !          1129:        DHCPv6. When using a relay, the relay must support RFC
        !          1130:        6939 for this to work. It always works for directly
        !          1131:        connected clients. Thanks to Vladislav Grishenko
        !          1132:        for prompting this feature.
        !          1133: 
        !          1134:        Remove the rule for constructed DHCP ranges that the local
        !          1135:        address must be either the first or last address in the
        !          1136:        range. This was originally to avoid SLAAC addresses, but
        !          1137:        we now explicitly autoconfig and privacy addresses instead.  
        !          1138: 
        !          1139:        Update Polish translation. Thanks to Jan Psota.
        !          1140: 
        !          1141:        Fix problem in DHCPv6 vendorclass/userclass matching
        !          1142:        code. Thanks to Tanguy Bouzeloc for the patch.
        !          1143: 
        !          1144:        Update Spanish translation. Thanks to Vicente Soriano.
        !          1145: 
        !          1146:        Add --ra-param option. Thanks to Vladislav Grishenko for
        !          1147:        inspiration on this.
        !          1148: 
        !          1149:        Add --add-subnet configuration, to tell upstream DNS
        !          1150:        servers where the original client is. Thanks to DNSthingy
        !          1151:        for sponsoring this feature.
        !          1152: 
        !          1153:        Add --quiet-dhcp, --quiet-dhcp6 and --quiet-ra. Thanks to
        !          1154:        Kevin Darbyshire-Bryant for the initial patch.
        !          1155: 
        !          1156:        Allow A/AAAA records created by --interface-name to be the
        !          1157:        target of --cname. Thanks to Hadmut Danisch for the
        !          1158:        suggestion. 
        !          1159: 
        !          1160:        Avoid treating a --dhcp-host which has an IPv6 address
        !          1161:        as eligible for use with DHCPv4 on the grounds that it has
        !          1162:        no address, and vice-versa. Thanks to Yury Konovalov for
        !          1163:        spotting the problem.
        !          1164: 
        !          1165:        Do a better job caching dangling CNAMEs. Thanks to Yves
        !          1166:        Dorfsman for spotting the problem.
1.1.1.2   misho    1167: 
                   1168: 
1.1       misho    1169: version 2.66
1.1.1.4 ! misho    1170:        Add the ability to act as an authoritative DNS
        !          1171:        server. Dnsmasq can now answer queries from the wider 'net
        !          1172:        with local data, as long as the correct NS records are set
        !          1173:        up. Only local data is provided, to avoid creating an open
        !          1174:        DNS relay. Zone transfer is supported, to allow secondary
        !          1175:        servers to be configured.
        !          1176: 
        !          1177:        Add "constructed DHCP ranges" for DHCPv6. This is intended
        !          1178:        for IPv6 routers which get prefixes dynamically via prefix
        !          1179:        delegation. With suitable configuration, stateful DHCPv6
        !          1180:        and RA can happen automatically as prefixes are delegated
        !          1181:        and then deprecated, without having  to re-write the
        !          1182:        dnsmasq configuration file or restart the daemon. Thanks to
        !          1183:        Steven Barth for extensive testing and development work on
        !          1184:        this idea.
        !          1185: 
        !          1186:        Fix crash on startup on Solaris 11. Regression probably
        !          1187:        introduced in 2.61.  Thanks to Geoff Johnstone for the
        !          1188:        patch.
        !          1189: 
        !          1190:        Add code to make behaviour for TCP DNS requests that same
        !          1191:        as for UDP requests, when a request arrives for an allowed 
        !          1192:        address, but via a banned interface. This change is only
        !          1193:        active on Linux, since the relevant API is missing (AFAIK)
        !          1194:        on other platforms. Many thanks to Tomas Hozza for
        !          1195:        spotting the problem, and doing invaluable discovery of
        !          1196:        the obscure and undocumented API required for the solution.
        !          1197: 
        !          1198:        Don't send the default DHCP option advertising dnsmasq as
        !          1199:        the local DNS server if dnsmasq is configured to not act
        !          1200:        as DNS server, or it's configured to a non-standard port.
        !          1201: 
        !          1202:        Add DNSMASQ_CIRCUIT_ID, DNSMASQ_SUBSCRIBER_ID,
        !          1203:        DNSMASQ_REMOTE_ID variables to the environment of the
        !          1204:        lease-change script (and the corresponding Lua). These hold
        !          1205:        information inserted into the DHCP request by a DHCP relay
        !          1206:        agent. Thanks to Lakefield Communications for providing a
        !          1207:        bounty for this addition.
        !          1208: 
        !          1209:        Fixed crash, introduced in 2.64, whilst handling DHCPv6
        !          1210:        information-requests with some common configurations.
        !          1211:        Thanks to Robert M. Albrecht for the bug report and 
        !          1212:        chasing the problem.
        !          1213: 
        !          1214:        Add --ipset option. Thanks to Jason A. Donenfeld for the 
        !          1215:        patch.
        !          1216: 
        !          1217:        Don't erroneously reject some option names in --dhcp-match
        !          1218:        options. Thanks to Benedikt Hochstrasser for the bug report.
        !          1219: 
        !          1220:        Allow a trailing '*' wildcard in all interface-name
        !          1221:        configurations. Thanks to Christian Parpart for the patch.
        !          1222: 
        !          1223:        Handle the situation where libc headers define
        !          1224:        SO_REUSEPORT, but the kernel in use doesn't, to cope with
        !          1225:        the introduction of this option to Linux. Thanks to Rich
        !          1226:        Felker for the bug report.
        !          1227: 
        !          1228:        Update Polish translation. Thanks to Jan Psota.
        !          1229: 
        !          1230:        Fix crash if the configured DHCP lease limit is
        !          1231:        reached. Regression occurred in 2.61. Thanks to Tsachi for
        !          1232:        the bug report. 
        !          1233: 
        !          1234:        Update the French translation. Thanks to Gildas le Nadan.
        !          1235: 
1.1       misho    1236: 
                   1237: version 2.65
1.1.1.4 ! misho    1238:        Fix regression which broke forwarding of queries sent via
        !          1239:        TCP which are not for A and AAAA and which were directed to
        !          1240:        non-default servers. Thanks to Niax for the bug report.
        !          1241: 
        !          1242:        Fix failure to build with DHCP support excluded. Thanks to 
        !          1243:        Gustavo Zacarias for the patch.
        !          1244: 
        !          1245:        Fix nasty regression in 2.64 which completely broke caching.
1.1       misho    1246: 
                   1247: 
                   1248: version 2.64
1.1.1.4 ! misho    1249:        Handle DHCP FQDN options with all flag bits zero and
        !          1250:        --dhcp-client-update set. Thanks to Bernd Krumbroeck for
        !          1251:        spotting the problem.
        !          1252: 
        !          1253:        Finesse the check for /etc/hosts names which conflict with
        !          1254:        DHCP names. Previously a name/address pair in /etc/hosts
        !          1255:        which didn't match the name/address of a DHCP lease would
        !          1256:        generate a warning. Now that only happens if there is not
        !          1257:        also a match. This allows multiple addresses for a name in 
        !          1258:        /etc/hosts with one of them assigned via DHCP.
        !          1259: 
        !          1260:        Fix broken vendor-option processing for BOOTP. Thanks to
        !          1261:        Hans-Joachim Baader for the bug report.
        !          1262: 
        !          1263:        Don't report spurious netlink errors, regression in
        !          1264:        2.63. Thanks to Vladislav Grishenko for the patch.
        !          1265: 
        !          1266:        Flag DHCP or DHCPv6 in startup logging. Thanks to 
        !          1267:        Vladislav Grishenko for the patch.
        !          1268: 
        !          1269:        Add SetServersEx method in DBus interface. Thanks to Dan
        !          1270:        Williams for the patch.
        !          1271: 
        !          1272:        Add SetDomainServers method in DBus interface. Thanks to
        !          1273:        Roy Marples for the patch.
        !          1274: 
        !          1275:        Fix build with later Lua libraries. Thanks to Cristian
        !          1276:        Rodriguez for the patch.
        !          1277: 
        !          1278:        Add --max-cache-ttl option. Thanks to Dennis Kaarsemaker
        !          1279:        for the patch.
        !          1280: 
        !          1281:        Fix breakage of --host-record parsing, resulting in
        !          1282:        infinite loop at startup. Regression in 2.63. Thanks to
        !          1283:        Haim Gelfenbeyn for spotting this.
        !          1284: 
        !          1285:        Set SO_REUSEADDRESS and SO_V6ONLY options on the DHCPv6
        !          1286:        socket, this allows multiple instances of dnsmasq on a
        !          1287:        single machine, in the same way as for DHCPv4. Thanks to
        !          1288:        Gene Czarcinski and Vladislav Grishenko for work on this.
        !          1289: 
        !          1290:        Fix DHCPv6 to do access control correctly when it's 
        !          1291:        configured with --listen-address. Thanks to
        !          1292:        Gene Czarcinski for sorting this out. 
        !          1293: 
        !          1294:        Add a "wildcard" dhcp-range which works for any IPv6
        !          1295:        subnet, --dhcp-range=::,static Useful for Stateless 
        !          1296:        DHCPv6. Thanks to Vladislav Grishenko for the patch.
        !          1297: 
        !          1298:        Don't include lease-time in DHCPACK replies to DHCPINFORM
        !          1299:        queries, since RFC-2131 says we shouldn't. Thanks to
        !          1300:        Wouter Ibens for pointing this out.  
        !          1301: 
        !          1302:        Makefile tweak to do dependency checking on header files.
        !          1303:        Thanks to Johan Peeters for the patch.
        !          1304: 
        !          1305:        Check interface for outgoing unsolicited router 
        !          1306:        advertisements, rather than relying on interface address 
        !          1307:        configuration. Thanks to Gene Czarinski for the patch.
        !          1308: 
        !          1309:        Handle better attempts to transmit on interfaces which are
        !          1310:        still doing DAD, and specifically do not just transmit
        !          1311:        without setting source address and interface, since this
        !          1312:        can cause very puzzling effects when a router
        !          1313:        advertisement goes astray. Thanks again to Gene Czarinski.
        !          1314: 
        !          1315:        Get RA timers right when there is more than one
        !          1316:        dhcp-range on a subnet.
        !          1317: 
1.1       misho    1318: 
                   1319: version 2.63
1.1.1.4 ! misho    1320:        Do duplicate dhcp-host address check in --test mode.
        !          1321: 
        !          1322:        Check that tftp-root directories are accessible before
        !          1323:        start-up. Thanks to Daniel Veillard for the initial patch.
        !          1324: 
        !          1325:        Allow more than one --tfp-root flag. The per-interface
        !          1326:        stuff is pointless without that.
        !          1327: 
        !          1328:        Add --bind-dynamic. A hybrid mode between the default and
        !          1329:        --bind-interfaces which copes with dynamically created
        !          1330:        interfaces. 
1.1       misho    1331: 
1.1.1.4 ! misho    1332:        A couple of fixes to the build system for Android. Thanks
        !          1333:        to Metin Kaya for the patches.
1.1       misho    1334: 
1.1.1.4 ! misho    1335:        Remove the interface:<interface> argument in --dhcp-range, and
        !          1336:        the interface argument to --enable-tftp. These were a
        !          1337:        still-born attempt to allow automatic isolated
        !          1338:        configuration by libvirt, but have never (to my knowledge)
        !          1339:        been used, had very strange semantics, and have been
        !          1340:        superseded by other mechanisms. 
1.1       misho    1341: 
1.1.1.4 ! misho    1342:        Fixed bug logging filenames when duplicate dhcp-host
        !          1343:        addresses are found. Thanks to John Hanks for the patch.
1.1       misho    1344: 
1.1.1.4 ! misho    1345:        Fix regression in 2.61 which broke caching of CNAME
        !          1346:        chains. Thanks to Atul Gupta for the bug report.
        !          1347: 
        !          1348:        Allow the target of a --cname flag to be another --cname.
        !          1349: 
        !          1350:        Teach DHCPv6 about the RFC 4242 information-refresh-time
        !          1351:        option, and add parsing if the minutes, hours and days
        !          1352:        format for options. Thanks to Francois-Xavier Le Bail for
        !          1353:        the suggestion.
        !          1354: 
        !          1355:        Allow "w" (for week) as multiplier in lease times, as well
        !          1356:        as seconds, minutes, hours and days.  Álvaro Gámez Machado 
        !          1357:        spotted the omission.
        !          1358: 
        !          1359:        Update French translation. Thanks to Gildas Le Nadan.
        !          1360: 
        !          1361:        Allow a DBus service name to be given with --enable-dbus
        !          1362:        which overrides the default,
        !          1363:        uk.org.thekelleys.dnsmasq. Thanks to Mathieu
        !          1364:        Trudel-Lapierre for the patch. 
        !          1365: 
        !          1366:        Set the "prefix on-link" bit in Router
        !          1367:        Advertisements. Thanks to Gui Iribarren for the patch.
1.1       misho    1368: 
                   1369: 
                   1370: version 2.62
1.1.1.4 ! misho    1371:        Update German translation. Thanks to Conrad Kostecki.
1.1       misho    1372: 
1.1.1.4 ! misho    1373:        Cope with router-solict packets which don't have a valid 
        !          1374:        source address. Thanks to Vladislav Grishenko for the patch.
1.1       misho    1375: 
1.1.1.4 ! misho    1376:        Fixed bug which caused missing periodic router
        !          1377:        advertisements with some configurations. Thanks to
        !          1378:        Vladislav Grishenko for the patch.
1.1       misho    1379: 
1.1.1.4 ! misho    1380:        Fixed bug which broke DHCPv6/RA with prefix lengths 
        !          1381:        which are not divisible by 8. Thanks to Andre Coetzee 
        !          1382:        for spotting this.
1.1       misho    1383: 
1.1.1.4 ! misho    1384:        Fix non-response to router-solicitations when
        !          1385:        router-advertisement configured, but DHCPv6 not
        !          1386:        configured. Thanks to Marien Zwart for the patch.
1.1       misho    1387: 
1.1.1.4 ! misho    1388:        Add --dns-rr, to allow arbitrary DNS resource records.
1.1       misho    1389: 
1.1.1.4 ! misho    1390:        Fixed bug which broke RA scheduling when an interface had
        !          1391:        two addresses in the same network. Thanks to Jim Bos for
        !          1392:        his help nailing this.
1.1       misho    1393: 
                   1394: version 2.61
1.1.1.4 ! misho    1395:        Re-write interface discovery code on *BSD to use
        !          1396:        getifaddrs. This is more portable, more straightforward,
        !          1397:        and allows us to find the prefix length for IPv6
        !          1398:        addresses.
        !          1399: 
        !          1400:        Add ra-names, ra-stateless and slaac keywords for DHCPv6.
        !          1401:        Dnsmasq can now synthesise AAAA records for dual-stack 
        !          1402:        hosts which get IPv6 addresses via SLAAC. It is also now 
        !          1403:        possible to use SLAAC and stateless DHCPv6, and to 
        !          1404:        tell clients to use SLAAC addresses as well as DHCP ones.
        !          1405:        Thanks to Dave Taht for help with this.
        !          1406: 
        !          1407:        Add --dhcp-duid to allow DUID-EN uids to be used.
        !          1408: 
        !          1409:        Explicitly send DHCPv6 replies to the correct port, instead
        !          1410:        of relying on clients to send requests with the correct
        !          1411:        source address, since at least one client in the wild gets
        !          1412:        this wrong. Thanks to Conrad Kostecki for help tracking
        !          1413:        this down.
        !          1414: 
        !          1415:        Send a preference value of 255 in DHCPv6 replies when 
        !          1416:        --dhcp-authoritative is in effect. This tells clients not
        !          1417:        to wait around for other DHCP servers.
        !          1418: 
        !          1419:        Better logging of DHCPv6 options.
        !          1420: 
        !          1421:        Add --host-record. Thanks to Rob Zwissler for the
        !          1422:        suggestion.
        !          1423: 
        !          1424:        Invoke the DHCP script with action "tftp" when a TFTP file
        !          1425:        transfer completes. The size of the file, address to which
        !          1426:        it was sent and complete pathname are supplied. Note that
        !          1427:        version 2.60 introduced some script incompatibilities
        !          1428:        associated with DHCPv6, and this is a further change. To
        !          1429:        be safe, scripts should ignore unknown actions, and if
        !          1430:        not IPv6-aware, should exit if the environment
        !          1431:        variable DNSMASQ_IAID is set. The use-case for this is
        !          1432:        to track netboot/install.  Suggestion from Shantanu
        !          1433:        Gadgil.
        !          1434: 
        !          1435:        Update contrib/port-forward/dnsmasq-portforward to reflect
        !          1436:        the above.
        !          1437: 
        !          1438:        Set the environment variable DNSMASQ_LOG_DHCP when running
        !          1439:        the script id --log-dhcp is in effect, so that script can
        !          1440:        taylor their logging verbosity. Suggestion from Malte
        !          1441:        Forkel.
        !          1442: 
        !          1443:        Arrange that addresses specified with --listen-address
        !          1444:        work even if there is no interface carrying the
        !          1445:        address. This is chiefly useful for IPv4 loopback
        !          1446:        addresses, where any address in 127.0.0.0/8 is a valid
        !          1447:        loopback address, but normally only 127.0.0.1 appears on
        !          1448:        the lo interface. Thanks to Mathieu Trudel-Lapierre for
        !          1449:        the idea and initial patch. 
        !          1450: 
        !          1451:        Fix crash, introduced in 2.60, when a DHCPINFORM is
        !          1452:        received from a network which has no valid dhcp-range.
        !          1453:        Thanks to Stephane Glondu for the bug report.
        !          1454: 
        !          1455:        Add a new DHCP lease time keyword, "deprecated" for
        !          1456:        --dhcp-range. This is only valid for IPv6, and sets the
        !          1457:        preferred lease time for both DHCP and RA to zero. The
        !          1458:        effect is that clients can continue to use the address 
        !          1459:        for existing connections, but new connections will use
        !          1460:        other addresses, if they exist. This makes hitless
        !          1461:        renumbering at least possible.
        !          1462: 
        !          1463:        Fix bug in address6_available() which caused DHCPv6 lease
        !          1464:        acquisition to fail if more than one dhcp-range in use.
        !          1465: 
        !          1466:        Provide RDNSS and DNSSL data in router advertisements,
        !          1467:        using the settings provided for DHCP options
        !          1468:        option6:domain-search and option6:dns-server.
        !          1469: 
        !          1470:        Tweak logo/favicon.ico to add some transparency. Thanks to
        !          1471:        SamLT for work on this.
        !          1472: 
        !          1473:        Don't cache data from non-recursive nameservers, since it
        !          1474:        may erroneously look like a valid CNAME to a non-existent
        !          1475:        name. Thanks to Ben Winslow for finding this.
        !          1476: 
        !          1477:        Call SO_BINDTODEVICE on the DHCP socket(s) when doing DHCP
        !          1478:        on exactly one interface and --bind-interfaces is set. This 
        !          1479:        makes the OpenStack use-case of one dnsmasq per virtual
        !          1480:        interface work. This is only available on Linux; it's not
        !          1481:        supported on other platforms. Thanks to Vishvananda Ishaya
        !          1482:        and the OpenStack team for the suggestion.
        !          1483: 
        !          1484:        Updated French translation. Thanks to Gildas Le Nadan.
        !          1485: 
        !          1486:        Give correct from-cache answers to explicit CNAME queries.
        !          1487:        Thanks to Rob Zwissler for spotting this.
        !          1488: 
        !          1489:        Add --tftp-lowercase option. Thanks to Oliver Rath for the
        !          1490:        patch. 
        !          1491: 
        !          1492:        Ensure that the DBus DhcpLeaseUpdated events are generated
        !          1493:        when a lease goes through INIT_REBOOT state, even if the
        !          1494:        dhcp-script is not in use. Thanks to Antoaneta-Ecaterina
        !          1495:        Ene for the patch.
        !          1496: 
        !          1497:        Fix failure of TFTP over IPv4 on OpenBSD platform. Thanks
        !          1498:        to Brad Smith for spotting this.
        !          1499: 
1.1       misho    1500: 
                   1501: version 2.60
1.1.1.4 ! misho    1502:        Fix compilation problem in Mac OS X Lion. Thanks to Olaf
        !          1503:        Flebbe for the patch.
        !          1504: 
        !          1505:        Fix DHCP when using --listen-address with an IP address
        !          1506:        which is not the primary address of an interface.
1.1       misho    1507: 
1.1.1.4 ! misho    1508:        Add --dhcp-client-update option.
1.1       misho    1509: 
1.1.1.4 ! misho    1510:        Add Lua integration. Dnsmasq can now execute a DHCP
        !          1511:        lease-change script written in Lua. This needs to be
        !          1512:        enabled at compile time by setting HAVE_LUASCRIPT in 
        !          1513:        src/config.h or running "make COPTS=-DHAVE_LUASCRIPT"
        !          1514:        Thanks to Jan-Piet Mens for the idea and proof-of-concept 
        !          1515:        implementation.
        !          1516: 
        !          1517:        Tidied src/config.h to distinguish between
        !          1518:        platform-dependent compile-time options which are selected
        !          1519:        automatically, and builder-selectable compile time
        !          1520:        options. Document the latter better, and describe how to
        !          1521:        set them from the make command line.
        !          1522: 
        !          1523:        Tidied up IPPROTO_IP/SOL_IP (and IPv6 equivalent)
        !          1524:        confusion. IPPROTO_IP works everywhere now.
        !          1525: 
        !          1526:        Set TOS on DHCP sockets, this improves things on busy
        !          1527:        wireless networks. Thanks to Dave Taht for the patch.
        !          1528: 
        !          1529:        Determine VERSION automatically based on git magic:
        !          1530:        release tags or hash values.
        !          1531: 
        !          1532:        Improve start-up speed when reading large hosts files 
        !          1533:        containing many distinct addresses.
        !          1534: 
        !          1535:        Fix problem if dnsmasq is started without the stdin,
        !          1536:        stdout and stderr file descriptors open. This can manifest
        !          1537:        itself as 100% CPU use. Thanks to Chris Moore for finding
        !          1538:        this.
        !          1539: 
        !          1540:        Fix shell-scripting bug in bld/pkg-wrapper. Thanks to 
        !          1541:        Mark Mitchell for the patch.
        !          1542: 
        !          1543:        Allow the TFP server or boot server in --pxe-service, to
        !          1544:        be a domain name instead of an IP address. This allows for
        !          1545:        round-robin to multiple servers, in the same way as
        !          1546:        --dhcp-boot. A good suggestion from Cristiano Cumer.
        !          1547: 
        !          1548:        Support BUILDDIR variable in the Makefile. Allows builds 
        !          1549:        for multiple archs from the same source tree with eg.
        !          1550:        make BUILDDIR=linux             (relative to dnsmasq tree)
        !          1551:        make BUILDDIR=/tmp/openbsd      (absolute path)
        !          1552:        If BUILDDIR is not set, compilation happens in the src
        !          1553:        directory, as before. Suggestion from Mark Mitchell.
        !          1554: 
        !          1555:        Support DHCPv6. Support is there for the sort of things
        !          1556:        the existing v4 server does, including tags, options, 
        !          1557:        static addresses and relay support. Missing is prefix 
        !          1558:        delegation, which is probably not required in the dnsmasq
        !          1559:        niche, and an easy way to accept prefix delegations from
        !          1560:        an upstream DHCPv6 server, which is. Future plans include
        !          1561:        support for DHCPv6 router option and MAC address option
        !          1562:        (to make selecting clients by MAC address work like IPv4).
        !          1563:        These will be added as the standards mature.
        !          1564:        This code has been tested, but this is the first release,
        !          1565:        so don't bet the farm on it just yet. Many thanks to all 
        !          1566:        testers who have got it this far.
        !          1567: 
        !          1568:        Support IPv6 router advertisements. This is a
        !          1569:        simple-minded implementation, aimed at providing the
        !          1570:        vestigial RA needed to go alongside IPv6. Is picks up
        !          1571:        configuration from the DHCPv6 conf, and should just need
        !          1572:        enabling with --enable-ra.   
        !          1573: 
        !          1574:        Fix long-standing wrinkle with --localise-queries that
        !          1575:        could result in wrong answers when DNS packets arrive
        !          1576:        via an interface other than the expected one. Thanks to 
        !          1577:        Lorenzo Milesi and John Hanks for spotting this one.
1.1       misho    1578: 
1.1.1.4 ! misho    1579:        Update French translation. Thanks to Gildas Le Nadan.
1.1       misho    1580: 
1.1.1.4 ! misho    1581:        Update Polish translation. Thanks to Jan Psota.
1.1       misho    1582: 
                   1583: 
                   1584: version 2.59
1.1.1.4 ! misho    1585:        Fix regression in 2.58 which caused failure to start up
        !          1586:        with some combinations of dnsmasq config and IPv6 kernel
        !          1587:        network config. Thanks to Brielle Bruns for the bug
        !          1588:        report.
        !          1589: 
        !          1590:        Improve dnsmasq's behaviour when network interfaces are
        !          1591:        still doing duplicate address detection (DAD). Previously,
        !          1592:        dnsmasq would wait up to 20 seconds at start-up for the
        !          1593:        DAD state to terminate. This is broken for bridge
        !          1594:        interfaces on recent Linux kernels, which don't start DAD
        !          1595:        until the bridge comes up, and so can take arbitrary
        !          1596:        time. The new behaviour lets dnsmasq poll for an arbitrary
        !          1597:        time whilst providing service on other interfaces. Thanks
        !          1598:        to Stephen Hemminger for pointing out the problem.
1.1       misho    1599: 
                   1600: 
                   1601: version 2.58
1.1.1.4 ! misho    1602:        Provide a definition of the SA_SIZE macro where it's 
        !          1603:        missing. Fixes build failure on openBSD.
1.1       misho    1604: 
1.1.1.4 ! misho    1605:        Don't include a zero terminator at the end of messages
        !          1606:        sent to /dev/log when /dev/log is a datagram socket.
        !          1607:        Thanks to Didier Rabound for spotting the problem.
        !          1608: 
        !          1609:        Add --dhcp-sequential-ip flag, to force allocation of IP
        !          1610:        addresses in ascending order. Note that the default
        !          1611:        pseudo-random mode is in general better but some
        !          1612:        server-deployment applications need this.
        !          1613: 
        !          1614:        Fix problem where a server-id of 0.0.0.0 is sent to a
        !          1615:        client when a dhcp-relay is in use if a client renews a
        !          1616:        lease after dnsmasq restart and before any clients on the
        !          1617:        subnet get a new lease. Thanks to Mike Ruiz for assistance
        !          1618:        in chasing this one down. 
        !          1619: 
        !          1620:        Don't return NXDOMAIN to an AAAA query if we have CNAME
        !          1621:        which points to an A record only: NODATA is the correct
        !          1622:        reply in this case. Thanks to Tom Fernandes for spotting
        !          1623:        the problem.
        !          1624: 
        !          1625:        Relax the need to supply a netmask in --dhcp-range for
        !          1626:        networks which use a DHCP relay. Whilst this is still
        !          1627:        desirable, in the absence of a netmask dnsmasq will use
        !          1628:        a default based on the class (A, B, or C) of the address. 
        !          1629:        This should at least remove a cause of mysterious failure 
        !          1630:        for people using RFC1918 addresses and relays.
        !          1631: 
        !          1632:        Add support for Linux conntrack connection marking. If 
        !          1633:        enabled with --conntrack, the connection mark for incoming
        !          1634:        DNS queries will be copied  to the outgoing connections
        !          1635:        used to answer those queries. This allows clever firewall
        !          1636:        and accounting stuff. Only available if dnsmasq is
        !          1637:        compiled with HAVE_CONNTRACK and adds a dependency on 
        !          1638:        libnetfilter-conntrack. Thanks to Ed Wildgoose for the
        !          1639:        initial idea, testing and sponsorship of this function.
        !          1640: 
        !          1641:        Provide a sane error message when someone attempts to 
        !          1642:        match a tag in --dhcp-host.
        !          1643: 
        !          1644:        Tweak the behaviour of --domain-needed, to avoid problems
        !          1645:        with recursive nameservers downstream of dnsmasq. The new
        !          1646:        behaviour only stops A and AAAA queries, and returns
        !          1647:        NODATA rather than NXDOMAIN replies. 
        !          1648: 
        !          1649:        Efficiency fix for very large DHCP configurations, thanks
        !          1650:        to James Gartrell and Mike Ruiz for help with this. 
        !          1651: 
        !          1652:        Allow the TFTP-server address in --dhcp-boot to be a
        !          1653:        domain-name which is looked up in /etc/hosts. This can 
        !          1654:        give multiple IP addresses which are used round-robin,
        !          1655:        thus doing TFTP server load-balancing. Thanks to Sushil
        !          1656:        Agrawal for the patch.
        !          1657: 
        !          1658:        When two tagged dhcp-options for a particular option
        !          1659:        number are both valid, use the one which is valid without
        !          1660:        a tag from the dhcp-range. Allows overriding of the value
        !          1661:        of a DHCP option for a particular host as well as
        !          1662:        per-network values.  So 
        !          1663:        --dhcp-range=set:interface1,......
        !          1664:        --dhcp-host=set:myhost,.....  
        !          1665:        --dhcp-option=tag:interface1,option:nis-domain,"domain1" 
        !          1666:        --dhcp-option=tag:myhost,option:nis-domain,"domain2" 
        !          1667:        will set the NIS-domain to domain1 for hosts in the range, but
        !          1668:        override that to domain2 for a particular host.
        !          1669: 
        !          1670:        Fix bug which resulted in truncated files and timeouts for
        !          1671:        some TFTP transfers. The bug only occurs with netascii
        !          1672:        transfers and needs an unfortunate relationship between
        !          1673:        file size, blocksize and the number of newlines in the
        !          1674:        last block before it manifests itself. Many thanks to 
        !          1675:        Alkis Georgopoulos for spotting the problem and providing
        !          1676:        a comprehensive test-case. 
        !          1677: 
        !          1678:        Fix regression in TFTP server on *BSD platforms introduced
        !          1679:        in version 2.56, due to confusion with sockaddr
        !          1680:        length. Many thanks to Loic Pefferkorn for finding this.
        !          1681: 
        !          1682:        Support scope-ids in IPv6 addresses of nameservers from
        !          1683:        /etc/resolv.conf and in --server options. Eg
        !          1684:        nameserver fe80::202:a412:4512:7bbf%eth0 or
        !          1685:        server=fe80::202:a412:4512:7bbf%eth0. Thanks to 
        !          1686:        Michael Stapelberg for the suggestion.
1.1       misho    1687: 
1.1.1.4 ! misho    1688:        Update Polish translation, thanks to Jan Psota.
1.1       misho    1689: 
1.1.1.4 ! misho    1690:        Update French translation. Thanks to Gildas Le Nadan.
1.1       misho    1691: 
                   1692: 
                   1693: version 2.57
1.1.1.4 ! misho    1694:        Add patches to allow build under Android.
1.1       misho    1695: 
1.1.1.4 ! misho    1696:        Provide our own header for the DNS protocol, rather than
        !          1697:        relying on arpa/nameser.h. This has proved more or less
        !          1698:        defective over the years and the final straw is that it's
        !          1699:        effectively empty on Android.
        !          1700: 
        !          1701:        Fix regression in 2.56 which caused hex constants in
        !          1702:        configuration to be rejected if they contain the '*'
        !          1703:        wildcard.
        !          1704: 
        !          1705:        Correct wrong casts of arguments to ctype.h functions,
        !          1706:        isdigit(), isxdigit() etc. Thanks to Matthias Andree for
        !          1707:        spotting this.
        !          1708: 
        !          1709:        Allow build with IDN support independently from i18n. 
        !          1710:        IDN support continues to be included automatically 
        !          1711:        when i18n is included. 
        !          1712:        'make COPTS=-DHAVE_IDN' is the magic incantation. 
        !          1713: 
        !          1714:        Modify check on extraneous command line junk (added in
        !          1715:        2.56) so that it doesn't complain about extra _empty_ 
        !          1716:        arguments. Otherwise this breaks libvirt.
1.1       misho    1717: 
                   1718: 
                   1719: version 2.56
1.1.1.4 ! misho    1720:        Add a patch to allow dnsmasq to get interface names right in a
        !          1721:        Solaris zone. Thanks to Dj Padzensky for this.
1.1       misho    1722: 
1.1.1.4 ! misho    1723:        Improve data-type parsing heuristics so that
        !          1724:        --dhcp-option=option:domain-search,. 
        !          1725:        treats the value as a string and not an IP address.
        !          1726:        Thanks to Clemens Fischer for spotting that.
        !          1727: 
        !          1728:        Add IPv6 support to the TFTP server. Many thanks to Jan 
        !          1729:        'RedBully' Seiffert for the patches.
        !          1730: 
        !          1731:        Log DNS queries at level LOG_INFO, rather then
        !          1732:        LOG_DEBUG. This makes things consistent with DHCP
        !          1733:        logging. Thanks to Adam Pribyl for spotting the problem.
        !          1734: 
        !          1735:        Ensure that dnsmasq terminates cleanly when using
        !          1736:        --syslog-async even if it cannot make a connection to the
        !          1737:        syslogd.
        !          1738: 
        !          1739:        Add --add-mac option. This is to support currently 
        !          1740:        experimental DNS filtering facilities. Thanks to Benjamin
        !          1741:        Petrin for the original patch. 
        !          1742: 
        !          1743:        Fix bug which meant that tags were ignored in dhcp-range
        !          1744:        configuration specifying PXE-proxy service. Thanks to
        !          1745:        Cristiano Cumer for spotting this.
        !          1746: 
        !          1747:        Raise an error if there is extra junk, not part of an
        !          1748:        option, on the command line.
        !          1749: 
        !          1750:        Flag a couple of log messages in cache.c as coming from
        !          1751:        the DHCP subsystem. Thanks to Olaf Westrik for the patch.
        !          1752: 
        !          1753:        Omit timestamps from logs when a) logging to stderr and 
        !          1754:        b) --keep-in-foreground is set. The logging facility on the
        !          1755:        other end of stderr can be assumed to supply them. Thanks
        !          1756:        to John Hallam for the patch.
        !          1757: 
        !          1758:        Don't complain about strings longer than 255 characters in
        !          1759:        --txt-record, just split the long strings into 255
        !          1760:        character chunks instead.
        !          1761: 
        !          1762:        Fix crash on double-free. This bug can only happen when
        !          1763:        dhcp-script is in use and then only in rare circumstances
        !          1764:        triggered by high DHCP transaction rate and a slow
        !          1765:        script. Thanks to Ferenc Wagner for finding the problem.
        !          1766: 
        !          1767:        Only log that a file has been sent by TFTP after the
        !          1768:        transfer has completed successfully. 
        !          1769: 
        !          1770:        A good suggestion from Ferenc Wagner: extend
        !          1771:        the --domain option to allow this sort of thing:
        !          1772:        --domain=thekelleys.org.uk,192.168.0.0/24,local
        !          1773:        which automatically creates
        !          1774:        --local=/thekelleys.org.uk/
        !          1775:        --local=/0.168.192.in-addr.arpa/ 
        !          1776: 
        !          1777:        Tighten up syntax checking of hex constants in the config
        !          1778:        file.  Thanks to Fred Damen for spotting this.
        !          1779: 
        !          1780:        Add dnsmasq logo/icon, contributed by Justin Swift. Many
        !          1781:        thanks for that.
        !          1782: 
        !          1783:        Never cache DNS replies which have the 'cd' bit set, or
        !          1784:        which result from queries forwarded with the 'cd' bit
        !          1785:        set. The 'cd' bit instructs a DNSSEC validating server
        !          1786:        upstream to ignore signature failures and return replies
        !          1787:        anyway. Without this change it's possible to pollute the
        !          1788:        dnsmasq cache with bad data by making a query with the
        !          1789:        'cd' bit set and subsequent queries would return this data
        !          1790:        without its being marked as suspect. Thanks to Anders
        !          1791:        Kaseorg for pointing out this problem.
        !          1792: 
        !          1793:        Add --proxy-dnssec flag, for compliance with RFC
        !          1794:        4035. Dnsmasq will now clear the 'ad' bit in answers returned
        !          1795:        from upstream validating nameservers unless this option is
        !          1796:        set.
        !          1797: 
        !          1798:        Allow a filename of "-" for --conf-file to read
        !          1799:        stdin. Suggestion from Timothy Redaelli.
        !          1800: 
        !          1801:        Rotate the order of SRV records in replies, to provide
        !          1802:        round-robin load balancing when all the priorities are
        !          1803:        equal. Thanks to Peter McKinney for the suggestion. 
        !          1804: 
        !          1805:        Edit
        !          1806:        contrib/MacOSX-launchd/uk.org.thekelleys.dnsmasq.plist 
        !          1807:        so that it doesn't log all queries to a file by
        !          1808:        default. Thanks again to Peter McKinney.    
        !          1809: 
        !          1810:        By default, setting an IPv4 address for a domain but not
        !          1811:        an IPv6 address causes dnsmasq to return
        !          1812:        a NODATA reply for IPv6 (or vice-versa). So
        !          1813:        --address=/google.com/1.2.3.4 stops IPv6 queries for
        !          1814:        *google.com from being forwarded. Make it possible to
        !          1815:        override this behaviour by defining the semantics if the
        !          1816:        same domain appears in  both --server and --address.
        !          1817:        In that case, the --address has priority for the address
        !          1818:        family in which is appears, but the --server has priority
        !          1819:        of the address family which doesn't appear in --address  
        !          1820:        So:
        !          1821:        --address=/google.com/1.2.3.4
        !          1822:        --server=/google.com/#
        !          1823:        will return 1.2.3.4 for IPv4 queries for *.google.com but
        !          1824:        forward IPv6 queries to the normal upstream nameserver.
        !          1825:        Similarly when setting an IPv6 address
        !          1826:        only this will allow forwarding of IPv4 queries. Thanks to
        !          1827:        William for pointing out the need for this.
        !          1828: 
        !          1829:        Allow more than one --dhcp-optsfile and --dhcp-hostsfile
        !          1830:        and make them understand directories as arguments in the
        !          1831:        same way as --addn-hosts. Suggestion from John Hanks. 
        !          1832: 
        !          1833:        Ignore rebinding requests for leases we don't know
        !          1834:        about. Rebind is broadcast, so we might get to overhear a
        !          1835:        request meant for another DHCP server. NAKing this is
        !          1836:        wrong. Thanks to Brad D'Hondt for assistance with this.
        !          1837: 
        !          1838:        Fix cosmetic bug which produced strange output when
        !          1839:        dumping cache statistics with some configurations. Thanks
        !          1840:        to Fedor Kozhevnikov for spotting this.
1.1       misho    1841: 
                   1842: 
                   1843: version 2.55
1.1.1.4 ! misho    1844:        Fix crash when /etc/ethers is in use. Thanks to 
        !          1845:        Gianluigi Tiesi for finding this.
1.1       misho    1846: 
1.1.1.4 ! misho    1847:        Fix crash in netlink_multicast(). Thanks to Arno Wald for
        !          1848:        finding this one.
1.1       misho    1849: 
1.1.1.4 ! misho    1850:        Allow the empty domain "." in dhcp domain-search (119)
        !          1851:        options. 
1.1       misho    1852: 
                   1853: 
                   1854: version 2.54
1.1.1.4 ! misho    1855:        There is no version 2.54 to avoid confusion with 2.53,
        !          1856:        which incorrectly identifies itself as 2.54.
1.1       misho    1857: 
                   1858: 
                   1859: version 2.53
1.1.1.4 ! misho    1860:        Fix failure to compile on Debian/kFreeBSD. Thanks to 
        !          1861:        Axel Beckert and Petr Salinger.
1.1       misho    1862: 
1.1.1.4 ! misho    1863:        Fix code to avoid scary strict-aliasing warnings
        !          1864:        generated by gcc 4.4.
        !          1865:        
        !          1866:        Added FAQ entry warning about DHCP failures with Vista
        !          1867:        when firewalls block 255.255.255.255.
        !          1868:        
        !          1869:        Fixed bug which caused bad things to happen if a 
        !          1870:        resolv.conf file which exists is subsequently removed.
        !          1871:        Thanks to Nikolai Saoukh for the patch.
        !          1872: 
        !          1873:        Rationalised the DHCP tag system. Every configuration item
        !          1874:        which can set a tag does so by adding "set:<tag>" and
        !          1875:        every configuration item which is conditional on a tag is
        !          1876:        made so by "tag:<tag>". The NOT operator changes to '!',
        !          1877:        which is a bit more intuitive too. Dhcp-host directives
        !          1878:        can set more than one tag now. The old '#' NOT, 
        !          1879:        "net:" prefix and no-prefixes are still honoured, so 
        !          1880:        no existing config file needs to be changed, but 
        !          1881:        the documentation and new-style config files should be 
        !          1882:        much less confusing. 
        !          1883: 
        !          1884:        Added --tag-if to allow boolean operations on tags. 
        !          1885:        This allows complicated logic to be clearer and more 
        !          1886:        general. A great suggestion from Richard Voigt. 
        !          1887: 
        !          1888:        Add broadcast/unicast information to DHCP logging.
        !          1889: 
        !          1890:        Allow --dhcp-broadcast to be unconditional.
        !          1891: 
        !          1892:        Fixed incorrect behaviour with NOT <tag> conditionals in
        !          1893:        dhcp-options. Thanks to Max Turkewitz for assistance
        !          1894:        finding this.
        !          1895: 
        !          1896:        If we send vendor-class encapsulated options based on the
        !          1897:        vendor-class supplied by the client, and no explicit 
        !          1898:        vendor-class option is given, echo back the vendor-class
        !          1899:        from the client.
        !          1900:        
        !          1901:        Fix bug which stopped dnsmasq from matching both a
        !          1902:        circuitid and a remoteid. Thanks to Ignacio Bravo for
        !          1903:        finding this.
        !          1904: 
        !          1905:        Add --dhcp-proxy, which makes it possible to configure
        !          1906:        dnsmasq to use a DHCP relay agent as a full proxy, with
        !          1907:        all DHCP messages passing through the proxy. This is
        !          1908:        useful if the relay adds extra information to the packets
        !          1909:        it forwards, but cannot be configured with the RFC 5107 
        !          1910:        server-override option.
        !          1911: 
        !          1912:        Added interface:<iface name> part to dhcp-range. The
        !          1913:        semantics of this are very odd at first sight, but it
        !          1914:        allows a single line  of the form
        !          1915:        dhcp-range=interface:virt0,192.168.0.4,192.168.0.200
        !          1916:        to be added to dnsmasq configuration which then supplies
        !          1917:        DHCP and DNS services to that interface, without affecting
        !          1918:        what services are supplied to other interfaces and 
        !          1919:        irrespective of the existence or lack of 
        !          1920:        interface=<interface> 
        !          1921:        lines elsewhere in the dnsmasq configuration. The idea is
        !          1922:        that such a line can be added automatically by libvirt
        !          1923:        or equivalent systems, without disturbing any manual
        !          1924:        configuration.
        !          1925: 
        !          1926:        Similarly to the above, allow --enable-tftp=<interface>
        !          1927: 
        !          1928:        Allow a TFTP root to be set separately for requests via
        !          1929:        different interfaces, --tftp-root=<path>,<interface>             
        !          1930: 
        !          1931:        Correctly handle and log clashes between CNAMES and 
        !          1932:        DNS names being given to DHCP leases. This fixes a bug 
        !          1933:        which caused nonsense IP addresses to be logged. Thanks to 
        !          1934:        Sergei Zhirikov for finding and analysing the problem.
        !          1935: 
        !          1936:        Tweak flush_log so as to avoid leaving the log
        !          1937:        file in non-blocking mode. O_NONBLOCK is a property of the
        !          1938:        file, not the process/descriptor.
        !          1939: 
        !          1940:        Fix contrib/Solaris10/create_package
        !          1941:        (/usr/man -> /usr/share/man) Thanks to Vita Batrla.
        !          1942: 
        !          1943:        Fix a problem where, if a client got a lease, then went
        !          1944:        to another subnet and got another lease, then moved back,
        !          1945:        it couldn't resume the old lease, but would instead get 
        !          1946:        a new address. Thanks to Leonardo Rodrigues for spotting
        !          1947:        this and testing the fix.
        !          1948: 
        !          1949:        Fix weird bug which sometimes omitted certain characters
        !          1950:        from the start of quoted strings in dhcp-options. Thanks
        !          1951:        to Dayton Turner for spotting the problem.
        !          1952: 
        !          1953:        Add facility to redirect some domains to the standard
        !          1954:        upstream servers: this allows something like 
        !          1955:        --server=/google.com/1.2.3.4 --server=/www.google.com/#
        !          1956:        which will send queries for *.google.com to 1.2.3.4,
        !          1957:        except *www.google.com which will be forwarded as usual.
        !          1958:        Thanks to AJ Weber for prompting this addition.
        !          1959: 
        !          1960:        Improve the hash-algorithm used to generate IP addresses
        !          1961:        from MAC addresses during initial DHCP address
        !          1962:        allocation. This improves performance when large numbers
        !          1963:        of hosts with similar MAC addresses all try and get an IP
        !          1964:        address at the same time. Thanks to Paul Smith for his
        !          1965:        work on this.
        !          1966: 
        !          1967:        Tweak DHCP code so that --bridge-interface can be used to
        !          1968:        select which IP alias of an interface should be used for
        !          1969:        DHCP purposes on Linux. If eth0 has an alias eth0:dhcp
        !          1970:        then adding  --bridge-interface=eth0:dhcp,eth0 will use 
        !          1971:        the address of eth0:dhcp to determine the correct subnet 
        !          1972:        for DHCP address allocation. Thanks to Pawel Golaszewski 
        !          1973:        for prompting this and Eric Cooper for further testing.
        !          1974: 
        !          1975:        Add --dhcp-generate-names. Suggestion by Ferenc Wagner.
        !          1976: 
        !          1977:        Tweak DNS server selection algorithm when there is more
        !          1978:        than one server available for a domain, eg.
        !          1979:        --server=/mydomain/1.1.1.1
        !          1980:        --server=/mydomain/2.2.2.2
        !          1981:        Thanks to Alberto Cuesta-Canada for spotting a weakness
        !          1982:        here.
        !          1983: 
        !          1984:        Add --max-ttl. Thanks to Fredrik Ringertz for the patch.
        !          1985: 
        !          1986:        Allow --log-facility=- to force all logging to
        !          1987:        stderr. Suggestion from Clemens Fischer.
        !          1988: 
        !          1989:        Fix regression which caused configuration like
        !          1990:        --address=/.domain.com/1.2.3.4 to be rejected. The dot to the 
        !          1991:        left of the domain has been implied and not required for a
        !          1992:        long time, but it should be accepted for backward
        !          1993:        compatibility. Thanks to Andrew Burcin for spotting this.
        !          1994: 
        !          1995:        Add --rebind-domain-ok and --rebind-localhost-ok.
        !          1996:        Suggestion from Clemens Fischer.
        !          1997: 
        !          1998:        Log replies to queries of type TXT, when --log-queries 
        !          1999:        is set.
        !          2000: 
        !          2001:        Fix compiler warnings when compiled with -DNO_DHCP. Thanks
        !          2002:        to Shantanu Gadgil for the patch.
        !          2003: 
        !          2004:        Updated French translation. Thanks to Gildas Le Nadan.
        !          2005: 
        !          2006:        Updated Polish translation. Thanks to Jan Psota.
        !          2007: 
        !          2008:        Updated German translation. Thanks to Matthias Andree.
        !          2009: 
        !          2010:        Added contrib/static-arp, thanks to Darren Hoo.
        !          2011: 
        !          2012:        Fix corruption of the domain when a name from /etc/hosts
        !          2013:        overrides one supplied by a DHCP client. Thanks to Fedor
        !          2014:        Kozhevnikov for spotting the problem.
1.1       misho    2015: 
1.1.1.4 ! misho    2016:        Updated Spanish translation. Thanks to Chris Chatham.
1.1       misho    2017: 
                   2018: 
                   2019: version 2.52
1.1.1.4 ! misho    2020:        Work around a Linux kernel bug which insists that the 
        !          2021:        length of the option passed to setsockopt must be at least
        !          2022:        sizeof(int) bytes, even if we're calling SO_BINDTODEVICE
        !          2023:        and the device name is "lo".  Note that this is fixed 
        !          2024:        in kernel 2.6.31, but the workaround is harmless and 
        !          2025:        allows earlier kernels to be used. Also fix dnsmasq 
        !          2026:        bug which reported the wrong address when this failed. 
        !          2027:        Thanks to Fedor for finding this.
        !          2028: 
        !          2029:        The API for IPv6 PKTINFO changed around Linux kernel
        !          2030:        2.6.14. Workaround the case where dnsmasq is compiled
        !          2031:        against newer headers, but then run on an old kernel:
        !          2032:        necessary for some *WRT distros.
        !          2033: 
        !          2034:        Re-read the set of network interfaces when re-loading
        !          2035:        /etc/resolv.conf if --bind-interfaces is not set. This
        !          2036:        handles the case that loopback interfaces do not exist
        !          2037:        when dnsmasq is first started.
        !          2038: 
        !          2039:        Tweak the PXE code to support port 4011. This should
        !          2040:        reduce broadcasts and make things more reliable when other
        !          2041:        servers are around. It also improves inter-operability
        !          2042:        with certain clients.
        !          2043: 
        !          2044:        Make a pxe-service configuration with no filename or boot 
        !          2045:        service type legal: this does a local boot. eg.
        !          2046:        pxe-service=x86PC, "Local boot" 
        !          2047: 
        !          2048:        Be more conservative in detecting "A for A"
        !          2049:        queries. Dnsmasq checks if the name in a type=A query looks
        !          2050:        like a dotted-quad IP address and answers the query itself
        !          2051:        if so, rather than forwarding it. Previously dnsmasq
        !          2052:        relied in the library function inet_addr() to convert
        !          2053:        addresses, and that will accept some things which are
        !          2054:        confusing in this context, like 1.2.3 or even just
        !          2055:        1234. Now we only do A for A processing for four decimal
        !          2056:        numbers delimited by dots.
        !          2057: 
        !          2058:        A couple of tweaks to fix compilation on Solaris. Thanks
        !          2059:        to Joel Macklow for help with this.
        !          2060: 
        !          2061:        Another Solaris compilation tweak, needed for Solaris
        !          2062:        2009.06. Thanks to Lee Essen for that.
        !          2063: 
        !          2064:        Added extract packaging stuff from Lee Essen to 
        !          2065:        contrib/Solaris10.
        !          2066: 
        !          2067:        Increased the default limit on number of leases to 1000
        !          2068:        (from 150). This is mainly a defence against DoS attacks,
        !          2069:        and for the average "one for two class C networks"
        !          2070:        installation, IP address exhaustion does that just as
        !          2071:        well. Making the limit greater than the number of IP
        !          2072:        addresses available in such an installation removes a
        !          2073:        surprise which otherwise can catch people out.
        !          2074: 
        !          2075:        Removed extraneous trailing space in the value of the
        !          2076:        DNSMASQ_TIME_REMAINING DNSMASQ_LEASE_LENGTH and
        !          2077:        DNSMASQ_LEASE_EXPIRES environment variables. Thanks to
        !          2078:        Gildas Le Nadan for spotting this.
        !          2079: 
        !          2080:        Provide the network-id tags for a DHCP transaction to 
        !          2081:        the lease-change script in the environment variable
        !          2082:        DNSMASQ_TAGS. A good suggestion from Gildas Le Nadan.  
        !          2083: 
        !          2084:        Add support for RFC3925 "Vendor-Identifying Vendor
        !          2085:        Options". The syntax looks like this:  
        !          2086:        --dhcp-option=vi-encap:<enterprise number>, .........
        !          2087: 
        !          2088:        Add support to --dhcp-match to allow matching against
        !          2089:        RFC3925 "Vendor-Identifying Vendor Classes". The syntax
        !          2090:        looks like this:
        !          2091:        --dhcp-match=tag,vi-encap<enterprise number>, <value>
        !          2092: 
        !          2093:        Add some application specific code to assist in
        !          2094:        implementing the Broadband forum TR069 CPE-WAN
        !          2095:        specification. The details are in contrib/CPE-WAN/README
        !          2096: 
        !          2097:        Increase the default DNS packet size limit to 4096, as
        !          2098:        recommended by RFC5625 section 4.4.3. This can be
        !          2099:        reconfigured using --edns-packet-max if needed. Thanks to
        !          2100:        Francis Dupont for pointing this out.
        !          2101: 
        !          2102:        Rewrite query-ids even for TSIG signed packets, since
        !          2103:        this is allowed by RFC5625 section 4.5.
        !          2104: 
        !          2105:        Use getopt_long by default on OS X. It has been supported
        !          2106:        since version 10.3.0. Thanks to Arek Dreyer for spotting
        !          2107:        this.
        !          2108: 
        !          2109:        Added up-to-date startup configuration for MacOSX/launchd
        !          2110:        in contrib/MacOSX-launchd. Thanks to Arek Dreyer for
        !          2111:        providing this.
        !          2112: 
        !          2113:        Fix link error when including Dbus but excluding DHCP. 
        !          2114:        Thanks to Oschtan for the bug report.
        !          2115: 
        !          2116:        Updated French translation. Thanks to Gildas Le Nadan.
        !          2117: 
        !          2118:        Updated Polish translation. Thanks to Jan Psota.
        !          2119: 
        !          2120:        Updated Spanish translation. Thanks to Chris Chatham.
        !          2121: 
        !          2122:        Fixed confusion about domains, when looking up DHCP hosts
        !          2123:        in /etc/hosts. This could cause spurious "Ignoring
        !          2124:        domain..." messages. Thanks to Fedor Kozhevnikov for
        !          2125:        finding and analysing the problem.
        !          2126: 
1.1       misho    2127: 
                   2128: version 2.51
1.1.1.4 ! misho    2129:        Add support for internationalised DNS. Non-ASCII characters
        !          2130:        in domain names found in /etc/hosts, /etc/ethers and 
        !          2131:        /etc/dnsmasq.conf will be correctly handled by translation to
        !          2132:        punycode, as specified in RFC3490. This function is only
        !          2133:        available if dnsmasq is compiled with internationalisation
        !          2134:        support, and adds a dependency on GNU libidn. Without i18n
        !          2135:        support, dnsmasq continues to be compilable with just
        !          2136:        standard tools. Thanks to Yves Dorfsman for the
        !          2137:        suggestion. 
        !          2138: 
        !          2139:        Add two more environment variables for lease-change scripts:
        !          2140:        First, DNSMASQ_SUPPLIED_HOSTNAME; this is set to the hostname
        !          2141:        supplied by a client, even if the actual hostname used is
        !          2142:        over-ridden by dhcp-host or dhcp-ignore-names directives.
        !          2143:        Also DNSMASQ_RELAY_ADDRESS which gives the address of 
        !          2144:        a DHCP relay, if used.
        !          2145:        Suggestions from Michael Rack.
        !          2146: 
        !          2147:        Fix regression which broke echo of relay-agent
        !          2148:        options. Thanks to Michael Rack for spotting this.
        !          2149: 
        !          2150:        Don't treat option 67 as being interchangeable with
        !          2151:        dhcp-boot parameters if it's specified as
        !          2152:        dhcp-option-force.
        !          2153: 
        !          2154:        Make the code to call scripts on lease-change compile-time
        !          2155:        optional. It can be switched off by editing src/config.h
        !          2156:        or building with "make COPTS=-DNO_SCRIPT".
        !          2157: 
        !          2158:        Make the TFTP server cope with filenames from Windows/DOS
        !          2159:        which use '\' as pathname separator. Thanks to Ralf for
        !          2160:        the patch.
        !          2161: 
        !          2162:        Updated Polish translation. Thanks to Jan Psota.
        !          2163: 
        !          2164:        Warn if an IP address is duplicated in /etc/ethers. Thanks
        !          2165:        to Felix Schwarz for pointing this out.
        !          2166: 
        !          2167:        Teach --conf-dir to take an option list of file suffices
        !          2168:        which will be ignored when scanning the directory. Useful
        !          2169:        for backup files etc. Thanks to Helmut Hullen for the
        !          2170:        suggestion. 
        !          2171: 
        !          2172:        Add new DHCP option named tftpserver-address, which
        !          2173:        corresponds to the third argument of dhcp-boot. This
        !          2174:        allows the complete functionality of dhcp-boot to be
        !          2175:        replicated with dhcp-option. Useful when using 
        !          2176:        dhcp-optsfile.
        !          2177: 
        !          2178:        Test which upstream nameserver to use every 10 seconds
        !          2179:        or 50 queries and not just when a query times out and 
        !          2180:        is retried. This should improve performance when there
        !          2181:        is a slow nameserver in the list. Thanks to Joe for the
        !          2182:        suggestion. 
        !          2183: 
        !          2184:        Don't do any PXE processing, even for clients with the 
        !          2185:        correct vendorclass, unless at least one pxe-prompt or 
        !          2186:        pxe-service option is given. This stops dnsmasq 
        !          2187:        interfering with proxy PXE subsystems when it is just 
        !          2188:        the DHCP server. Thanks to Spencer Clark for spotting this.
        !          2189: 
        !          2190:        Limit the blocksize used for TFTP transfers to a value
        !          2191:        which avoids packet fragmentation, based on the MTU of the
        !          2192:        local interface. Many netboot ROMs can't cope with
        !          2193:        fragmented packets.
1.1       misho    2194: 
1.1.1.4 ! misho    2195:        Honour dhcp-ignore configuration for PXE and proxy-PXE 
        !          2196:        requests. Thanks to Niels Basjes for the bug report.
1.1       misho    2197: 
1.1.1.4 ! misho    2198:        Updated French translation. Thanks to Gildas Le Nadan.
1.1       misho    2199: 
                   2200: 
                   2201: version 2.50
1.1.1.4 ! misho    2202:        Fix security problem which allowed any host permitted to 
        !          2203:        do TFTP to possibly compromise dnsmasq by remote buffer 
        !          2204:        overflow when TFTP enabled. Thanks to Core Security 
        !          2205:        Technologies and Iván Arce, Pablo Hernán Jorge, Alejandro 
        !          2206:        Pablo Rodriguez, Martín Coco, Alberto Soliño Testa and
        !          2207:        Pablo Annetta. This problem has Bugtraq id: 36121 
        !          2208:        and CVE: 2009-2957
        !          2209: 
        !          2210:        Fix a problem which allowed a malicious TFTP client to 
        !          2211:        crash dnsmasq. Thanks to Steve Grubb at Red Hat for 
        !          2212:        spotting this. This problem has Bugtraq id: 36120 and 
        !          2213:        CVE: 2009-2958
1.1       misho    2214: 
                   2215: 
                   2216: version 2.49
1.1.1.4 ! misho    2217:        Fix regression in 2.48 which disables the lease-change
        !          2218:        script. Thanks to Jose Luis Duran for spotting this.
        !          2219: 
        !          2220:        Log TFTP "file not found" errors. These were not logged,
        !          2221:        since a normal PXELinux boot generates many of them, but
        !          2222:        the lack of the messages seems to be more confusing than
        !          2223:        routinely seeing them when there is no real error.
1.1       misho    2224: 
1.1.1.4 ! misho    2225:        Update Spanish translation. Thanks to Chris Chatham.
1.1       misho    2226: 
                   2227: 
                   2228: version 2.48
1.1.1.4 ! misho    2229:        Archived the extensive, backwards, changelog to
        !          2230:        CHANGELOG.archive. The current changelog now runs from
        !          2231:        version 2.43 and runs conventionally.
        !          2232: 
        !          2233:        Fixed bug which broke binding of servers to physical
        !          2234:        interfaces when interface names were longer than four
        !          2235:        characters. Thanks to MURASE Katsunori for the patch.
        !          2236: 
        !          2237:        Fixed netlink code to check that messages come from the
        !          2238:        correct source, and not another userspace process. Thanks
        !          2239:        to Steve Grubb for the patch.
        !          2240: 
        !          2241:        Maintainability drive: removed bug and missing feature
        !          2242:        workarounds for some old platforms. Solaris 9, OpenBSD
        !          2243:        older than 4.1, Glibc older than 2.2, Linux 2.2.x and 
        !          2244:        DBus older than 1.1.x are no longer supported. 
        !          2245: 
        !          2246:        Don't read included configuration files more than once:
        !          2247:        allows complex configuration structures without problems.
        !          2248: 
        !          2249:        Mark log messages from the various subsystems in dnsmasq:
        !          2250:        messages from the DHCP subsystem now have the ident string
        !          2251:        "dnsmasq-dhcp" and messages from TFTP have ident
        !          2252:        "dnsmasq-tftp". Thanks to Olaf Westrik for the patch.
        !          2253: 
        !          2254:        Fix possible infinite DHCP protocol loop when an IP
        !          2255:        address nailed to a hostname (not a MAC address)  and a 
        !          2256:        host sometimes provides the name, sometimes not.
        !          2257: 
        !          2258:        Allow --addn-hosts to take a directory: all the files 
        !          2259:        in the directory are read. Thanks to Phil Cornelius for 
        !          2260:        the suggestion. 
        !          2261: 
        !          2262:        Support --bridge-interface on all platforms, not just BSD.
        !          2263: 
        !          2264:        Added support for advanced PXE functions. It's now
        !          2265:        possible to define a prompt and menu options which will
        !          2266:        be displayed when a client PXE boots. It's also possible to
        !          2267:        hand-off booting to other boot servers. Proxy-DHCP, where
        !          2268:        dnsmasq just supplies the PXE information and another DHCP
        !          2269:        server does address allocation, is also allowed. See the
        !          2270:        --pxe-prompt and --pxe-service keywords. Thanks to 
        !          2271:        Alkis Georgopoulos for the suggestion and Guilherme Moro
        !          2272:        and Michael Brown for assistance.
        !          2273: 
        !          2274:        Improvements to DHCP logging. Thanks to Tom Metro for
        !          2275:        useful suggestions.
        !          2276: 
        !          2277:        Add ability to build dnsmasq without DHCP support. To do
        !          2278:        this, edit src/config.h or build with
        !          2279:        "make COPTS=-DNO_DHCP". Thanks to Mahavir Jain for the patch. 
        !          2280: 
        !          2281:        Added --test command-line switch - syntax check
        !          2282:        configuration files only.
        !          2283: 
        !          2284:        Updated French translation. Thanks to Gildas Le Nadan.
1.1       misho    2285: 
                   2286: 
                   2287: version 2.47
1.1.1.4 ! misho    2288:        Updated French translation. Thanks to Gildas Le Nadan.
1.1       misho    2289: 
1.1.1.4 ! misho    2290:        Fixed interface enumeration code to work on NetBSD
        !          2291:        5.0. Thanks to Roy Marples for the patch. 
1.1       misho    2292: 
1.1.1.4 ! misho    2293:        Updated config.h to use the same location for the lease
        !          2294:        file on NetBSD as the other *BSD variants. Also allow
        !          2295:        LEASEFILE and CONFFILE symbols to be overridden in CFLAGS.  
        !          2296: 
        !          2297:        Handle duplicate address detection on IPv6 more
        !          2298:        intelligently. In IPv6, an interface can have an address
        !          2299:        which is not usable, because it is still undergoing DAD
        !          2300:        (such addresses are marked "tentative"). Attempting to
        !          2301:        bind to an address in this state returns an error,
        !          2302:        EADDRNOTAVAIL. Previously, on getting such an error,
        !          2303:        dnsmasq would silently abandon the address, and never
        !          2304:        listen on it. Now, it retries once per second for 20
        !          2305:        seconds before generating a fatal error. 20 seconds should
        !          2306:        be long enough for any DAD process to complete, but can be
        !          2307:        adjusted in src/config.h if necessary. Thanks to Martin
        !          2308:        Krafft for the bug report.
        !          2309: 
        !          2310:        Add DBus introspection. Patch from Jeremy Laine.
        !          2311: 
        !          2312:        Update Dbus configuration file. Patch from Colin Walters.
        !          2313:        Fix for this bug:
        !          2314:        http://bugs.freedesktop.org/show_bug.cgi?id=18961
        !          2315: 
        !          2316:        Support arbitrarily encapsulated DHCP options, suggestion
        !          2317:        and initial patch from Samium Gromoff. This is useful for
        !          2318:        (eg) iPXE, which expect all its private options to be
        !          2319:        encapsulated inside a single option 175. So, eg, 
        !          2320: 
        !          2321:        dhcp-option = encap:175, 190, "iscsi-client0"
        !          2322:        dhcp-option = encap:175, 191, "iscsi-client0-secret"
        !          2323: 
        !          2324:        will provide iSCSI parameters to iPXE.
        !          2325: 
        !          2326:        Enhance --dhcp-match to allow testing of the contents of a
        !          2327:        client-sent option, as well as its presence. This
        !          2328:        application in mind for this is RFC 4578
        !          2329:        client-architecture specifiers, but it's generally useful.
        !          2330:        Joey Korkames suggested the enhancement. 
        !          2331: 
        !          2332:        Move from using the IP_XMIT_IF ioctl to IP_BOUND_IF on
        !          2333:        OpenSolaris. Thanks to Bastian Machek for the heads-up.
        !          2334: 
        !          2335:        No longer complain about blank lines in
        !          2336:        /etc/ethers. Thanks to Jon Nelson for the patch.
        !          2337: 
        !          2338:        Fix binding of servers to physical devices, eg
        !          2339:        --server=/domain/1.2.3.4@eth0 which was broken from 2.43
        !          2340:        onwards unless --query-port=0 set. Thanks to Peter Naulls
        !          2341:        for the bug report.
        !          2342: 
        !          2343:        Reply to DHCPINFORM requests even when the supplied ciaddr
        !          2344:        doesn't fall in any dhcp-range. In this case it's not
        !          2345:        possible to supply a complete configuration, but
        !          2346:        individually-configured options (eg PAC) may be useful.
        !          2347: 
        !          2348:        Allow the source address of an alias to be a range:
        !          2349:        --alias=192.168.0.0,10.0.0.0,255.255.255.0 maps the whole
        !          2350:        subnet 192.168.0.0->192.168.0.255 to 10.0.0.0->10.0.0.255,
        !          2351:        as before.
        !          2352:        --alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0
        !          2353:        maps only the 192.168.0.10->192.168.0.40 region. Thanks to
        !          2354:        Ib Uhrskov for the suggestion.
        !          2355: 
        !          2356:        Don't dynamically allocate DHCP addresses which may break
        !          2357:        Windows.  Addresses which end in .255 or .0 are broken in
        !          2358:        Windows even when using supernetting.
        !          2359:        --dhcp-range=192.168.0.1,192.168.1.254,255,255,254.0 means 
        !          2360:        192.168.0.255 is a valid IP address, but not for Windows. 
        !          2361:        See Microsoft KB281579. We therefore no longer allocate 
        !          2362:        these addresses to avoid hard-to-diagnose problems. 
        !          2363: 
        !          2364:        Update Polish translation. Thanks to Jan Psota.
        !          2365: 
        !          2366:        Delete the PID-file when dnsmasq shuts down. Note that by
        !          2367:        this time, dnsmasq is normally not running as root, so
        !          2368:        this will fail if the PID-file is stored in a root-owned
        !          2369:        directory; such failure is silently ignored. To take
        !          2370:        advantage of this feature, the PID-file must be stored in a
        !          2371:        directory owned and write-able by the user running
        !          2372:        dnsmasq.
1.1       misho    2373: 
                   2374: 
                   2375: version 2.46
1.1.1.4 ! misho    2376:        Allow --bootp-dynamic to take a netid tag, so that it may
        !          2377:        be selectively enabled. Thanks to Olaf Westrik for the
        !          2378:        suggestion. 
        !          2379: 
        !          2380:        Remove ISC-leasefile reading code. This has been
        !          2381:        deprecated for a long time, and last time I removed it, it
        !          2382:        ended up going back by request of one user. This time,
        !          2383:        it's gone for good; otherwise it would need to be
        !          2384:        re-worked to support multiple domains (see below).
        !          2385: 
        !          2386:        Support DHCP clients in multiple DNS domains. This is a
        !          2387:        long-standing request. Clients are assigned to a domain
        !          2388:        based in their IP address.  
        !          2389: 
        !          2390:        Add --dhcp-fqdn flag, which changes behaviour if DNS names
        !          2391:        assigned to DHCP clients. When this is set, there must be
        !          2392:        a domain associated with each client, and only
        !          2393:        fully-qualified domain names are added to the DNS. The
        !          2394:        advantage is that the only the FQDN needs to be unique,
        !          2395:        so that two or more DHCP clients can share a hostname, as
        !          2396:        long as they are in different domains.
        !          2397: 
        !          2398:        Set environment variable DNSMASQ_DOMAIN when invoking
        !          2399:        lease-change script. This may be useful information to
        !          2400:        have now that it's variable.
        !          2401: 
        !          2402:        Tighten up data-checking code for DNS packet
        !          2403:        handling. Thanks to Steve Dodd who found certain illegal
        !          2404:        packets which could crash dnsmasq. No memory overwrite was
        !          2405:        possible, so this is not a security issue beyond the DoS
        !          2406:        potential.  
        !          2407: 
        !          2408:        Update example config dhcp option 47, the previous
        !          2409:        suggestion generated an illegal, zero-length,
        !          2410:        option. Thanks to Matthias Andree for finding this.
        !          2411: 
        !          2412:        Rewrite hosts-file reading code to remove the limit of
        !          2413:        1024 characters per line. John C Meuser found this.
        !          2414: 
        !          2415:        Create a net-id tag with the name of the interface on
        !          2416:        which the DHCP request was received.
        !          2417: 
        !          2418:        Fixed minor memory leak in DBus code, thanks to Jeremy
        !          2419:        Laine for the patch.
        !          2420: 
        !          2421:        Emit DBus signals as the DHCP lease database
        !          2422:        changes. Thanks to Jeremy Laine for the patch.
        !          2423: 
        !          2424:        Allow for more that one MAC address in a dhcp-host
        !          2425:        line. This configuration tells dnsmasq that it's OK to
        !          2426:        abandon a DHCP lease of the fixed address to one MAC
        !          2427:        address, if another MAC address in the dhcp-host statement 
        !          2428:        asks for an address. This is useful to give a fixed
        !          2429:        address to a host which has two network interfaces
        !          2430:        (say, a laptop with wired and wireless interfaces.) 
        !          2431:        It's very important to ensure that only one interface 
        !          2432:        at a time is up, since dnsmasq abandons the first lease 
        !          2433:        and re-uses the address before the leased time has
        !          2434:        elapsed. John Gray suggested this.
        !          2435: 
        !          2436:        Tweak the response to a DHCP request packet with a wrong
        !          2437:        server-id when --dhcp-authoritative is set; dnsmasq now
        !          2438:        returns a DHCPNAK, rather than silently ignoring the
        !          2439:        packet. Thanks to Chris Marget for spotting this
        !          2440:        improvement.
        !          2441: 
        !          2442:        Add --cname option. This provides a limited alias
        !          2443:        function, usable for DHCP names. Thanks to AJ Weber for
        !          2444:        suggestions on this.
        !          2445: 
        !          2446:        Updated contrib/webmin with latest version from Neil
        !          2447:        Fisher.
        !          2448: 
        !          2449:        Updated Polish translation. Thanks to Jan Psota.
1.1       misho    2450: 
1.1.1.4 ! misho    2451:        Correct the text names for DHCP options 64 and 65 to be
        !          2452:        "nis+-domain" and "nis+-servers".
1.1       misho    2453: 
1.1.1.4 ! misho    2454:        Updated Spanish translation. Thanks to Chris Chatham.
        !          2455: 
        !          2456:        Force re-reading of /etc/resolv.conf when an "interface
        !          2457:        up" event occurs.
1.1       misho    2458: 
                   2459: 
                   2460: version 2.45
1.1.1.4 ! misho    2461:        Fix total DNS failure in release 2.44 unless --min-port 
        !          2462:        specified. Thanks to Steven Barth and Grant Coady for
        !          2463:        bugreport. Also reject out-of-range port spec, which could
        !          2464:        break things too: suggestion from Gilles Espinasse.
        !          2465: 
1.1       misho    2466: 
                   2467: version 2.44
1.1.1.4 ! misho    2468:        Fix  crash when unknown client attempts to renew a DHCP
        !          2469:        lease, problem introduced in version 2.43. Thanks to
        !          2470:        Carlos Carvalho for help chasing this down.
1.1       misho    2471: 
1.1.1.4 ! misho    2472:        Fix potential crash when a host which doesn't have a lease
        !          2473:        does DHCPINFORM. Again introduced in 2.43. This bug has
        !          2474:        never been reported in the wild.
1.1       misho    2475: 
1.1.1.4 ! misho    2476:        Fix crash in netlink code introduced in 2.43. Thanks to
        !          2477:        Jean Wolter for finding this.
1.1       misho    2478: 
1.1.1.4 ! misho    2479:        Change implementation of min_port to work even if min-port
        !          2480:        is large.
1.1       misho    2481: 
1.1.1.4 ! misho    2482:        Patch to enable compilation of latest Mac OS X. Thanks to
        !          2483:        David Gilman.
1.1       misho    2484: 
1.1.1.4 ! misho    2485:        Update Spanish translation. Thanks to Christopher Chatham.
1.1       misho    2486: 
                   2487: 
                   2488: version 2.43
1.1.1.4 ! misho    2489:        Updated Polish translation. Thanks to Jan Psota.
1.1       misho    2490: 
1.1.1.4 ! misho    2491:        Flag errors when configuration options are repeated
        !          2492:        illegally.
1.1       misho    2493: 
1.1.1.4 ! misho    2494:        Further tweaks for GNU/kFreeBSD
1.1       misho    2495: 
1.1.1.4 ! misho    2496:        Add --no-wrap to msgmerge call - provides nicer .po file
        !          2497:        format.
        !          2498: 
        !          2499:        Honour lease-time spec in dhcp-host lines even for
        !          2500:        BOOTP. The user is assumed to known what they are doing in
        !          2501:        this case. (Hosts without the time spec still get infinite
        !          2502:        leases for BOOTP, over-riding the default in the
        !          2503:        dhcp-range.) Thanks to Peter Katzmann for uncovering this.
        !          2504: 
        !          2505:        Fix problem matching relay-agent ids. Thanks to Michael
        !          2506:        Rack for the bug report.
        !          2507: 
        !          2508:        Add --naptr-record option. Suggestion from Johan
        !          2509:        Bergquist.
        !          2510: 
        !          2511:        Implement RFC 5107 server-id-override DHCP relay agent
        !          2512:        option.
        !          2513: 
        !          2514:        Apply patches from Stefan Kruger for compilation on
        !          2515:        Solaris 10 under Sun studio.
        !          2516: 
        !          2517:        Yet more tweaking of Linux capability code, to suppress
        !          2518:        pointless wingeing from kernel 2.6.25 and above.
        !          2519: 
        !          2520:        Improve error checking during startup. Previously, some
        !          2521:        errors which occurred during startup would be worked
        !          2522:        around, with dnsmasq still starting up. Some were logged,
        !          2523:        some silent. Now, they all cause a fatal error and dnsmasq 
        !          2524:        terminates with a non-zero exit code. The errors are those
        !          2525:        associated with changing uid and gid, setting process 
        !          2526:        capabilities and writing the pidfile. Thanks to Uwe
        !          2527:        Gansert and the Suse security team for pointing out 
        !          2528:        this improvement, and Bill Reimers for good implementation
        !          2529:        suggestions.
        !          2530: 
        !          2531:        Provide NO_LARGEFILE compile option to switch off largefile
        !          2532:        support when compiling against versions of uclibc which
        !          2533:        don't support it. Thanks to Stephane Billiart for the patch.
        !          2534: 
        !          2535:        Implement random source ports for interactions with
        !          2536:        upstream nameservers. New spoofing attacks have been found
        !          2537:        against nameservers which do not do this, though it is not
        !          2538:        clear if dnsmasq is vulnerable, since to doesn't implement
        !          2539:        recursion. By default dnsmasq will now use a different
        !          2540:        source port (and socket) for each query it sends
        !          2541:        upstream. This behaviour can suppressed using the
        !          2542:        --query-port option, and the old default behaviour
        !          2543:        restored using --query-port=0. Explicit source-port
        !          2544:        specifications in --server configs are still honoured.
        !          2545: 
        !          2546:        Replace the random number generator, for better
        !          2547:        security. On most BSD systems, dnsmasq uses the
        !          2548:        arc4random() RNG, which is secure, but on other platforms,
        !          2549:        it relied on the C-library RNG, which may be
        !          2550:        guessable and therefore allow spoofing. This release
        !          2551:        replaces the libc RNG with the SURF RNG, from Daniel
        !          2552:        J. Berstein's DJBDNS package.  
        !          2553: 
        !          2554:        Don't attempt to change user or group or set capabilities
        !          2555:        if dnsmasq is run as a non-root user. Without this, the
        !          2556:        change from soft to hard errors when these fail causes
        !          2557:        problems for non-root daemons listening on high
        !          2558:        ports. Thanks to Patrick McLean for spotting this.
1.1       misho    2559: 
1.1.1.4 ! misho    2560:        Updated French translation. Thanks to Gildas Le Nadan.
1.1       misho    2561: 
                   2562: 
                   2563: version 2.42
1.1.1.4 ! misho    2564:        The changelog for version 2.42 and earlier is 
        !          2565:        available in CHANGELOG.archive.

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