6 :released: 12th of April 2019
12 Fix compiler warning about returning garbage (Adam Majer)
18 Fix warnings, mostly unused parameters, reported by -wextra
25 Add namespace and instance variable to carbon key (Gibheer)
31 Add optional uuid column to showServers()
37 Allow NoRecurse for use in dynamic blocks or Lua rules (phonedph1)
50 Configure --enable-pdns-option --with-third-party-module (Josh Soref)
56 Protect GnuTLS tickets key rotation with a read-write lock
62 Check that ``SO_ATTACH_BPF`` is defined before enabling eBPF
68 Drop remaining capabilities after startup
75 Add an optional 'checkTimeout' parameter to 'newServer()'
82 Add a 'rise' parameter to 'newServer()'
89 Add a 'keepStaleData' option to the packet cache
96 Expose trailing data (Richard Gibson)
102 More sandboxing using systemd's features
108 Fix off-by-one in mvRule counting
114 Reduce systemcall usage in Protobuf logging
120 Resync YaHTTP code to cmouse/yahttp@11be77a1fc4032 (Chris Hofstaedtler)
126 Add option to set interval between health checks (1848)
132 Add EDNS unknown version handling (Dmitry Alenichev)
138 Pass empty response (Dmitry Alenichev)
144 Change the way getRealMemusage() works on linux (using statm)
150 Don't convert nsec to usec if we need nsec
156 DNSNameSet and QNameSetRule (Andrey)
168 Handle EAGAIN in the GnuTLS DNS over TLS provider
175 Gracefully handle a null latency in the webserver's js
182 Prevent 0-ttl cache hits
189 Add addDynBlockSMT() support to dynBlockRulesGroup
195 Add frontend response statistics (Matti Hiljanen)
201 EDNSOptionView improvements
208 Add support for encrypting ip addresses #gdpr
214 Remove addLuaAction and addLuaResponseAction
221 Refactoring of the TCP stack
228 Honor libcrypto include path
235 Add 'setSyslogFacility()'
242 Prevent a conflict with BADSIG being clobbered
248 Switch to the new 'newPacketCache()' syntax for 1.4.0
254 Add 'reloadAllCertificates()'
260 Move constants to proper namespace
266 Unify the management of DNS/DNSCrypt/DoT frontends
270 :released: 8th of November 2018
277 Add consistent hash builtin policy
289 Add DSTPortRule (phonedph1)
295 Make getOutstanding usable from both lua and console (phonedph1)
301 Get rid of some allocs/copies in DNS parsing
307 Display dynblocks' default action, None, as the global one
314 Set a correct EDNS OPT RR for self-generated answers
320 Added :excludeRange and :includeRange methods to DynBPFFilter class (Reinier Schoof)
326 Fix a sign-comparison warning in isEDNSOptionInOPT()
330 :pullreq: 3935, 6343, 6901, 7007, 7089
333 Add Prometheus stats support (Pavel Odintsov, Kai S)
339 Fix compilation when SO_REUSEPORT is not defined
346 Add warning rates to DynBlockRulesGroup rules
353 Name threads in the programs
360 Add support for exporting a server id in protobuf
366 dnsdist did not set TCP_NODELAY, causing needless latency
372 Release memory on DNS over TLS handshake failure
378 Add a setting to control the number of stored sessions
385 Wrap GnuTLS and OpenSSL pointers in smart pointers
392 Support the NXDomain action with dynamic blocks
399 Add a 'creationOrder' field to rules
406 Fix return-type detection with boost 1.69's tribool
413 Fix format string issue on 32bits ARM
419 Wrap TCP connection objects in smart pointers
426 Add the setConsoleOutputMaxMsgSize function
439 Add the ability to update webserver credentials
445 Add a PoolAvailableRule to easily add backup pools (Robin Geuze)
452 Handle trailing data correctly when adding OPT or ECS info
456 :released: 10th of July 2018
462 Add missing include for PRId64, fix build on CentOS 6 / SLES 12
466 :released: 10th of July 2018
473 Remove `thelog` and `thel` and replace this with a global g_log
479 Fix two small nits on the documentation
486 Move the el6 dnsdist package to upstart
492 Initialize the done variable in the rings' unit tests
498 Reorder headers to fix OpenBSD build
505 CLI option improvements (Chris Hofstaedtler)
511 Split pdns_enable_unit_tests (Chris Hofstaedtler)
517 Restrict value range for weight parameter, avoid sum overflows dropping queries (Dan McCombs)
521 :pullreq: 6445, 6457, 6470
530 Docs: fix missing ref in the dnsdist docs
536 Be more permissive in wrandom tests, log values on failure
543 Tests: avoid failure on not-so-optimal distribution
550 Add support for more than one TLS certificate
556 Add syntax to dns.proto to silence compilation warning.
562 Fix warnings reported by gcc 8.1.0
569 Document setVerboseHealthchecks()
575 Update dq.rst (phonedph1)
587 Don't copy unitialized values of SuffixMatchTree
593 Expose toString of various objects to Lua (Chris Hofstaedtler)
599 Remove 'expired' states from MaxQPSIPRule
605 Fix reconnection handling
612 Mark the remote member of DownstreamState as const
618 Dynamic blocks were being created with the wrong duration (David Freedman)
625 Test the content of dynamic blocks using the API
632 Default set "connection: close" header for web requests
638 Update timedipsetrule.rst (phonedph1)
645 Don't access the TCP buffer vector past its size
651 Show droprate in API output
658 Limit qps and latency to two decimals in the web view
665 Refuse console connection without a proper key set
672 Add a negative ttl option to the packet cache
678 Check the flags to detect collisions in the packet cache
684 Add the ability to dump a summary of the cache content
690 Fix iterating over the results of exceed*() functions
696 Fix duration false positive in the dynblock regression tests
702 Add netmask-based {ex,in}clusions to DynblockRulesGroup
709 Add DNSAction.NoOp to debug dynamic blocks
716 Implement NoneAction()
723 Detect ECS collisions in the packet cache
729 Fix an outstanding counter race when reusing states
736 Add SetECSAction to set an arbitrary outgoing ecs value
742 Use LRU to clean the MaxQPSIPRule's store
748 Disable maybe uninitialized warnings with boost optional
754 Add support for rotating certificates and keys
761 Luawrapper: report caught std::exception as lua_error
767 Dnstap.rst: fix some editing errors (Chris Hofstaedtler)
774 Allow known exception types to be converted to string
779 :released: 30th of March 2018
782 :tags: Improvements, New Features
786 Add cache sharding, ``recvmmsg`` and CPU pinning support.
787 With these, the scalability of :program:`dnsdist` is drastically improved.
793 Add burst option to :func:`MaxQPSIPRule` (42wim).
800 Handle SNMP alarms so we can reconnect to the master.
806 Add an optional `status` parameter to :func:`Server:setAuto`.
813 Fix signed/unsigned comparison warnings on ARM.
819 Add Pools, cacheHitResponseRules to the API.
825 Add :func:`inClientStartup` function.
832 Add a class option to health checks.
838 Add tag-based routing of queries.
842 :pullreq: 6117, 6175, 6176, 6177, 6189
844 Add experimental :doc:`DNS-over-TLS <guides/dns-over-tls>` support.
850 Add UUIDs to rules, this allows tracking rules through modifications and moving them around.
856 Keep trying if the first connection to the remote logger failed
862 Add simple :doc:`dnstap <reference/dnstap>` support (Justin Valentini, Chris Hofstaedtler).
869 Apply ResponseRules to locally generated answers (Chris Hofstaedtler).
875 Report :func:`LuaAction` and :func:`LuaResponseAction` failures in the log and send SERVFAIL instead of not answering the query (Chris Hofstaedtler).
881 Unify global statistics accounting (Chris Hofstaedtler).
887 Speed up the processing of large ring buffers.
888 This change will make :program:`dnsdist` more scalable with a large number of different clients.
895 Make custom :func:`addLuaAction` and :func:`addLuaResponseAction` callback's second return value optional.
901 Add "server-up" metric count to Carbon Reporting (Lowell Mower).
907 Add xchacha20 support for :doc:`DNSCrypt <guides/dnscrypt>`.
913 Scalability improvement: Add an option to use several source ports towards a backend.
920 Add '?' and 'help' for providing help() output on ``dnsdist -c`` (Kirill Ponomarev, Chris Hofstaedtler).
926 Replace the Lua mutex with a rw lock to limit contention.
927 This improves the processing speed and parallelism of the policies.
934 Add experimental XPF support based on `draft-bellis-dnsop-xpf-04 <https://tools.ietf.org/html/draft-bellis-dnsop-xpf-04>`__.
940 Add :func:`ERCodeRule` to match on extended RCodes (Chris Hofstaedtler).
946 Fix escaping unusual DNS label octets in DNSName is off by one (Kees Monshouwer).
952 Add :func:`TempFailureCacheTTLAction` (Chris Hofstaedtler).
958 Ensure :program:`dnsdist` compiles on NetBSD (Tom Ivar Helbekkmo).
965 Also log eBPF dynamic blocks, as regular dynamic block already are.
968 :tags: New Features, Improvements
971 Add :ref:`DynBlockRulesGroup` to improve processing speed of the :func:`maintenance` function by reducing memory usage and not walking the ringbuffers multiple times.
978 Remove the ``--daemon`` option from :program:`dnsdist`.
985 Add :func:`console ACL <addConsoleACL>` functions.
992 Allow adding :meth:`EDNS Client Subnet information <ServerPool:setECS>` to a query before looking in the cache.
993 This allows serving ECS enabled answers from the cache when all servers in a pool are down.
1000 Ensure large numbers are shown correctly in the API.
1007 Add option to :func:`showRules` to truncate the output length.
1013 Avoid assertion errors in :func:`NewServer` (Chris Hofstaedtler).
1019 Fix several warnings reported by clang's analyzer and cppcheck, should lead to small performance increases.
1024 :released: 16th of February 2018
1030 Add configuration option to disable IP_BIND_ADDRESS_NO_PORT (Dan McCombs).
1036 Handle bracketed IPv6 addresses without ports (Chris Hofstaedtler).
1042 Make dnsdist dynamic truncate do right thing on TCP/IP.
1048 Add missing QPSAction
1054 Don't create a Remote Logger in client mode.
1060 Use libsodium's CFLAGS, we might need them to find the includes.
1066 Keep the TCP connection open on cache hit, generated answers.
1072 Add the missing <sys/time.h> include to mplexer.hh for struct timeval.
1078 Sort the servers based on their 'order' after it has been set.
1084 Quiet unused variable warning on macOS (Chris Hofstaedtler).
1091 Fix the outstanding counter when an exception is raised.
1098 Do not connect the snmpAgent from a dnsdist client.
1102 :released: 21st of August 2017
1109 DNSName: Check that both first two bits are set in compressed labels.
1114 :tickets: 4131, 4155
1116 Handle unreachable servers at startup, reconnect stale sockets
1123 Gracefully handle invalid addresses in :func:`newServer`.
1130 Add an option to 'mute' UDP responses per bind.
1133 :tags: New Features, Performance
1136 Add TCP management options from :rfc:`RFC 7766 section 10 <7766#section-10>`.
1142 LuaWrapper: Use the correct index when storing a function.
1149 Save history to home-dir, only use CWD as a last resort.
1155 Add the :func:`setRingBuffersSize` directive to allows changing the ringbuffer size.
1158 :tags: Improvements, Security
1161 Merge the client and server nonces to prevent replay attacks.
1167 Use ``IP_BIND_ADDRESS_NO_PORT`` when available.
1174 Send a latency of 0 over carbon, null over API for down servers.
1179 :tickets: 4775, 4660
1181 Add an optional ``seconds`` parameter to :func:`statNodeRespRing`.
1187 Report a more specific lua version and report luajit in ``--version``.
1190 :tags: Improvements, DNSCrypt
1191 :pullreq: 4813, 4926
1193 Store the computed shared key and reuse it for the response for DNSCrypt messages.
1196 :tags: New Features, Protobuf
1200 Add an option to export CNAME records over protobuf.
1207 Allow TTL alteration via Lua.
1213 Add :func:`RDRule` to match queries with the ``RD`` flag set.
1219 Add :func:`setWHashedPertubation` for consistent ``whashed`` results.
1225 Add ``tcpConnectTimeout`` to :func:`newServer`.
1231 Fix negative port detection for IPv6 addresses on 32-bit.
1238 Fix crashed on SmartOS/Illumos (Roman Dayneko).
1242 :pullreq: 4788, 5036
1245 Add cache hit response rules.
1248 :tags: Improvements, Performance
1251 Add :func:`setTCPUseSinglePipe` to use a single TCP waiting queue.
1258 Change ``truncateTC`` to defaulting to off, having it enabled by default causes an compatibility with :rfc:`6891` (Robin Geuze).
1262 :pullreq: 4987, 5037
1265 Don't cache answers without any TTL (like SERVFAIL).
1268 :tags: Improvements, Performance
1269 :pullreq: 4985, 5501
1272 Add ``sendSizeAndMsgWithTimeout`` to send size and data in a single call and use it for TCP Fast Open towards backends.
1278 Prevent issues by unshadowing variables.
1281 :tags: New Features, SNMP
1282 :pullreq: 4989, 5123, 5204
1284 Add :doc:`SNMP support <advanced/snmp>`.
1287 :tags: Bug Fixes, Performance
1291 Refactor SuffixMatchNode using a SuffixMatchTree.
1297 Register DNSName::chopOff (@plzz).
1303 Allow passing :class:`DNSName`\ s as DNSRules.
1306 :tags: Bug Fixes, Webserver
1309 Send an HTTP 404 on unknown API paths.
1312 :tags: Improvements, Performance
1315 Tune systemd unit-file for medium-sized installations (Winfried Angele).
1321 Add support for setting the server selection policy on a per pool basis (Robin Geuze).
1325 :pullreq: 5150, 5171
1328 Make :func:`includeDirectory` work sorted (Robin Geuze).
1331 :tags: Improvements, LuaWrapper
1334 Allow embedded NULs in strings received from Lua.
1340 Add a ``suffixMatch`` parameter to :meth:`PacketCache:expungeByName` (Robin Geuze).
1346 Cleanup closed TCP downstream connections.
1352 Fix destination port reporting on "any" binds.
1359 Add an option so the packet cache entries don't age.
1362 :tags: Bug Fixes, Security
1365 Unified ``-k`` and :func:`setKey` behaviour for client and server mode now.
1371 Improve reporting of C++ exceptions that bubble up via Lua.
1374 :tags: Improvements, Performance
1377 Add the possiblity to fill a :class:`NetmaskGroup` (using :meth:`NetmaskGroup:addMask`) from `exceeds*` results.
1383 Add better logging on queries that get dropped, timed out or received.
1389 Add :func:`QNameRule`.
1395 Correctly truncate EDNS Client Subnetmasks.
1401 Print useful messages when query and response actions are mixed.
1407 Add an optional action to :func:`addDynBlocks`.
1413 Add an optional interface parameter to :func:`addLocal`/:func:`setLocal`.
1416 :tags: Bug Fixes, Performance
1419 Get rid of ``std::move()`` calls preventing copy elision.
1426 Fix :func:`RecordsTypeCountRule`\ 's handling of the # of records in a section.
1432 Make a ``truncate`` action available to DynBlock and Lua.
1439 Change stats functions to always return lowercase names (Robin Geuze).
1445 Implement a runtime changeable rule that matches IP address for a certain time called :func:`TimedIPSetRule`.
1449 :pullreq: 5449, 5454
1451 Only use TCP Fast Open when supported and prevent compiler warnings.
1457 Add ``DNSRule::toString()`` and add virtual destructors to DNSRule, DNSAction and DNSResponseAction so the destructors of derived classes are run even when deleted via the base type.
1463 Add support for returning several IPs to spoof from Lua.
1467 :pullreq: 5490, 5508
1468 :tickets: 5420, 5507
1470 Add Lua bindings to be able to rotate DNSCrypt keys, see :doc:`guides/dnscrypt`.
1473 :tags: Improvements, Performance
1476 Add labels count to StatNode, only set the name once.
1487 :pullreq: 5396, 5577
1489 Add the capability to set arbitrary tags in protobuf messages.
1496 Skip timeouts on the response latency graph.
1503 Deprecate syntactic sugar functions.
1510 Don't use square brackets for IPv6 in Carbon metrics.
1517 Copy the DNS header before encrypting it in place.
1524 Add setConsoleConnectionsLogging().
1530 Fix potential pointer wrap-around on 32 bits.
1536 Make the API available with an API key only.
1541 Released December 29th 2016
1543 Changes since 1.1.0-beta2:
1548 - `#4783 <https://github.com/PowerDNS/pdns/pull/4783>`__: Add -latomic
1550 - `#4812 <https://github.com/PowerDNS/pdns/pull/4812>`__: Handle
1551 header-only responses, handle Refused as Servfail in the cache
1556 - `#4762 <https://github.com/PowerDNS/pdns/pull/4762>`__:
1557 SuffixMatchNode: Fix an insertion issue for an existing node
1558 - `#4772 <https://github.com/PowerDNS/pdns/pull/4772>`__: Fix dnsdist
1559 initscript config check
1564 Released December 14th 2016
1566 Changes since 1.1.0-beta1:
1571 - `#4518 <https://github.com/PowerDNS/pdns/pull/4518>`__: Fix dynblocks
1572 over TCP, allow refusing dyn blocked queries
1573 - `#4519 <https://github.com/PowerDNS/pdns/pull/4519>`__: Allow
1574 altering the ECS behavior via rules and Lua
1575 - `#4535 <https://github.com/PowerDNS/pdns/pull/4535>`__: Add
1576 ``DNSQuestion:getDO()``
1577 - `#4653 <https://github.com/PowerDNS/pdns/pull/4653>`__:
1578 ``getStatisticsCounters()`` to access counters from Lua
1579 - `#4657 <https://github.com/PowerDNS/pdns/pull/4657>`__: Add
1580 ``includeDirectory(dir)``
1581 - `#4658 <https://github.com/PowerDNS/pdns/pull/4658>`__: Allow editing
1583 - `#4702 <https://github.com/PowerDNS/pdns/pull/4702>`__: Add
1584 ``setUDPTimeout(n)``
1585 - `#4726 <https://github.com/PowerDNS/pdns/pull/4726>`__: Add an option
1586 to return ServFail when no server is available
1587 - `#4748 <https://github.com/PowerDNS/pdns/pull/4748>`__: Add
1588 ``setCacheCleaningPercentage()``
1593 - `#4533 <https://github.com/PowerDNS/pdns/pull/4533>`__: Fix building
1594 with clang on OS X and FreeBSD
1595 - `#4537 <https://github.com/PowerDNS/pdns/pull/4537>`__: Replace
1596 luawrapper's std::forward/std::make\_tuple combo with
1597 std::forward\_as\_tuple (Sangwhan "fish" Moon)
1598 - `#4596 <https://github.com/PowerDNS/pdns/pull/4596>`__: Change the
1599 default max number of queued TCP conns to 1000
1600 - `#4632 <https://github.com/PowerDNS/pdns/pull/4632>`__: Improve
1601 dnsdist error message on a common typo/config mistake
1602 - `#4694 <https://github.com/PowerDNS/pdns/pull/4694>`__: Don't use a
1603 const\_iterator for erasing (fix compilation with some versions of
1605 - `#4715 <https://github.com/PowerDNS/pdns/pull/4715>`__: Specify that
1606 dnsmessage.proto uses protobuf version 2
1607 - `#4765 <https://github.com/PowerDNS/pdns/pull/4765>`__: Some service
1613 - `#4425 <https://github.com/PowerDNS/pdns/pull/4425>`__: Fix a
1614 protobuf regression (requestor/responder mix-up) caused by a94673e
1615 - `#4541 <https://github.com/PowerDNS/pdns/pull/4541>`__: Fix insertion
1616 issues in SuffixMatchTree, move it to dnsname.hh
1617 - `#4553 <https://github.com/PowerDNS/pdns/pull/4553>`__: Flush output
1618 in single command client mode
1619 - `#4578 <https://github.com/PowerDNS/pdns/pull/4578>`__: Fix
1620 destination address reporting
1621 - `#4640 <https://github.com/PowerDNS/pdns/pull/4640>`__: Don't exit
1622 dnsdist on an exception in maintenance
1623 - `#4721 <https://github.com/PowerDNS/pdns/pull/4721>`__: Handle
1624 exceptions in the UDP responder thread
1625 - `#4734 <https://github.com/PowerDNS/pdns/pull/4734>`__: Add the TCP
1626 socket to the map only if the connection succeeds. Closes #4733
1627 - `#4742 <https://github.com/PowerDNS/pdns/pull/4742>`__: Decrement the
1628 queued TCP conn count if writing to the pipe fails
1629 - `#4743 <https://github.com/PowerDNS/pdns/pull/4743>`__: Ignore
1630 newBPFFilter() and newDynBPFFilter() in client mode
1631 - `#4753 <https://github.com/PowerDNS/pdns/pull/4753>`__: Fix FD leak
1632 on TCP connection failure, handle TCP worker creation failure
1633 - `#4764 <https://github.com/PowerDNS/pdns/pull/4764>`__: Prevent race
1634 while creating new TCP worker threads
1639 Released September 1st 2016
1641 Changes since 1.0.0:
1646 - `#3762 <https://github.com/PowerDNS/pdns/pull/3762>`__ Teeaction:
1647 send copy of query to second nameserver, sponge responses
1648 - `#3876 <https://github.com/PowerDNS/pdns/pull/3876>`__ Add
1649 ``showResponseRules()``, ``{mv,rm,top}ResponseRule()``
1650 - `#3936 <https://github.com/PowerDNS/pdns/pull/3936>`__ Filter on
1651 opcode, records count/type, trailing data
1652 - `#3975 <https://github.com/PowerDNS/pdns/pull/3975>`__ Make dnsdist
1653 {A,I}XFR aware, document possible issues
1654 - `#4006 <https://github.com/PowerDNS/pdns/pull/4006>`__ Add eBPF
1655 source address and qname/qtype filtering
1656 - `#4008 <https://github.com/PowerDNS/pdns/pull/4008>`__ Node
1657 infrastructure for querying recent traffic
1658 - `#4042 <https://github.com/PowerDNS/pdns/pull/4042>`__ Add
1659 server-side TCP Fast Open support
1660 - `#4050 <https://github.com/PowerDNS/pdns/pull/4050>`__ Add
1661 ``clearRules()`` and ``setRules()``
1662 - `#4114 <https://github.com/PowerDNS/pdns/pull/4114>`__ Add
1663 ``QNameLabelsCountRule()`` and ``QNameWireLengthRule()``
1664 - `#4116 <https://github.com/PowerDNS/pdns/pull/4116>`__ Added src
1665 boolean to NetmaskGroupRule to match destination address (Reinier
1667 - `#4175 <https://github.com/PowerDNS/pdns/pull/4175>`__ Implemented
1668 query counting (Reinier Schoof)
1669 - `#4244 <https://github.com/PowerDNS/pdns/pull/4244>`__ Add a
1670 ``setCD`` parameter to set cd=1 on health check queries
1671 - `#4284 <https://github.com/PowerDNS/pdns/pull/4284>`__ Add
1672 RCodeRule(), Allow, Delay and Drop response actions
1673 - `#4305 <https://github.com/PowerDNS/pdns/pull/4305>`__ Add an
1674 optional Lua callback for altering a Protobuf message
1675 - `#4309 <https://github.com/PowerDNS/pdns/pull/4309>`__ Add
1676 showTCPStats function (RobinGeuze)
1677 - `#4329 <https://github.com/PowerDNS/pdns/pull/4329>`__ Add options to
1678 LogAction() so it can append (instead of truncate) (Duane Wessels)
1683 - `#3714 <https://github.com/PowerDNS/pdns/pull/3714>`__ Add
1684 documentation links to dnsdist.service (Ruben Kerkhof)
1685 - `#3754 <https://github.com/PowerDNS/pdns/pull/3754>`__ Allow the use
1686 of custom headers in the web server
1687 - `#3826 <https://github.com/PowerDNS/pdns/pull/3826>`__ Implement a
1688 'quiet' mode for SuffixMatchNodeRule()
1689 - `#3836 <https://github.com/PowerDNS/pdns/pull/3836>`__ Log the
1690 content of webserver's exceptions
1691 - `#3858 <https://github.com/PowerDNS/pdns/pull/3858>`__ Only log
1692 YaHTTP's parser exceptions in verbose mode
1693 - `#3877 <https://github.com/PowerDNS/pdns/pull/3877>`__ Increase max
1694 FDs in systemd unit, warn if clearly too low
1695 - `#4019 <https://github.com/PowerDNS/pdns/pull/4019>`__ Add an
1696 optional ``addECS`` option to ``TeeAction()``
1697 - `#4029 <https://github.com/PowerDNS/pdns/pull/4029>`__ Add version
1698 and feature information to version output
1699 - `#4079 <https://github.com/PowerDNS/pdns/pull/4079>`__ Return an
1700 error on RemoteLog{,Response}Action() w/o protobuf
1701 - `#4246 <https://github.com/PowerDNS/pdns/pull/4246>`__ API now sends
1702 pools as a JSON array instead of a string
1703 - `#4302 <https://github.com/PowerDNS/pdns/pull/4302>`__ Add ``help()``
1704 and ``showVersion()``
1705 - `#4286 <https://github.com/PowerDNS/pdns/pull/4286>`__ Add response
1706 rules to the API and Web status page
1707 - `#4068 <https://github.com/PowerDNS/pdns/pull/4068>`__ Display the
1708 dyn eBPF filters stats in the web interface
1713 - `#3755 <https://github.com/PowerDNS/pdns/pull/3755>`__ Fix RegexRule
1714 example in dnsdistconf.lua
1715 - `#3773 <https://github.com/PowerDNS/pdns/pull/3773>`__ Stop copying
1716 the HTTP request headers to the response
1717 - `#3837 <https://github.com/PowerDNS/pdns/pull/3837>`__ Remove dnsdist
1718 service file on trusty
1719 - `#3840 <https://github.com/PowerDNS/pdns/pull/3840>`__ Catch
1720 WrongTypeException in client mode
1721 - `#3906 <https://github.com/PowerDNS/pdns/pull/3906>`__ Keep the
1722 servers ordered inside pools
1723 - `#3988 <https://github.com/PowerDNS/pdns/pull/3988>`__ Fix
1724 ``grepq()`` output in the README
1725 - `#3992 <https://github.com/PowerDNS/pdns/pull/3992>`__ Fix some typos
1726 in the AXFR/IXFR documentation
1727 - `#3995 <https://github.com/PowerDNS/pdns/pull/3995>`__ Fix comparison
1728 between signed and unsigned integer
1729 - `#4049 <https://github.com/PowerDNS/pdns/pull/4049>`__ Fix dnsdist
1730 rpm building script #4048 (Daniel Stirnimann)
1731 - `#4065 <https://github.com/PowerDNS/pdns/pull/4065>`__ Include
1732 editline/readline.h instead of readline.h/history.h
1733 - `#4067 <https://github.com/PowerDNS/pdns/pull/4067>`__ Disable eBPF
1734 support when BPF\_FUNC\_tail\_call is not found
1735 - `#4069 <https://github.com/PowerDNS/pdns/pull/4069>`__ Fix a buffer
1736 overflow when displaying an OpcodeRule
1737 - `#4101 <https://github.com/PowerDNS/pdns/pull/4101>`__ Fix $
1738 expansion in build-dnsdist-rpm
1739 - `#4198 <https://github.com/PowerDNS/pdns/pull/4198>`__ newServer
1740 setting maxCheckFailures makes no sense (stutiredboy)
1741 - `#4205 <https://github.com/PowerDNS/pdns/pull/4205>`__ Prevent the
1742 use of "any" addresses for downstream server
1743 - `#4220 <https://github.com/PowerDNS/pdns/pull/4220>`__ Don't log an
1744 error when parsing an invalid UDP query
1745 - `#4348 <https://github.com/PowerDNS/pdns/pull/4348>`__ Fix invalid
1746 outstanding count for {A,I}XFR over TCP
1747 - `#4365 <https://github.com/PowerDNS/pdns/pull/4365>`__ Reset origFD
1748 asap to keep the outstanding count correct
1749 - `#4375 <https://github.com/PowerDNS/pdns/pull/4375>`__ Tuple requires
1750 make\_tuple to initialize
1751 - `#4380 <https://github.com/PowerDNS/pdns/pull/4380>`__ Fix
1752 compilation with clang when eBPF support is enabled
1757 Released April 21st 2016
1759 Changes since 1.0.0-beta1:
1764 - `#3700 <https://github.com/PowerDNS/pdns/pull/3700>`__ Create user
1765 from the RPM package to drop privs
1766 - `#3712 <https://github.com/PowerDNS/pdns/pull/3712>`__ Make check
1767 should run testrunner
1768 - `#3713 <https://github.com/PowerDNS/pdns/pull/3713>`__ Remove
1769 contrib/dnsdist.service (Ruben Kerkhof)
1770 - `#3722 <https://github.com/PowerDNS/pdns/pull/3722>`__ Use LT\_INIT
1771 and disable static objects (Ruben Kerkhof)
1772 - `#3724 <https://github.com/PowerDNS/pdns/pull/3724>`__ Include
1773 PDNS\_CHECK\_OS in configure (Christian Hofstaedtler)
1774 - `#3728 <https://github.com/PowerDNS/pdns/pull/3728>`__ Document
1775 libedit Ctrl-R workaround for CentOS 6
1776 - `#3730 <https://github.com/PowerDNS/pdns/pull/3730>`__ Make
1777 ``topBandwidth()`` behave like other top\* functions
1778 - `#3731 <https://github.com/PowerDNS/pdns/pull/3731>`__ Clarify a bit
1779 the documentation of load-balancing policies
1784 - `#3711 <https://github.com/PowerDNS/pdns/pull/3711>`__ Building rpm
1785 needs systemd headers (Ruben Kerkhof)
1786 - `#3736 <https://github.com/PowerDNS/pdns/pull/3736>`__ Add missing
1787 Lua binding for NetmaskGroupRule()
1788 - `#3739 <https://github.com/PowerDNS/pdns/pull/3739>`__ Drop
1789 privileges after daemonizing and writing our pid
1794 Released April 14th 2016
1796 Changes since 1.0.0-alpha2:
1801 - Per-pool packet cache
1802 - Some actions do not stop the processing anymore when they match,
1803 allowing more complex setups: Delay, Disable Validation, Log,
1804 MacAddr, No Recurse and of course None
1805 - The new RE2Rule() is available, using the RE2 regular expression
1806 library to match queries, in addition to the existing POSIX-based
1808 - SpoofAction() now supports multiple A and AAAA records
1809 - Remote logging of questions and answers via Protocol Buffer
1814 - `#3405 <https://github.com/PowerDNS/pdns/pull/3405>`__ Add health
1815 check logging, ``maxCheckFailures`` to backend
1816 - `#3412 <https://github.com/PowerDNS/pdns/pull/3412>`__ Check config
1817 - `#3440 <https://github.com/PowerDNS/pdns/pull/3440>`__ Client
1818 operation improvements
1819 - `#3466 <https://github.com/PowerDNS/pdns/pull/3466>`__ Add dq binding
1820 for skipping packet cache in LuaAction (Jan Broer)
1821 - `#3499 <https://github.com/PowerDNS/pdns/pull/3499>`__ Add support
1822 for multiple carbon servers
1823 - `#3504 <https://github.com/PowerDNS/pdns/pull/3504>`__ Allow
1824 accessing the API with an optional API key
1825 - `#3556 <https://github.com/PowerDNS/pdns/pull/3556>`__ Add an option
1826 to limit the number of queued TCP connections
1827 - `#3578 <https://github.com/PowerDNS/pdns/pull/3578>`__ Add a
1828 ``disable-syslog`` option
1829 - `#3608 <https://github.com/PowerDNS/pdns/pull/3608>`__ Export cache
1831 - `#3622 <https://github.com/PowerDNS/pdns/pull/3622>`__ Display the
1832 ACL content on startup
1833 - `#3627 <https://github.com/PowerDNS/pdns/pull/3627>`__ Remove ECS
1834 option from response's OPT RR when necessary
1835 - `#3633 <https://github.com/PowerDNS/pdns/pull/3633>`__ Count "TTL too
1837 - `#3677 <https://github.com/PowerDNS/pdns/pull/3677>`__ systemd-notify
1843 - `#3388 <https://github.com/PowerDNS/pdns/pull/3388>`__ Lock the Lua
1844 context before executing a LuaAction
1845 - `#3433 <https://github.com/PowerDNS/pdns/pull/3433>`__ Check that the
1846 answer matches the initial query
1847 - `#3461 <https://github.com/PowerDNS/pdns/pull/3461>`__ Fix crash when
1848 calling rmServer() with an invalid index
1849 - `#3550 <https://github.com/PowerDNS/pdns/pull/3550>`__,\ `#3551 <https://github.com/PowerDNS/pdns/pull/3551>`__
1850 Fix build failure on FreeBSD (Ruben Kerkhof)
1851 - `#3594 <https://github.com/PowerDNS/pdns/pull/3594>`__ Prevent EOF
1852 error for empty console response w/o sodium
1853 - `#3634 <https://github.com/PowerDNS/pdns/pull/3634>`__ Prevent
1854 dangling TCP fd in case setupTCPDownstream() fails
1855 - `#3641 <https://github.com/PowerDNS/pdns/pull/3641>`__ Under
1856 threshold, QPS action should return None, not Allow
1857 - `#3658 <https://github.com/PowerDNS/pdns/pull/3658>`__ Fix a race
1858 condition in MaxQPSIPRule
1863 Released February 5th 2016
1865 Changes since 1.0.0-alpha1:
1870 - Lua functions now receive a DNSQuestion ``dq`` object instead of
1871 several parameters. This adds a greater compatibility with PowerDNS
1872 and allows adding more parameters without breaking the API
1873 (`#3198 <https://github.com/PowerDNS/pdns/issues/3198>`__)
1874 - Added a ``source`` option to ``newServer()`` to specify the local
1875 address or interface used to contact a downstream server
1876 (`#3138 <https://github.com/PowerDNS/pdns/issues/3138>`__)
1877 - CNAME and IPv6-only support have been added to spoofed responses
1878 (`#3064 <https://github.com/PowerDNS/pdns/issues/3064>`__)
1879 - ``grepq()`` can be used to search for slow queries, along with
1881 - New Lua functions: ``addDomainCNAMESpoof()``, ``AllowAction()`` by
1882 @bearggg, ``exceedQRate()``, ``MacAddrAction()``, ``makeRule()``,
1883 ``NotRule()``, ``OrRule()``, ``QClassRule()``, ``RCodeAction()``,
1884 ``SpoofCNAMEAction()``, ``SuffixMatchNodeRule()``, ``TCPRule()``,
1886 - ``NetmaskGroup`` support have been added in Lua
1887 (`#3144 <https://github.com/PowerDNS/pdns/issues/3144>`__)
1888 - Added ``MacAddrAction()`` to add the source MAC address to the
1890 (`#3313 <https://github.com/PowerDNS/pdns/issues/3313>`__)
1895 - An issue in DelayPipe could make dnsdist crash at startup
1896 - ``downstream-timeouts`` metric was not always updated
1897 - ``truncateTC`` was unproperly updating the response length
1898 (`#3126 <https://github.com/PowerDNS/pdns/issues/3126>`__)
1899 - DNSCrypt responses larger than queries were unproperly truncated
1900 - An issue prevented info message from being displayed in non-verbose
1901 mode, fixed by Jan Broer
1902 - Reinstating an expired Dynamic Rule was not correctly logged
1903 (`#3323 <https://github.com/PowerDNS/pdns/issues/3323>`__)
1904 - Initialized counters in the TCP client thread might have cause FD and
1905 memory leak, reported by Martin Pels
1906 (`#3300 <https://github.com/PowerDNS/pdns/issues/3300>`__)
1907 - We now drop queries containing no question (qdcount == 0)
1908 (`#3290 <https://github.com/PowerDNS/pdns/issues/3290>`__)
1909 - Outstanding TCP queries count was not always correct
1910 (`#3288 <https://github.com/PowerDNS/pdns/issues/3288>`__)
1911 - A locking issue in exceedRespGen() might have caused crashs
1912 (`#3277 <https://github.com/PowerDNS/pdns/issues/3277>`__)
1913 - Useless sockets were created in client mode
1914 (`#3257 <https://github.com/PowerDNS/pdns/issues/3257>`__)
1915 - ``addAnyTCRule()`` was generating TC=1 responses even over TCP
1916 (`#3251 <https://github.com/PowerDNS/pdns/issues/3251>`__)
1921 - Cleanup of the HTML by Sander Hoentjen
1922 - Fixed an XSS reported by @janeczku
1923 (`#3217 <https://github.com/PowerDNS/pdns/issues/3217>`__)
1924 - Removed remote images
1925 - Set the charset to UTF-8, added some security-related and CORS HTTP
1927 - Added server latency by Jan Broer
1928 (`#3201 <https://github.com/PowerDNS/pdns/issues/3201>`__)
1929 - Switched to official minified versions of JS scripts, by Sander
1930 Hoentjen (`#3317 <https://github.com/PowerDNS/pdns/issues/3317>`__)
1931 - Don't log unauthenticated HTTP request as an authentication failure
1933 Various documentation updates and minor cleanups:
1934 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1936 - Added documentation for Advanced DNS Protection features (Dynamic
1937 rules, ``maintenance()``)
1938 - Make ``topBandwidth()`` default to the top 10 clients
1939 - Replaced readline with libedit
1940 - Added GPL2 License
1941 (`#3200 <https://github.com/PowerDNS/pdns/issues/3200>`__)
1942 - Added incbin License
1943 (`#3269 <https://github.com/PowerDNS/pdns/issues/3269>`__)
1944 - Updated completion rules
1945 - Removed wrong option ``--daemon-no`` by Stefan Schmidt
1950 Released December 24th 2015