6 :released: 26th of April 2019
12 Ignore Path MTU discovery on UDP server socket
18 Alternative solution to the unaligned accesses.
24 Exit when setting ciphers fails (GnuTLS)
31 Add DNS over HTTPS support based on libh2o
34 :version: 1.4.0-alpha1
35 :released: 12th of April 2019
41 Make recursor & dnsdist communicate (ECS) 'variable' status
47 Fix compiler warning about returning garbage (Adam Majer)
53 Fix warnings, mostly unused parameters, reported by -wextra
60 Add namespace and instance variable to carbon key (Gibheer)
66 Add optional uuid column to showServers()
72 Allow NoRecurse for use in dynamic blocks or Lua rules (phonedph1)
85 Configure --enable-pdns-option --with-third-party-module (Josh Soref)
91 Protect GnuTLS tickets key rotation with a read-write lock
97 Check that ``SO_ATTACH_BPF`` is defined before enabling eBPF
103 Drop remaining capabilities after startup
110 Add an optional 'checkTimeout' parameter to 'newServer()'
117 Add a 'rise' parameter to 'newServer()'
124 Add a 'keepStaleData' option to the packet cache
131 Expose trailing data (Richard Gibson)
137 More sandboxing using systemd's features
143 Fix off-by-one in mvRule counting
149 Reduce systemcall usage in Protobuf logging
155 Resync YaHTTP code to cmouse/yahttp@11be77a1fc4032 (Chris Hofstaedtler)
161 Add option to set interval between health checks (1848)
167 Add EDNS unknown version handling (Dmitry Alenichev)
173 Pass empty response (Dmitry Alenichev)
179 Change the way getRealMemusage() works on linux (using statm)
185 Don't convert nsec to usec if we need nsec
191 DNSNameSet and QNameSetRule (Andrey)
203 Handle EAGAIN in the GnuTLS DNS over TLS provider
210 Gracefully handle a null latency in the webserver's js
217 Prevent 0-ttl cache hits
224 Add addDynBlockSMT() support to dynBlockRulesGroup
230 Add frontend response statistics (Matti Hiljanen)
236 EDNSOptionView improvements
243 Add support for encrypting ip addresses #gdpr
249 Remove addLuaAction and addLuaResponseAction
256 Refactoring of the TCP stack
263 Honor libcrypto include path
270 Add 'setSyslogFacility()'
277 Prevent a conflict with BADSIG being clobbered
283 Switch to the new 'newPacketCache()' syntax for 1.4.0
289 Add 'reloadAllCertificates()'
295 Move constants to proper namespace
301 Unify the management of DNS/DNSCrypt/DoT frontends
305 :released: 8th of November 2018
312 Add consistent hash builtin policy
324 Add DSTPortRule (phonedph1)
330 Make getOutstanding usable from both lua and console (phonedph1)
336 Get rid of some allocs/copies in DNS parsing
342 Display dynblocks' default action, None, as the global one
349 Set a correct EDNS OPT RR for self-generated answers
355 Added :excludeRange and :includeRange methods to DynBPFFilter class (Reinier Schoof)
361 Fix a sign-comparison warning in isEDNSOptionInOPT()
365 :pullreq: 3935, 6343, 6901, 7007, 7089
368 Add Prometheus stats support (Pavel Odintsov, Kai S)
374 Fix compilation when SO_REUSEPORT is not defined
381 Add warning rates to DynBlockRulesGroup rules
388 Name threads in the programs
395 Add support for exporting a server id in protobuf
401 dnsdist did not set TCP_NODELAY, causing needless latency
407 Release memory on DNS over TLS handshake failure
413 Add a setting to control the number of stored sessions
420 Wrap GnuTLS and OpenSSL pointers in smart pointers
427 Support the NXDomain action with dynamic blocks
434 Add a 'creationOrder' field to rules
441 Fix return-type detection with boost 1.69's tribool
448 Fix format string issue on 32bits ARM
454 Wrap TCP connection objects in smart pointers
461 Add the setConsoleOutputMaxMsgSize function
474 Add the ability to update webserver credentials
480 Add a PoolAvailableRule to easily add backup pools (Robin Geuze)
487 Handle trailing data correctly when adding OPT or ECS info
491 :released: 10th of July 2018
497 Add missing include for PRId64, fix build on CentOS 6 / SLES 12
501 :released: 10th of July 2018
508 Remove `thelog` and `thel` and replace this with a global g_log
514 Fix two small nits on the documentation
521 Move the el6 dnsdist package to upstart
527 Initialize the done variable in the rings' unit tests
533 Reorder headers to fix OpenBSD build
540 CLI option improvements (Chris Hofstaedtler)
546 Split pdns_enable_unit_tests (Chris Hofstaedtler)
552 Restrict value range for weight parameter, avoid sum overflows dropping queries (Dan McCombs)
556 :pullreq: 6445, 6457, 6470
565 Docs: fix missing ref in the dnsdist docs
571 Be more permissive in wrandom tests, log values on failure
578 Tests: avoid failure on not-so-optimal distribution
585 Add support for more than one TLS certificate
591 Add syntax to dns.proto to silence compilation warning.
597 Fix warnings reported by gcc 8.1.0
604 Document setVerboseHealthchecks()
610 Update dq.rst (phonedph1)
622 Don't copy unitialized values of SuffixMatchTree
628 Expose toString of various objects to Lua (Chris Hofstaedtler)
634 Remove 'expired' states from MaxQPSIPRule
640 Fix reconnection handling
647 Mark the remote member of DownstreamState as const
653 Dynamic blocks were being created with the wrong duration (David Freedman)
660 Test the content of dynamic blocks using the API
667 Default set "connection: close" header for web requests
673 Update timedipsetrule.rst (phonedph1)
680 Don't access the TCP buffer vector past its size
686 Show droprate in API output
693 Limit qps and latency to two decimals in the web view
700 Refuse console connection without a proper key set
707 Add a negative ttl option to the packet cache
713 Check the flags to detect collisions in the packet cache
719 Add the ability to dump a summary of the cache content
725 Fix iterating over the results of exceed*() functions
731 Fix duration false positive in the dynblock regression tests
737 Add netmask-based {ex,in}clusions to DynblockRulesGroup
744 Add DNSAction.NoOp to debug dynamic blocks
751 Implement NoneAction()
758 Detect ECS collisions in the packet cache
764 Fix an outstanding counter race when reusing states
771 Add SetECSAction to set an arbitrary outgoing ecs value
777 Use LRU to clean the MaxQPSIPRule's store
783 Disable maybe uninitialized warnings with boost optional
789 Add support for rotating certificates and keys
796 Luawrapper: report caught std::exception as lua_error
802 Dnstap.rst: fix some editing errors (Chris Hofstaedtler)
809 Allow known exception types to be converted to string
814 :released: 30th of March 2018
817 :tags: Improvements, New Features
821 Add cache sharding, ``recvmmsg`` and CPU pinning support.
822 With these, the scalability of :program:`dnsdist` is drastically improved.
828 Add burst option to :func:`MaxQPSIPRule` (42wim).
835 Handle SNMP alarms so we can reconnect to the master.
841 Add an optional `status` parameter to :func:`Server:setAuto`.
848 Fix signed/unsigned comparison warnings on ARM.
854 Add Pools, cacheHitResponseRules to the API.
860 Add :func:`inClientStartup` function.
867 Add a class option to health checks.
873 Add tag-based routing of queries.
877 :pullreq: 6117, 6175, 6176, 6177, 6189
879 Add experimental :doc:`DNS-over-TLS <guides/dns-over-tls>` support.
885 Add UUIDs to rules, this allows tracking rules through modifications and moving them around.
891 Keep trying if the first connection to the remote logger failed
897 Add simple :doc:`dnstap <reference/dnstap>` support (Justin Valentini, Chris Hofstaedtler).
904 Apply ResponseRules to locally generated answers (Chris Hofstaedtler).
910 Report :func:`LuaAction` and :func:`LuaResponseAction` failures in the log and send SERVFAIL instead of not answering the query (Chris Hofstaedtler).
916 Unify global statistics accounting (Chris Hofstaedtler).
922 Speed up the processing of large ring buffers.
923 This change will make :program:`dnsdist` more scalable with a large number of different clients.
930 Make custom :func:`addLuaAction` and :func:`addLuaResponseAction` callback's second return value optional.
936 Add "server-up" metric count to Carbon Reporting (Lowell Mower).
942 Add xchacha20 support for :doc:`DNSCrypt <guides/dnscrypt>`.
948 Scalability improvement: Add an option to use several source ports towards a backend.
955 Add '?' and 'help' for providing help() output on ``dnsdist -c`` (Kirill Ponomarev, Chris Hofstaedtler).
961 Replace the Lua mutex with a rw lock to limit contention.
962 This improves the processing speed and parallelism of the policies.
969 Add experimental XPF support based on `draft-bellis-dnsop-xpf-04 <https://tools.ietf.org/html/draft-bellis-dnsop-xpf-04>`__.
975 Add :func:`ERCodeRule` to match on extended RCodes (Chris Hofstaedtler).
981 Fix escaping unusual DNS label octets in DNSName is off by one (Kees Monshouwer).
987 Add :func:`TempFailureCacheTTLAction` (Chris Hofstaedtler).
993 Ensure :program:`dnsdist` compiles on NetBSD (Tom Ivar Helbekkmo).
1000 Also log eBPF dynamic blocks, as regular dynamic block already are.
1003 :tags: New Features, Improvements
1006 Add :ref:`DynBlockRulesGroup` to improve processing speed of the :func:`maintenance` function by reducing memory usage and not walking the ringbuffers multiple times.
1013 Remove the ``--daemon`` option from :program:`dnsdist`.
1020 Add :func:`console ACL <addConsoleACL>` functions.
1027 Allow adding :meth:`EDNS Client Subnet information <ServerPool:setECS>` to a query before looking in the cache.
1028 This allows serving ECS enabled answers from the cache when all servers in a pool are down.
1035 Ensure large numbers are shown correctly in the API.
1042 Add option to :func:`showRules` to truncate the output length.
1048 Avoid assertion errors in :func:`NewServer` (Chris Hofstaedtler).
1054 Fix several warnings reported by clang's analyzer and cppcheck, should lead to small performance increases.
1059 :released: 16th of February 2018
1065 Add configuration option to disable IP_BIND_ADDRESS_NO_PORT (Dan McCombs).
1071 Handle bracketed IPv6 addresses without ports (Chris Hofstaedtler).
1077 Make dnsdist dynamic truncate do right thing on TCP/IP.
1083 Add missing QPSAction
1089 Don't create a Remote Logger in client mode.
1095 Use libsodium's CFLAGS, we might need them to find the includes.
1101 Keep the TCP connection open on cache hit, generated answers.
1107 Add the missing <sys/time.h> include to mplexer.hh for struct timeval.
1113 Sort the servers based on their 'order' after it has been set.
1119 Quiet unused variable warning on macOS (Chris Hofstaedtler).
1126 Fix the outstanding counter when an exception is raised.
1133 Do not connect the snmpAgent from a dnsdist client.
1137 :released: 21st of August 2017
1144 DNSName: Check that both first two bits are set in compressed labels.
1149 :tickets: 4131, 4155
1151 Handle unreachable servers at startup, reconnect stale sockets
1158 Gracefully handle invalid addresses in :func:`newServer`.
1165 Add an option to 'mute' UDP responses per bind.
1168 :tags: New Features, Performance
1171 Add TCP management options from :rfc:`RFC 7766 section 10 <7766#section-10>`.
1177 LuaWrapper: Use the correct index when storing a function.
1184 Save history to home-dir, only use CWD as a last resort.
1190 Add the :func:`setRingBuffersSize` directive to allows changing the ringbuffer size.
1193 :tags: Improvements, Security
1196 Merge the client and server nonces to prevent replay attacks.
1202 Use ``IP_BIND_ADDRESS_NO_PORT`` when available.
1209 Send a latency of 0 over carbon, null over API for down servers.
1214 :tickets: 4775, 4660
1216 Add an optional ``seconds`` parameter to :func:`statNodeRespRing`.
1222 Report a more specific lua version and report luajit in ``--version``.
1225 :tags: Improvements, DNSCrypt
1226 :pullreq: 4813, 4926
1228 Store the computed shared key and reuse it for the response for DNSCrypt messages.
1231 :tags: New Features, Protobuf
1235 Add an option to export CNAME records over protobuf.
1242 Allow TTL alteration via Lua.
1248 Add :func:`RDRule` to match queries with the ``RD`` flag set.
1254 Add :func:`setWHashedPertubation` for consistent ``whashed`` results.
1260 Add ``tcpConnectTimeout`` to :func:`newServer`.
1266 Fix negative port detection for IPv6 addresses on 32-bit.
1273 Fix crashed on SmartOS/Illumos (Roman Dayneko).
1277 :pullreq: 4788, 5036
1280 Add cache hit response rules.
1283 :tags: Improvements, Performance
1286 Add :func:`setTCPUseSinglePipe` to use a single TCP waiting queue.
1293 Change ``truncateTC`` to defaulting to off, having it enabled by default causes an compatibility with :rfc:`6891` (Robin Geuze).
1297 :pullreq: 4987, 5037
1300 Don't cache answers without any TTL (like SERVFAIL).
1303 :tags: Improvements, Performance
1304 :pullreq: 4985, 5501
1307 Add ``sendSizeAndMsgWithTimeout`` to send size and data in a single call and use it for TCP Fast Open towards backends.
1313 Prevent issues by unshadowing variables.
1316 :tags: New Features, SNMP
1317 :pullreq: 4989, 5123, 5204
1319 Add :doc:`SNMP support <advanced/snmp>`.
1322 :tags: Bug Fixes, Performance
1326 Refactor SuffixMatchNode using a SuffixMatchTree.
1332 Register DNSName::chopOff (@plzz).
1338 Allow passing :class:`DNSName`\ s as DNSRules.
1341 :tags: Bug Fixes, Webserver
1344 Send an HTTP 404 on unknown API paths.
1347 :tags: Improvements, Performance
1350 Tune systemd unit-file for medium-sized installations (Winfried Angele).
1356 Add support for setting the server selection policy on a per pool basis (Robin Geuze).
1360 :pullreq: 5150, 5171
1363 Make :func:`includeDirectory` work sorted (Robin Geuze).
1366 :tags: Improvements, LuaWrapper
1369 Allow embedded NULs in strings received from Lua.
1375 Add a ``suffixMatch`` parameter to :meth:`PacketCache:expungeByName` (Robin Geuze).
1381 Cleanup closed TCP downstream connections.
1387 Fix destination port reporting on "any" binds.
1394 Add an option so the packet cache entries don't age.
1397 :tags: Bug Fixes, Security
1400 Unified ``-k`` and :func:`setKey` behaviour for client and server mode now.
1406 Improve reporting of C++ exceptions that bubble up via Lua.
1409 :tags: Improvements, Performance
1412 Add the possiblity to fill a :class:`NetmaskGroup` (using :meth:`NetmaskGroup:addMask`) from `exceeds*` results.
1418 Add better logging on queries that get dropped, timed out or received.
1424 Add :func:`QNameRule`.
1430 Correctly truncate EDNS Client Subnetmasks.
1436 Print useful messages when query and response actions are mixed.
1442 Add an optional action to :func:`addDynBlocks`.
1448 Add an optional interface parameter to :func:`addLocal`/:func:`setLocal`.
1451 :tags: Bug Fixes, Performance
1454 Get rid of ``std::move()`` calls preventing copy elision.
1461 Fix :func:`RecordsTypeCountRule`\ 's handling of the # of records in a section.
1467 Make a ``truncate`` action available to DynBlock and Lua.
1474 Change stats functions to always return lowercase names (Robin Geuze).
1480 Implement a runtime changeable rule that matches IP address for a certain time called :func:`TimedIPSetRule`.
1484 :pullreq: 5449, 5454
1486 Only use TCP Fast Open when supported and prevent compiler warnings.
1492 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.
1498 Add support for returning several IPs to spoof from Lua.
1502 :pullreq: 5490, 5508
1503 :tickets: 5420, 5507
1505 Add Lua bindings to be able to rotate DNSCrypt keys, see :doc:`guides/dnscrypt`.
1508 :tags: Improvements, Performance
1511 Add labels count to StatNode, only set the name once.
1522 :pullreq: 5396, 5577
1524 Add the capability to set arbitrary tags in protobuf messages.
1531 Skip timeouts on the response latency graph.
1538 Deprecate syntactic sugar functions.
1545 Don't use square brackets for IPv6 in Carbon metrics.
1552 Copy the DNS header before encrypting it in place.
1559 Add setConsoleConnectionsLogging().
1565 Fix potential pointer wrap-around on 32 bits.
1571 Make the API available with an API key only.
1576 Released December 29th 2016
1578 Changes since 1.1.0-beta2:
1583 - `#4783 <https://github.com/PowerDNS/pdns/pull/4783>`__: Add -latomic
1585 - `#4812 <https://github.com/PowerDNS/pdns/pull/4812>`__: Handle
1586 header-only responses, handle Refused as Servfail in the cache
1591 - `#4762 <https://github.com/PowerDNS/pdns/pull/4762>`__:
1592 SuffixMatchNode: Fix an insertion issue for an existing node
1593 - `#4772 <https://github.com/PowerDNS/pdns/pull/4772>`__: Fix dnsdist
1594 initscript config check
1599 Released December 14th 2016
1601 Changes since 1.1.0-beta1:
1606 - `#4518 <https://github.com/PowerDNS/pdns/pull/4518>`__: Fix dynblocks
1607 over TCP, allow refusing dyn blocked queries
1608 - `#4519 <https://github.com/PowerDNS/pdns/pull/4519>`__: Allow
1609 altering the ECS behavior via rules and Lua
1610 - `#4535 <https://github.com/PowerDNS/pdns/pull/4535>`__: Add
1611 ``DNSQuestion:getDO()``
1612 - `#4653 <https://github.com/PowerDNS/pdns/pull/4653>`__:
1613 ``getStatisticsCounters()`` to access counters from Lua
1614 - `#4657 <https://github.com/PowerDNS/pdns/pull/4657>`__: Add
1615 ``includeDirectory(dir)``
1616 - `#4658 <https://github.com/PowerDNS/pdns/pull/4658>`__: Allow editing
1618 - `#4702 <https://github.com/PowerDNS/pdns/pull/4702>`__: Add
1619 ``setUDPTimeout(n)``
1620 - `#4726 <https://github.com/PowerDNS/pdns/pull/4726>`__: Add an option
1621 to return ServFail when no server is available
1622 - `#4748 <https://github.com/PowerDNS/pdns/pull/4748>`__: Add
1623 ``setCacheCleaningPercentage()``
1628 - `#4533 <https://github.com/PowerDNS/pdns/pull/4533>`__: Fix building
1629 with clang on OS X and FreeBSD
1630 - `#4537 <https://github.com/PowerDNS/pdns/pull/4537>`__: Replace
1631 luawrapper's std::forward/std::make\_tuple combo with
1632 std::forward\_as\_tuple (Sangwhan "fish" Moon)
1633 - `#4596 <https://github.com/PowerDNS/pdns/pull/4596>`__: Change the
1634 default max number of queued TCP conns to 1000
1635 - `#4632 <https://github.com/PowerDNS/pdns/pull/4632>`__: Improve
1636 dnsdist error message on a common typo/config mistake
1637 - `#4694 <https://github.com/PowerDNS/pdns/pull/4694>`__: Don't use a
1638 const\_iterator for erasing (fix compilation with some versions of
1640 - `#4715 <https://github.com/PowerDNS/pdns/pull/4715>`__: Specify that
1641 dnsmessage.proto uses protobuf version 2
1642 - `#4765 <https://github.com/PowerDNS/pdns/pull/4765>`__: Some service
1648 - `#4425 <https://github.com/PowerDNS/pdns/pull/4425>`__: Fix a
1649 protobuf regression (requestor/responder mix-up) caused by a94673e
1650 - `#4541 <https://github.com/PowerDNS/pdns/pull/4541>`__: Fix insertion
1651 issues in SuffixMatchTree, move it to dnsname.hh
1652 - `#4553 <https://github.com/PowerDNS/pdns/pull/4553>`__: Flush output
1653 in single command client mode
1654 - `#4578 <https://github.com/PowerDNS/pdns/pull/4578>`__: Fix
1655 destination address reporting
1656 - `#4640 <https://github.com/PowerDNS/pdns/pull/4640>`__: Don't exit
1657 dnsdist on an exception in maintenance
1658 - `#4721 <https://github.com/PowerDNS/pdns/pull/4721>`__: Handle
1659 exceptions in the UDP responder thread
1660 - `#4734 <https://github.com/PowerDNS/pdns/pull/4734>`__: Add the TCP
1661 socket to the map only if the connection succeeds. Closes #4733
1662 - `#4742 <https://github.com/PowerDNS/pdns/pull/4742>`__: Decrement the
1663 queued TCP conn count if writing to the pipe fails
1664 - `#4743 <https://github.com/PowerDNS/pdns/pull/4743>`__: Ignore
1665 newBPFFilter() and newDynBPFFilter() in client mode
1666 - `#4753 <https://github.com/PowerDNS/pdns/pull/4753>`__: Fix FD leak
1667 on TCP connection failure, handle TCP worker creation failure
1668 - `#4764 <https://github.com/PowerDNS/pdns/pull/4764>`__: Prevent race
1669 while creating new TCP worker threads
1674 Released September 1st 2016
1676 Changes since 1.0.0:
1681 - `#3762 <https://github.com/PowerDNS/pdns/pull/3762>`__ Teeaction:
1682 send copy of query to second nameserver, sponge responses
1683 - `#3876 <https://github.com/PowerDNS/pdns/pull/3876>`__ Add
1684 ``showResponseRules()``, ``{mv,rm,top}ResponseRule()``
1685 - `#3936 <https://github.com/PowerDNS/pdns/pull/3936>`__ Filter on
1686 opcode, records count/type, trailing data
1687 - `#3975 <https://github.com/PowerDNS/pdns/pull/3975>`__ Make dnsdist
1688 {A,I}XFR aware, document possible issues
1689 - `#4006 <https://github.com/PowerDNS/pdns/pull/4006>`__ Add eBPF
1690 source address and qname/qtype filtering
1691 - `#4008 <https://github.com/PowerDNS/pdns/pull/4008>`__ Node
1692 infrastructure for querying recent traffic
1693 - `#4042 <https://github.com/PowerDNS/pdns/pull/4042>`__ Add
1694 server-side TCP Fast Open support
1695 - `#4050 <https://github.com/PowerDNS/pdns/pull/4050>`__ Add
1696 ``clearRules()`` and ``setRules()``
1697 - `#4114 <https://github.com/PowerDNS/pdns/pull/4114>`__ Add
1698 ``QNameLabelsCountRule()`` and ``QNameWireLengthRule()``
1699 - `#4116 <https://github.com/PowerDNS/pdns/pull/4116>`__ Added src
1700 boolean to NetmaskGroupRule to match destination address (Reinier
1702 - `#4175 <https://github.com/PowerDNS/pdns/pull/4175>`__ Implemented
1703 query counting (Reinier Schoof)
1704 - `#4244 <https://github.com/PowerDNS/pdns/pull/4244>`__ Add a
1705 ``setCD`` parameter to set cd=1 on health check queries
1706 - `#4284 <https://github.com/PowerDNS/pdns/pull/4284>`__ Add
1707 RCodeRule(), Allow, Delay and Drop response actions
1708 - `#4305 <https://github.com/PowerDNS/pdns/pull/4305>`__ Add an
1709 optional Lua callback for altering a Protobuf message
1710 - `#4309 <https://github.com/PowerDNS/pdns/pull/4309>`__ Add
1711 showTCPStats function (RobinGeuze)
1712 - `#4329 <https://github.com/PowerDNS/pdns/pull/4329>`__ Add options to
1713 LogAction() so it can append (instead of truncate) (Duane Wessels)
1718 - `#3714 <https://github.com/PowerDNS/pdns/pull/3714>`__ Add
1719 documentation links to dnsdist.service (Ruben Kerkhof)
1720 - `#3754 <https://github.com/PowerDNS/pdns/pull/3754>`__ Allow the use
1721 of custom headers in the web server
1722 - `#3826 <https://github.com/PowerDNS/pdns/pull/3826>`__ Implement a
1723 'quiet' mode for SuffixMatchNodeRule()
1724 - `#3836 <https://github.com/PowerDNS/pdns/pull/3836>`__ Log the
1725 content of webserver's exceptions
1726 - `#3858 <https://github.com/PowerDNS/pdns/pull/3858>`__ Only log
1727 YaHTTP's parser exceptions in verbose mode
1728 - `#3877 <https://github.com/PowerDNS/pdns/pull/3877>`__ Increase max
1729 FDs in systemd unit, warn if clearly too low
1730 - `#4019 <https://github.com/PowerDNS/pdns/pull/4019>`__ Add an
1731 optional ``addECS`` option to ``TeeAction()``
1732 - `#4029 <https://github.com/PowerDNS/pdns/pull/4029>`__ Add version
1733 and feature information to version output
1734 - `#4079 <https://github.com/PowerDNS/pdns/pull/4079>`__ Return an
1735 error on RemoteLog{,Response}Action() w/o protobuf
1736 - `#4246 <https://github.com/PowerDNS/pdns/pull/4246>`__ API now sends
1737 pools as a JSON array instead of a string
1738 - `#4302 <https://github.com/PowerDNS/pdns/pull/4302>`__ Add ``help()``
1739 and ``showVersion()``
1740 - `#4286 <https://github.com/PowerDNS/pdns/pull/4286>`__ Add response
1741 rules to the API and Web status page
1742 - `#4068 <https://github.com/PowerDNS/pdns/pull/4068>`__ Display the
1743 dyn eBPF filters stats in the web interface
1748 - `#3755 <https://github.com/PowerDNS/pdns/pull/3755>`__ Fix RegexRule
1749 example in dnsdistconf.lua
1750 - `#3773 <https://github.com/PowerDNS/pdns/pull/3773>`__ Stop copying
1751 the HTTP request headers to the response
1752 - `#3837 <https://github.com/PowerDNS/pdns/pull/3837>`__ Remove dnsdist
1753 service file on trusty
1754 - `#3840 <https://github.com/PowerDNS/pdns/pull/3840>`__ Catch
1755 WrongTypeException in client mode
1756 - `#3906 <https://github.com/PowerDNS/pdns/pull/3906>`__ Keep the
1757 servers ordered inside pools
1758 - `#3988 <https://github.com/PowerDNS/pdns/pull/3988>`__ Fix
1759 ``grepq()`` output in the README
1760 - `#3992 <https://github.com/PowerDNS/pdns/pull/3992>`__ Fix some typos
1761 in the AXFR/IXFR documentation
1762 - `#3995 <https://github.com/PowerDNS/pdns/pull/3995>`__ Fix comparison
1763 between signed and unsigned integer
1764 - `#4049 <https://github.com/PowerDNS/pdns/pull/4049>`__ Fix dnsdist
1765 rpm building script #4048 (Daniel Stirnimann)
1766 - `#4065 <https://github.com/PowerDNS/pdns/pull/4065>`__ Include
1767 editline/readline.h instead of readline.h/history.h
1768 - `#4067 <https://github.com/PowerDNS/pdns/pull/4067>`__ Disable eBPF
1769 support when BPF\_FUNC\_tail\_call is not found
1770 - `#4069 <https://github.com/PowerDNS/pdns/pull/4069>`__ Fix a buffer
1771 overflow when displaying an OpcodeRule
1772 - `#4101 <https://github.com/PowerDNS/pdns/pull/4101>`__ Fix $
1773 expansion in build-dnsdist-rpm
1774 - `#4198 <https://github.com/PowerDNS/pdns/pull/4198>`__ newServer
1775 setting maxCheckFailures makes no sense (stutiredboy)
1776 - `#4205 <https://github.com/PowerDNS/pdns/pull/4205>`__ Prevent the
1777 use of "any" addresses for downstream server
1778 - `#4220 <https://github.com/PowerDNS/pdns/pull/4220>`__ Don't log an
1779 error when parsing an invalid UDP query
1780 - `#4348 <https://github.com/PowerDNS/pdns/pull/4348>`__ Fix invalid
1781 outstanding count for {A,I}XFR over TCP
1782 - `#4365 <https://github.com/PowerDNS/pdns/pull/4365>`__ Reset origFD
1783 asap to keep the outstanding count correct
1784 - `#4375 <https://github.com/PowerDNS/pdns/pull/4375>`__ Tuple requires
1785 make\_tuple to initialize
1786 - `#4380 <https://github.com/PowerDNS/pdns/pull/4380>`__ Fix
1787 compilation with clang when eBPF support is enabled
1792 Released April 21st 2016
1794 Changes since 1.0.0-beta1:
1799 - `#3700 <https://github.com/PowerDNS/pdns/pull/3700>`__ Create user
1800 from the RPM package to drop privs
1801 - `#3712 <https://github.com/PowerDNS/pdns/pull/3712>`__ Make check
1802 should run testrunner
1803 - `#3713 <https://github.com/PowerDNS/pdns/pull/3713>`__ Remove
1804 contrib/dnsdist.service (Ruben Kerkhof)
1805 - `#3722 <https://github.com/PowerDNS/pdns/pull/3722>`__ Use LT\_INIT
1806 and disable static objects (Ruben Kerkhof)
1807 - `#3724 <https://github.com/PowerDNS/pdns/pull/3724>`__ Include
1808 PDNS\_CHECK\_OS in configure (Christian Hofstaedtler)
1809 - `#3728 <https://github.com/PowerDNS/pdns/pull/3728>`__ Document
1810 libedit Ctrl-R workaround for CentOS 6
1811 - `#3730 <https://github.com/PowerDNS/pdns/pull/3730>`__ Make
1812 ``topBandwidth()`` behave like other top\* functions
1813 - `#3731 <https://github.com/PowerDNS/pdns/pull/3731>`__ Clarify a bit
1814 the documentation of load-balancing policies
1819 - `#3711 <https://github.com/PowerDNS/pdns/pull/3711>`__ Building rpm
1820 needs systemd headers (Ruben Kerkhof)
1821 - `#3736 <https://github.com/PowerDNS/pdns/pull/3736>`__ Add missing
1822 Lua binding for NetmaskGroupRule()
1823 - `#3739 <https://github.com/PowerDNS/pdns/pull/3739>`__ Drop
1824 privileges after daemonizing and writing our pid
1829 Released April 14th 2016
1831 Changes since 1.0.0-alpha2:
1836 - Per-pool packet cache
1837 - Some actions do not stop the processing anymore when they match,
1838 allowing more complex setups: Delay, Disable Validation, Log,
1839 MacAddr, No Recurse and of course None
1840 - The new RE2Rule() is available, using the RE2 regular expression
1841 library to match queries, in addition to the existing POSIX-based
1843 - SpoofAction() now supports multiple A and AAAA records
1844 - Remote logging of questions and answers via Protocol Buffer
1849 - `#3405 <https://github.com/PowerDNS/pdns/pull/3405>`__ Add health
1850 check logging, ``maxCheckFailures`` to backend
1851 - `#3412 <https://github.com/PowerDNS/pdns/pull/3412>`__ Check config
1852 - `#3440 <https://github.com/PowerDNS/pdns/pull/3440>`__ Client
1853 operation improvements
1854 - `#3466 <https://github.com/PowerDNS/pdns/pull/3466>`__ Add dq binding
1855 for skipping packet cache in LuaAction (Jan Broer)
1856 - `#3499 <https://github.com/PowerDNS/pdns/pull/3499>`__ Add support
1857 for multiple carbon servers
1858 - `#3504 <https://github.com/PowerDNS/pdns/pull/3504>`__ Allow
1859 accessing the API with an optional API key
1860 - `#3556 <https://github.com/PowerDNS/pdns/pull/3556>`__ Add an option
1861 to limit the number of queued TCP connections
1862 - `#3578 <https://github.com/PowerDNS/pdns/pull/3578>`__ Add a
1863 ``disable-syslog`` option
1864 - `#3608 <https://github.com/PowerDNS/pdns/pull/3608>`__ Export cache
1866 - `#3622 <https://github.com/PowerDNS/pdns/pull/3622>`__ Display the
1867 ACL content on startup
1868 - `#3627 <https://github.com/PowerDNS/pdns/pull/3627>`__ Remove ECS
1869 option from response's OPT RR when necessary
1870 - `#3633 <https://github.com/PowerDNS/pdns/pull/3633>`__ Count "TTL too
1872 - `#3677 <https://github.com/PowerDNS/pdns/pull/3677>`__ systemd-notify
1878 - `#3388 <https://github.com/PowerDNS/pdns/pull/3388>`__ Lock the Lua
1879 context before executing a LuaAction
1880 - `#3433 <https://github.com/PowerDNS/pdns/pull/3433>`__ Check that the
1881 answer matches the initial query
1882 - `#3461 <https://github.com/PowerDNS/pdns/pull/3461>`__ Fix crash when
1883 calling rmServer() with an invalid index
1884 - `#3550 <https://github.com/PowerDNS/pdns/pull/3550>`__,\ `#3551 <https://github.com/PowerDNS/pdns/pull/3551>`__
1885 Fix build failure on FreeBSD (Ruben Kerkhof)
1886 - `#3594 <https://github.com/PowerDNS/pdns/pull/3594>`__ Prevent EOF
1887 error for empty console response w/o sodium
1888 - `#3634 <https://github.com/PowerDNS/pdns/pull/3634>`__ Prevent
1889 dangling TCP fd in case setupTCPDownstream() fails
1890 - `#3641 <https://github.com/PowerDNS/pdns/pull/3641>`__ Under
1891 threshold, QPS action should return None, not Allow
1892 - `#3658 <https://github.com/PowerDNS/pdns/pull/3658>`__ Fix a race
1893 condition in MaxQPSIPRule
1898 Released February 5th 2016
1900 Changes since 1.0.0-alpha1:
1905 - Lua functions now receive a DNSQuestion ``dq`` object instead of
1906 several parameters. This adds a greater compatibility with PowerDNS
1907 and allows adding more parameters without breaking the API
1908 (`#3198 <https://github.com/PowerDNS/pdns/issues/3198>`__)
1909 - Added a ``source`` option to ``newServer()`` to specify the local
1910 address or interface used to contact a downstream server
1911 (`#3138 <https://github.com/PowerDNS/pdns/issues/3138>`__)
1912 - CNAME and IPv6-only support have been added to spoofed responses
1913 (`#3064 <https://github.com/PowerDNS/pdns/issues/3064>`__)
1914 - ``grepq()`` can be used to search for slow queries, along with
1916 - New Lua functions: ``addDomainCNAMESpoof()``, ``AllowAction()`` by
1917 @bearggg, ``exceedQRate()``, ``MacAddrAction()``, ``makeRule()``,
1918 ``NotRule()``, ``OrRule()``, ``QClassRule()``, ``RCodeAction()``,
1919 ``SpoofCNAMEAction()``, ``SuffixMatchNodeRule()``, ``TCPRule()``,
1921 - ``NetmaskGroup`` support have been added in Lua
1922 (`#3144 <https://github.com/PowerDNS/pdns/issues/3144>`__)
1923 - Added ``MacAddrAction()`` to add the source MAC address to the
1925 (`#3313 <https://github.com/PowerDNS/pdns/issues/3313>`__)
1930 - An issue in DelayPipe could make dnsdist crash at startup
1931 - ``downstream-timeouts`` metric was not always updated
1932 - ``truncateTC`` was unproperly updating the response length
1933 (`#3126 <https://github.com/PowerDNS/pdns/issues/3126>`__)
1934 - DNSCrypt responses larger than queries were unproperly truncated
1935 - An issue prevented info message from being displayed in non-verbose
1936 mode, fixed by Jan Broer
1937 - Reinstating an expired Dynamic Rule was not correctly logged
1938 (`#3323 <https://github.com/PowerDNS/pdns/issues/3323>`__)
1939 - Initialized counters in the TCP client thread might have cause FD and
1940 memory leak, reported by Martin Pels
1941 (`#3300 <https://github.com/PowerDNS/pdns/issues/3300>`__)
1942 - We now drop queries containing no question (qdcount == 0)
1943 (`#3290 <https://github.com/PowerDNS/pdns/issues/3290>`__)
1944 - Outstanding TCP queries count was not always correct
1945 (`#3288 <https://github.com/PowerDNS/pdns/issues/3288>`__)
1946 - A locking issue in exceedRespGen() might have caused crashs
1947 (`#3277 <https://github.com/PowerDNS/pdns/issues/3277>`__)
1948 - Useless sockets were created in client mode
1949 (`#3257 <https://github.com/PowerDNS/pdns/issues/3257>`__)
1950 - ``addAnyTCRule()`` was generating TC=1 responses even over TCP
1951 (`#3251 <https://github.com/PowerDNS/pdns/issues/3251>`__)
1956 - Cleanup of the HTML by Sander Hoentjen
1957 - Fixed an XSS reported by @janeczku
1958 (`#3217 <https://github.com/PowerDNS/pdns/issues/3217>`__)
1959 - Removed remote images
1960 - Set the charset to UTF-8, added some security-related and CORS HTTP
1962 - Added server latency by Jan Broer
1963 (`#3201 <https://github.com/PowerDNS/pdns/issues/3201>`__)
1964 - Switched to official minified versions of JS scripts, by Sander
1965 Hoentjen (`#3317 <https://github.com/PowerDNS/pdns/issues/3317>`__)
1966 - Don't log unauthenticated HTTP request as an authentication failure
1968 Various documentation updates and minor cleanups:
1969 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1971 - Added documentation for Advanced DNS Protection features (Dynamic
1972 rules, ``maintenance()``)
1973 - Make ``topBandwidth()`` default to the top 10 clients
1974 - Replaced readline with libedit
1975 - Added GPL2 License
1976 (`#3200 <https://github.com/PowerDNS/pdns/issues/3200>`__)
1977 - Added incbin License
1978 (`#3269 <https://github.com/PowerDNS/pdns/issues/3269>`__)
1979 - Updated completion rules
1980 - Removed wrong option ``--daemon-no`` by Stefan Schmidt
1985 Released December 24th 2015