6 :released: 8th of November 2018
13 Add consistent hash builtin policy
25 Add DSTPortRule (phonedph1)
31 Make getOutstanding usable from both lua and console (phonedph1)
37 Get rid of some allocs/copies in DNS parsing
43 Display dynblocks' default action, None, as the global one
50 Set a correct EDNS OPT RR for self-generated answers
56 Added :excludeRange and :includeRange methods to DynBPFFilter class (Reinier Schoof)
62 Fix a sign-comparison warning in isEDNSOptionInOPT()
66 :pullreq: 3935, 6343, 6901, 7007, 7089
69 Add Prometheus stats support (Pavel Odintsov, Kai S)
75 Fix compilation when SO_REUSEPORT is not defined
82 Add warning rates to DynBlockRulesGroup rules
89 Name threads in the programs
96 Add support for exporting a server id in protobuf
102 dnsdist did not set TCP_NODELAY, causing needless latency
108 Release memory on DNS over TLS handshake failure
114 Add a setting to control the number of stored sessions
121 Wrap GnuTLS and OpenSSL pointers in smart pointers
128 Support the NXDomain action with dynamic blocks
135 Add a 'creationOrder' field to rules
142 Fix return-type detection with boost 1.69's tribool
149 Fix format string issue on 32bits ARM
155 Wrap TCP connection objects in smart pointers
162 Add the setConsoleOutputMaxMsgSize function
175 Add the ability to update webserver credentials
181 Add a PoolAvailableRule to easily add backup pools (Robin Geuze)
188 Handle trailing data correctly when adding OPT or ECS info
192 :released: 10th of July 2018
198 Add missing include for PRId64, fix build on CentOS 6 / SLES 12
202 :released: 10th of July 2018
209 Remove `thelog` and `thel` and replace this with a global g_log
215 Fix two small nits on the documentation
222 Move the el6 dnsdist package to upstart
228 Initialize the done variable in the rings' unit tests
234 Reorder headers to fix OpenBSD build
241 CLI option improvements (Chris Hofstaedtler)
247 Split pdns_enable_unit_tests (Chris Hofstaedtler)
253 Restrict value range for weight parameter, avoid sum overflows dropping queries (Dan McCombs)
257 :pullreq: 6445, 6457, 6470
266 Docs: fix missing ref in the dnsdist docs
272 Be more permissive in wrandom tests, log values on failure
279 Tests: avoid failure on not-so-optimal distribution
286 Add support for more than one TLS certificate
292 Add syntax to dns.proto to silence compilation warning.
298 Fix warnings reported by gcc 8.1.0
305 Document setVerboseHealthchecks()
311 Update dq.rst (phonedph1)
323 Don't copy unitialized values of SuffixMatchTree
329 Expose toString of various objects to Lua (Chris Hofstaedtler)
335 Remove 'expired' states from MaxQPSIPRule
341 Fix reconnection handling
348 Mark the remote member of DownstreamState as const
354 Dynamic blocks were being created with the wrong duration (David Freedman)
361 Test the content of dynamic blocks using the API
368 Default set "connection: close" header for web requests
374 Update timedipsetrule.rst (phonedph1)
381 Don't access the TCP buffer vector past its size
387 Show droprate in API output
394 Limit qps and latency to two decimals in the web view
401 Refuse console connection without a proper key set
408 Add a negative ttl option to the packet cache
414 Check the flags to detect collisions in the packet cache
420 Add the ability to dump a summary of the cache content
426 Fix iterating over the results of exceed*() functions
432 Fix duration false positive in the dynblock regression tests
438 Add netmask-based {ex,in}clusions to DynblockRulesGroup
445 Add DNSAction.NoOp to debug dynamic blocks
452 Implement NoneAction()
459 Detect ECS collisions in the packet cache
465 Fix an outstanding counter race when reusing states
472 Add SetECSAction to set an arbitrary outgoing ecs value
478 Use LRU to clean the MaxQPSIPRule's store
484 Disable maybe uninitialized warnings with boost optional
490 Add support for rotating certificates and keys
497 Luawrapper: report caught std::exception as lua_error
503 Dnstap.rst: fix some editing errors (Chris Hofstaedtler)
510 Allow known exception types to be converted to string
515 :released: 30th of March 2018
518 :tags: Improvements, New Features
522 Add cache sharding, ``recvmmsg`` and CPU pinning support.
523 With these, the scalability of :program:`dnsdist` is drastically improved.
529 Add burst option to :func:`MaxQPSIPRule` (42wim).
536 Handle SNMP alarms so we can reconnect to the master.
542 Add an optional `status` parameter to :func:`Server:setAuto`.
549 Fix signed/unsigned comparison warnings on ARM.
555 Add Pools, cacheHitResponseRules to the API.
561 Add :func:`inClientStartup` function.
568 Add a class option to health checks.
574 Add tag-based routing of queries.
578 :pullreq: 6117, 6175, 6176, 6177, 6189
580 Add experimental :doc:`DNS-over-TLS <guides/dns-over-tls>` support.
586 Add UUIDs to rules, this allows tracking rules through modifications and moving them around.
592 Keep trying if the first connection to the remote logger failed
598 Add simple :doc:`dnstap <reference/dnstap>` support (Justin Valentini, Chris Hofstaedtler).
605 Apply ResponseRules to locally generated answers (Chris Hofstaedtler).
611 Report :func:`LuaAction` and :func:`LuaResponseAction` failures in the log and send SERVFAIL instead of not answering the query (Chris Hofstaedtler).
617 Unify global statistics accounting (Chris Hofstaedtler).
623 Speed up the processing of large ring buffers.
624 This change will make :program:`dnsdist` more scalable with a large number of different clients.
631 Make custom :func:`addLuaAction` and :func:`addLuaResponseAction` callback's second return value optional.
637 Add "server-up" metric count to Carbon Reporting (Lowell Mower).
643 Add xchacha20 support for :doc:`DNSCrypt <guides/dnscrypt>`.
649 Scalability improvement: Add an option to use several source ports towards a backend.
656 Add '?' and 'help' for providing help() output on ``dnsdist -c`` (Kirill Ponomarev, Chris Hofstaedtler).
662 Replace the Lua mutex with a rw lock to limit contention.
663 This improves the processing speed and parallelism of the policies.
670 Add experimental XPF support based on `draft-bellis-dnsop-xpf-04 <https://tools.ietf.org/html/draft-bellis-dnsop-xpf-04>`__.
676 Add :func:`ERCodeRule` to match on extended RCodes (Chris Hofstaedtler).
682 Fix escaping unusual DNS label octets in DNSName is off by one (Kees Monshouwer).
688 Add :func:`TempFailureCacheTTLAction` (Chris Hofstaedtler).
694 Ensure :program:`dnsdist` compiles on NetBSD (Tom Ivar Helbekkmo).
701 Also log eBPF dynamic blocks, as regular dynamic block already are.
704 :tags: New Features, Improvements
707 Add :ref:`DynBlockRulesGroup` to improve processing speed of the :func:`maintenance` function by reducing memory usage and not walking the ringbuffers multiple times.
714 Remove the ``--daemon`` option from :program:`dnsdist`.
721 Add :func:`console ACL <addConsoleACL>` functions.
728 Allow adding :meth:`EDNS Client Subnet information <ServerPool:setECS>` to a query before looking in the cache.
729 This allows serving ECS enabled answers from the cache when all servers in a pool are down.
736 Ensure large numbers are shown correctly in the API.
743 Add option to :func:`showRules` to truncate the output length.
749 Avoid assertion errors in :func:`NewServer` (Chris Hofstaedtler).
755 Fix several warnings reported by clang's analyzer and cppcheck, should lead to small performance increases.
760 :released: 16th of February 2018
766 Add configuration option to disable IP_BIND_ADDRESS_NO_PORT (Dan McCombs).
772 Handle bracketed IPv6 addresses without ports (Chris Hofstaedtler).
778 Make dnsdist dynamic truncate do right thing on TCP/IP.
784 Add missing QPSAction
790 Don't create a Remote Logger in client mode.
796 Use libsodium's CFLAGS, we might need them to find the includes.
802 Keep the TCP connection open on cache hit, generated answers.
808 Add the missing <sys/time.h> include to mplexer.hh for struct timeval.
814 Sort the servers based on their 'order' after it has been set.
820 Quiet unused variable warning on macOS (Chris Hofstaedtler).
827 Fix the outstanding counter when an exception is raised.
834 Do not connect the snmpAgent from a dnsdist client.
838 :released: 21st of August 2017
845 DNSName: Check that both first two bits are set in compressed labels.
852 Handle unreachable servers at startup, reconnect stale sockets
859 Gracefully handle invalid addresses in :func:`newServer`.
866 Add an option to 'mute' UDP responses per bind.
869 :tags: New Features, Performance
872 Add TCP management options from :rfc:`RFC 7766 section 10 <7766#section-10>`.
878 LuaWrapper: Use the correct index when storing a function.
885 Save history to home-dir, only use CWD as a last resort.
891 Add the :func:`setRingBuffersSize` directive to allows changing the ringbuffer size.
894 :tags: Improvements, Security
897 Merge the client and server nonces to prevent replay attacks.
903 Use ``IP_BIND_ADDRESS_NO_PORT`` when available.
910 Send a latency of 0 over carbon, null over API for down servers.
917 Add an optional ``seconds`` parameter to :func:`statNodeRespRing`.
923 Report a more specific lua version and report luajit in ``--version``.
926 :tags: Improvements, DNSCrypt
929 Store the computed shared key and reuse it for the response for DNSCrypt messages.
932 :tags: New Features, Protobuf
936 Add an option to export CNAME records over protobuf.
943 Allow TTL alteration via Lua.
949 Add :func:`RDRule` to match queries with the ``RD`` flag set.
955 Add :func:`setWHashedPertubation` for consistent ``whashed`` results.
961 Add ``tcpConnectTimeout`` to :func:`newServer`.
967 Fix negative port detection for IPv6 addresses on 32-bit.
974 Fix crashed on SmartOS/Illumos (Roman Dayneko).
981 Add cache hit response rules.
984 :tags: Improvements, Performance
987 Add :func:`setTCPUseSinglePipe` to use a single TCP waiting queue.
994 Change ``truncateTC`` to defaulting to off, having it enabled by default causes an compatibility with :rfc:`6891` (Robin Geuze).
1001 Don't cache answers without any TTL (like SERVFAIL).
1004 :tags: Improvements, Performance
1005 :pullreq: 4985, 5501
1008 Add ``sendSizeAndMsgWithTimeout`` to send size and data in a single call and use it for TCP Fast Open towards backends.
1014 Prevent issues by unshadowing variables.
1017 :tags: New Features, SNMP
1018 :pullreq: 4989, 5123, 5204
1020 Add :doc:`SNMP support <advanced/snmp>`.
1023 :tags: Bug Fixes, Performance
1027 Refactor SuffixMatchNode using a SuffixMatchTree.
1033 Register DNSName::chopOff (@plzz).
1039 Allow passing :class:`DNSName`\ s as DNSRules.
1042 :tags: Bug Fixes, Webserver
1045 Send an HTTP 404 on unknown API paths.
1048 :tags: Improvements, Performance
1051 Tune systemd unit-file for medium-sized installations (Winfried Angele).
1057 Add support for setting the server selection policy on a per pool basis (Robin Geuze).
1061 :pullreq: 5150, 5171
1064 Make :func:`includeDirectory` work sorted (Robin Geuze).
1067 :tags: Improvements, LuaWrapper
1070 Allow embedded NULs in strings received from Lua.
1076 Add a ``suffixMatch`` parameter to :meth:`PacketCache:expungeByName` (Robin Geuze).
1082 Cleanup closed TCP downstream connections.
1088 Fix destination port reporting on "any" binds.
1095 Add an option so the packet cache entries don't age.
1098 :tags: Bug Fixes, Security
1101 Unified ``-k`` and :func:`setKey` behaviour for client and server mode now.
1107 Improve reporting of C++ exceptions that bubble up via Lua.
1110 :tags: Improvements, Performance
1113 Add the possiblity to fill a :class:`NetmaskGroup` (using :meth:`NetmaskGroup:addMask`) from `exceeds*` results.
1119 Add better logging on queries that get dropped, timed out or received.
1125 Add :func:`QNameRule`.
1131 Correctly truncate EDNS Client Subnetmasks.
1137 Print useful messages when query and response actions are mixed.
1143 Add an optional action to :func:`addDynBlocks`.
1149 Add an optional interface parameter to :func:`addLocal`/:func:`setLocal`.
1152 :tags: Bug Fixes, Performance
1155 Get rid of ``std::move()`` calls preventing copy elision.
1162 Fix :func:`RecordsTypeCountRule`\ 's handling of the # of records in a section.
1168 Make a ``truncate`` action available to DynBlock and Lua.
1175 Change stats functions to always return lowercase names (Robin Geuze).
1181 Implement a runtime changeable rule that matches IP address for a certain time called :func:`TimedIPSetRule`.
1185 :pullreq: 5449, 5454
1187 Only use TCP Fast Open when supported and prevent compiler warnings.
1193 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.
1199 Add support for returning several IPs to spoof from Lua.
1203 :pullreq: 5490, 5508
1204 :tickets: 5420, 5507
1206 Add Lua bindings to be able to rotate DNSCrypt keys, see :doc:`guides/dnscrypt`.
1209 :tags: Improvements, Performance
1212 Add labels count to StatNode, only set the name once.
1223 :pullreq: 5396, 5577
1225 Add the capability to set arbitrary tags in protobuf messages.
1232 Skip timeouts on the response latency graph.
1239 Deprecate syntactic sugar functions.
1246 Don't use square brackets for IPv6 in Carbon metrics.
1253 Copy the DNS header before encrypting it in place.
1260 Add setConsoleConnectionsLogging().
1266 Fix potential pointer wrap-around on 32 bits.
1272 Make the API available with an API key only.
1277 Released December 29th 2016
1279 Changes since 1.1.0-beta2:
1284 - `#4783 <https://github.com/PowerDNS/pdns/pull/4783>`__: Add -latomic
1286 - `#4812 <https://github.com/PowerDNS/pdns/pull/4812>`__: Handle
1287 header-only responses, handle Refused as Servfail in the cache
1292 - `#4762 <https://github.com/PowerDNS/pdns/pull/4762>`__:
1293 SuffixMatchNode: Fix an insertion issue for an existing node
1294 - `#4772 <https://github.com/PowerDNS/pdns/pull/4772>`__: Fix dnsdist
1295 initscript config check
1300 Released December 14th 2016
1302 Changes since 1.1.0-beta1:
1307 - `#4518 <https://github.com/PowerDNS/pdns/pull/4518>`__: Fix dynblocks
1308 over TCP, allow refusing dyn blocked queries
1309 - `#4519 <https://github.com/PowerDNS/pdns/pull/4519>`__: Allow
1310 altering the ECS behavior via rules and Lua
1311 - `#4535 <https://github.com/PowerDNS/pdns/pull/4535>`__: Add
1312 ``DNSQuestion:getDO()``
1313 - `#4653 <https://github.com/PowerDNS/pdns/pull/4653>`__:
1314 ``getStatisticsCounters()`` to access counters from Lua
1315 - `#4657 <https://github.com/PowerDNS/pdns/pull/4657>`__: Add
1316 ``includeDirectory(dir)``
1317 - `#4658 <https://github.com/PowerDNS/pdns/pull/4658>`__: Allow editing
1319 - `#4702 <https://github.com/PowerDNS/pdns/pull/4702>`__: Add
1320 ``setUDPTimeout(n)``
1321 - `#4726 <https://github.com/PowerDNS/pdns/pull/4726>`__: Add an option
1322 to return ServFail when no server is available
1323 - `#4748 <https://github.com/PowerDNS/pdns/pull/4748>`__: Add
1324 ``setCacheCleaningPercentage()``
1329 - `#4533 <https://github.com/PowerDNS/pdns/pull/4533>`__: Fix building
1330 with clang on OS X and FreeBSD
1331 - `#4537 <https://github.com/PowerDNS/pdns/pull/4537>`__: Replace
1332 luawrapper's std::forward/std::make\_tuple combo with
1333 std::forward\_as\_tuple (Sangwhan "fish" Moon)
1334 - `#4596 <https://github.com/PowerDNS/pdns/pull/4596>`__: Change the
1335 default max number of queued TCP conns to 1000
1336 - `#4632 <https://github.com/PowerDNS/pdns/pull/4632>`__: Improve
1337 dnsdist error message on a common typo/config mistake
1338 - `#4694 <https://github.com/PowerDNS/pdns/pull/4694>`__: Don't use a
1339 const\_iterator for erasing (fix compilation with some versions of
1341 - `#4715 <https://github.com/PowerDNS/pdns/pull/4715>`__: Specify that
1342 dnsmessage.proto uses protobuf version 2
1343 - `#4765 <https://github.com/PowerDNS/pdns/pull/4765>`__: Some service
1349 - `#4425 <https://github.com/PowerDNS/pdns/pull/4425>`__: Fix a
1350 protobuf regression (requestor/responder mix-up) caused by a94673e
1351 - `#4541 <https://github.com/PowerDNS/pdns/pull/4541>`__: Fix insertion
1352 issues in SuffixMatchTree, move it to dnsname.hh
1353 - `#4553 <https://github.com/PowerDNS/pdns/pull/4553>`__: Flush output
1354 in single command client mode
1355 - `#4578 <https://github.com/PowerDNS/pdns/pull/4578>`__: Fix
1356 destination address reporting
1357 - `#4640 <https://github.com/PowerDNS/pdns/pull/4640>`__: Don't exit
1358 dnsdist on an exception in maintenance
1359 - `#4721 <https://github.com/PowerDNS/pdns/pull/4721>`__: Handle
1360 exceptions in the UDP responder thread
1361 - `#4734 <https://github.com/PowerDNS/pdns/pull/4734>`__: Add the TCP
1362 socket to the map only if the connection succeeds. Closes #4733
1363 - `#4742 <https://github.com/PowerDNS/pdns/pull/4742>`__: Decrement the
1364 queued TCP conn count if writing to the pipe fails
1365 - `#4743 <https://github.com/PowerDNS/pdns/pull/4743>`__: Ignore
1366 newBPFFilter() and newDynBPFFilter() in client mode
1367 - `#4753 <https://github.com/PowerDNS/pdns/pull/4753>`__: Fix FD leak
1368 on TCP connection failure, handle TCP worker creation failure
1369 - `#4764 <https://github.com/PowerDNS/pdns/pull/4764>`__: Prevent race
1370 while creating new TCP worker threads
1375 Released September 1st 2016
1377 Changes since 1.0.0:
1382 - `#3762 <https://github.com/PowerDNS/pdns/pull/3762>`__ Teeaction:
1383 send copy of query to second nameserver, sponge responses
1384 - `#3876 <https://github.com/PowerDNS/pdns/pull/3876>`__ Add
1385 ``showResponseRules()``, ``{mv,rm,top}ResponseRule()``
1386 - `#3936 <https://github.com/PowerDNS/pdns/pull/3936>`__ Filter on
1387 opcode, records count/type, trailing data
1388 - `#3975 <https://github.com/PowerDNS/pdns/pull/3975>`__ Make dnsdist
1389 {A,I}XFR aware, document possible issues
1390 - `#4006 <https://github.com/PowerDNS/pdns/pull/4006>`__ Add eBPF
1391 source address and qname/qtype filtering
1392 - `#4008 <https://github.com/PowerDNS/pdns/pull/4008>`__ Node
1393 infrastructure for querying recent traffic
1394 - `#4042 <https://github.com/PowerDNS/pdns/pull/4042>`__ Add
1395 server-side TCP Fast Open support
1396 - `#4050 <https://github.com/PowerDNS/pdns/pull/4050>`__ Add
1397 ``clearRules()`` and ``setRules()``
1398 - `#4114 <https://github.com/PowerDNS/pdns/pull/4114>`__ Add
1399 ``QNameLabelsCountRule()`` and ``QNameWireLengthRule()``
1400 - `#4116 <https://github.com/PowerDNS/pdns/pull/4116>`__ Added src
1401 boolean to NetmaskGroupRule to match destination address (Reinier
1403 - `#4175 <https://github.com/PowerDNS/pdns/pull/4175>`__ Implemented
1404 query counting (Reinier Schoof)
1405 - `#4244 <https://github.com/PowerDNS/pdns/pull/4244>`__ Add a
1406 ``setCD`` parameter to set cd=1 on health check queries
1407 - `#4284 <https://github.com/PowerDNS/pdns/pull/4284>`__ Add
1408 RCodeRule(), Allow, Delay and Drop response actions
1409 - `#4305 <https://github.com/PowerDNS/pdns/pull/4305>`__ Add an
1410 optional Lua callback for altering a Protobuf message
1411 - `#4309 <https://github.com/PowerDNS/pdns/pull/4309>`__ Add
1412 showTCPStats function (RobinGeuze)
1413 - `#4329 <https://github.com/PowerDNS/pdns/pull/4329>`__ Add options to
1414 LogAction() so it can append (instead of truncate) (Duane Wessels)
1419 - `#3714 <https://github.com/PowerDNS/pdns/pull/3714>`__ Add
1420 documentation links to dnsdist.service (Ruben Kerkhof)
1421 - `#3754 <https://github.com/PowerDNS/pdns/pull/3754>`__ Allow the use
1422 of custom headers in the web server
1423 - `#3826 <https://github.com/PowerDNS/pdns/pull/3826>`__ Implement a
1424 'quiet' mode for SuffixMatchNodeRule()
1425 - `#3836 <https://github.com/PowerDNS/pdns/pull/3836>`__ Log the
1426 content of webserver's exceptions
1427 - `#3858 <https://github.com/PowerDNS/pdns/pull/3858>`__ Only log
1428 YaHTTP's parser exceptions in verbose mode
1429 - `#3877 <https://github.com/PowerDNS/pdns/pull/3877>`__ Increase max
1430 FDs in systemd unit, warn if clearly too low
1431 - `#4019 <https://github.com/PowerDNS/pdns/pull/4019>`__ Add an
1432 optional ``addECS`` option to ``TeeAction()``
1433 - `#4029 <https://github.com/PowerDNS/pdns/pull/4029>`__ Add version
1434 and feature information to version output
1435 - `#4079 <https://github.com/PowerDNS/pdns/pull/4079>`__ Return an
1436 error on RemoteLog{,Response}Action() w/o protobuf
1437 - `#4246 <https://github.com/PowerDNS/pdns/pull/4246>`__ API now sends
1438 pools as a JSON array instead of a string
1439 - `#4302 <https://github.com/PowerDNS/pdns/pull/4302>`__ Add ``help()``
1440 and ``showVersion()``
1441 - `#4286 <https://github.com/PowerDNS/pdns/pull/4286>`__ Add response
1442 rules to the API and Web status page
1443 - `#4068 <https://github.com/PowerDNS/pdns/pull/4068>`__ Display the
1444 dyn eBPF filters stats in the web interface
1449 - `#3755 <https://github.com/PowerDNS/pdns/pull/3755>`__ Fix RegexRule
1450 example in dnsdistconf.lua
1451 - `#3773 <https://github.com/PowerDNS/pdns/pull/3773>`__ Stop copying
1452 the HTTP request headers to the response
1453 - `#3837 <https://github.com/PowerDNS/pdns/pull/3837>`__ Remove dnsdist
1454 service file on trusty
1455 - `#3840 <https://github.com/PowerDNS/pdns/pull/3840>`__ Catch
1456 WrongTypeException in client mode
1457 - `#3906 <https://github.com/PowerDNS/pdns/pull/3906>`__ Keep the
1458 servers ordered inside pools
1459 - `#3988 <https://github.com/PowerDNS/pdns/pull/3988>`__ Fix
1460 ``grepq()`` output in the README
1461 - `#3992 <https://github.com/PowerDNS/pdns/pull/3992>`__ Fix some typos
1462 in the AXFR/IXFR documentation
1463 - `#3995 <https://github.com/PowerDNS/pdns/pull/3995>`__ Fix comparison
1464 between signed and unsigned integer
1465 - `#4049 <https://github.com/PowerDNS/pdns/pull/4049>`__ Fix dnsdist
1466 rpm building script #4048 (Daniel Stirnimann)
1467 - `#4065 <https://github.com/PowerDNS/pdns/pull/4065>`__ Include
1468 editline/readline.h instead of readline.h/history.h
1469 - `#4067 <https://github.com/PowerDNS/pdns/pull/4067>`__ Disable eBPF
1470 support when BPF\_FUNC\_tail\_call is not found
1471 - `#4069 <https://github.com/PowerDNS/pdns/pull/4069>`__ Fix a buffer
1472 overflow when displaying an OpcodeRule
1473 - `#4101 <https://github.com/PowerDNS/pdns/pull/4101>`__ Fix $
1474 expansion in build-dnsdist-rpm
1475 - `#4198 <https://github.com/PowerDNS/pdns/pull/4198>`__ newServer
1476 setting maxCheckFailures makes no sense (stutiredboy)
1477 - `#4205 <https://github.com/PowerDNS/pdns/pull/4205>`__ Prevent the
1478 use of "any" addresses for downstream server
1479 - `#4220 <https://github.com/PowerDNS/pdns/pull/4220>`__ Don't log an
1480 error when parsing an invalid UDP query
1481 - `#4348 <https://github.com/PowerDNS/pdns/pull/4348>`__ Fix invalid
1482 outstanding count for {A,I}XFR over TCP
1483 - `#4365 <https://github.com/PowerDNS/pdns/pull/4365>`__ Reset origFD
1484 asap to keep the outstanding count correct
1485 - `#4375 <https://github.com/PowerDNS/pdns/pull/4375>`__ Tuple requires
1486 make\_tuple to initialize
1487 - `#4380 <https://github.com/PowerDNS/pdns/pull/4380>`__ Fix
1488 compilation with clang when eBPF support is enabled
1493 Released April 21st 2016
1495 Changes since 1.0.0-beta1:
1500 - `#3700 <https://github.com/PowerDNS/pdns/pull/3700>`__ Create user
1501 from the RPM package to drop privs
1502 - `#3712 <https://github.com/PowerDNS/pdns/pull/3712>`__ Make check
1503 should run testrunner
1504 - `#3713 <https://github.com/PowerDNS/pdns/pull/3713>`__ Remove
1505 contrib/dnsdist.service (Ruben Kerkhof)
1506 - `#3722 <https://github.com/PowerDNS/pdns/pull/3722>`__ Use LT\_INIT
1507 and disable static objects (Ruben Kerkhof)
1508 - `#3724 <https://github.com/PowerDNS/pdns/pull/3724>`__ Include
1509 PDNS\_CHECK\_OS in configure (Christian Hofstaedtler)
1510 - `#3728 <https://github.com/PowerDNS/pdns/pull/3728>`__ Document
1511 libedit Ctrl-R workaround for CentOS 6
1512 - `#3730 <https://github.com/PowerDNS/pdns/pull/3730>`__ Make
1513 ``topBandwidth()`` behave like other top\* functions
1514 - `#3731 <https://github.com/PowerDNS/pdns/pull/3731>`__ Clarify a bit
1515 the documentation of load-balancing policies
1520 - `#3711 <https://github.com/PowerDNS/pdns/pull/3711>`__ Building rpm
1521 needs systemd headers (Ruben Kerkhof)
1522 - `#3736 <https://github.com/PowerDNS/pdns/pull/3736>`__ Add missing
1523 Lua binding for NetmaskGroupRule()
1524 - `#3739 <https://github.com/PowerDNS/pdns/pull/3739>`__ Drop
1525 privileges after daemonizing and writing our pid
1530 Released April 14th 2016
1532 Changes since 1.0.0-alpha2:
1537 - Per-pool packet cache
1538 - Some actions do not stop the processing anymore when they match,
1539 allowing more complex setups: Delay, Disable Validation, Log,
1540 MacAddr, No Recurse and of course None
1541 - The new RE2Rule() is available, using the RE2 regular expression
1542 library to match queries, in addition to the existing POSIX-based
1544 - SpoofAction() now supports multiple A and AAAA records
1545 - Remote logging of questions and answers via Protocol Buffer
1550 - `#3405 <https://github.com/PowerDNS/pdns/pull/3405>`__ Add health
1551 check logging, ``maxCheckFailures`` to backend
1552 - `#3412 <https://github.com/PowerDNS/pdns/pull/3412>`__ Check config
1553 - `#3440 <https://github.com/PowerDNS/pdns/pull/3440>`__ Client
1554 operation improvements
1555 - `#3466 <https://github.com/PowerDNS/pdns/pull/3466>`__ Add dq binding
1556 for skipping packet cache in LuaAction (Jan Broer)
1557 - `#3499 <https://github.com/PowerDNS/pdns/pull/3499>`__ Add support
1558 for multiple carbon servers
1559 - `#3504 <https://github.com/PowerDNS/pdns/pull/3504>`__ Allow
1560 accessing the API with an optional API key
1561 - `#3556 <https://github.com/PowerDNS/pdns/pull/3556>`__ Add an option
1562 to limit the number of queued TCP connections
1563 - `#3578 <https://github.com/PowerDNS/pdns/pull/3578>`__ Add a
1564 ``disable-syslog`` option
1565 - `#3608 <https://github.com/PowerDNS/pdns/pull/3608>`__ Export cache
1567 - `#3622 <https://github.com/PowerDNS/pdns/pull/3622>`__ Display the
1568 ACL content on startup
1569 - `#3627 <https://github.com/PowerDNS/pdns/pull/3627>`__ Remove ECS
1570 option from response's OPT RR when necessary
1571 - `#3633 <https://github.com/PowerDNS/pdns/pull/3633>`__ Count "TTL too
1573 - `#3677 <https://github.com/PowerDNS/pdns/pull/3677>`__ systemd-notify
1579 - `#3388 <https://github.com/PowerDNS/pdns/pull/3388>`__ Lock the Lua
1580 context before executing a LuaAction
1581 - `#3433 <https://github.com/PowerDNS/pdns/pull/3433>`__ Check that the
1582 answer matches the initial query
1583 - `#3461 <https://github.com/PowerDNS/pdns/pull/3461>`__ Fix crash when
1584 calling rmServer() with an invalid index
1585 - `#3550 <https://github.com/PowerDNS/pdns/pull/3550>`__,\ `#3551 <https://github.com/PowerDNS/pdns/pull/3551>`__
1586 Fix build failure on FreeBSD (Ruben Kerkhof)
1587 - `#3594 <https://github.com/PowerDNS/pdns/pull/3594>`__ Prevent EOF
1588 error for empty console response w/o sodium
1589 - `#3634 <https://github.com/PowerDNS/pdns/pull/3634>`__ Prevent
1590 dangling TCP fd in case setupTCPDownstream() fails
1591 - `#3641 <https://github.com/PowerDNS/pdns/pull/3641>`__ Under
1592 threshold, QPS action should return None, not Allow
1593 - `#3658 <https://github.com/PowerDNS/pdns/pull/3658>`__ Fix a race
1594 condition in MaxQPSIPRule
1599 Released February 5th 2016
1601 Changes since 1.0.0-alpha1:
1606 - Lua functions now receive a DNSQuestion ``dq`` object instead of
1607 several parameters. This adds a greater compatibility with PowerDNS
1608 and allows adding more parameters without breaking the API
1609 (`#3198 <https://github.com/PowerDNS/pdns/issues/3198>`__)
1610 - Added a ``source`` option to ``newServer()`` to specify the local
1611 address or interface used to contact a downstream server
1612 (`#3138 <https://github.com/PowerDNS/pdns/issues/3138>`__)
1613 - CNAME and IPv6-only support have been added to spoofed responses
1614 (`#3064 <https://github.com/PowerDNS/pdns/issues/3064>`__)
1615 - ``grepq()`` can be used to search for slow queries, along with
1617 - New Lua functions: ``addDomainCNAMESpoof()``, ``AllowAction()`` by
1618 @bearggg, ``exceedQRate()``, ``MacAddrAction()``, ``makeRule()``,
1619 ``NotRule()``, ``OrRule()``, ``QClassRule()``, ``RCodeAction()``,
1620 ``SpoofCNAMEAction()``, ``SuffixMatchNodeRule()``, ``TCPRule()``,
1622 - ``NetmaskGroup`` support have been added in Lua
1623 (`#3144 <https://github.com/PowerDNS/pdns/issues/3144>`__)
1624 - Added ``MacAddrAction()`` to add the source MAC address to the
1626 (`#3313 <https://github.com/PowerDNS/pdns/issues/3313>`__)
1631 - An issue in DelayPipe could make dnsdist crash at startup
1632 - ``downstream-timeouts`` metric was not always updated
1633 - ``truncateTC`` was unproperly updating the response length
1634 (`#3126 <https://github.com/PowerDNS/pdns/issues/3126>`__)
1635 - DNSCrypt responses larger than queries were unproperly truncated
1636 - An issue prevented info message from being displayed in non-verbose
1637 mode, fixed by Jan Broer
1638 - Reinstating an expired Dynamic Rule was not correctly logged
1639 (`#3323 <https://github.com/PowerDNS/pdns/issues/3323>`__)
1640 - Initialized counters in the TCP client thread might have cause FD and
1641 memory leak, reported by Martin Pels
1642 (`#3300 <https://github.com/PowerDNS/pdns/issues/3300>`__)
1643 - We now drop queries containing no question (qdcount == 0)
1644 (`#3290 <https://github.com/PowerDNS/pdns/issues/3290>`__)
1645 - Outstanding TCP queries count was not always correct
1646 (`#3288 <https://github.com/PowerDNS/pdns/issues/3288>`__)
1647 - A locking issue in exceedRespGen() might have caused crashs
1648 (`#3277 <https://github.com/PowerDNS/pdns/issues/3277>`__)
1649 - Useless sockets were created in client mode
1650 (`#3257 <https://github.com/PowerDNS/pdns/issues/3257>`__)
1651 - ``addAnyTCRule()`` was generating TC=1 responses even over TCP
1652 (`#3251 <https://github.com/PowerDNS/pdns/issues/3251>`__)
1657 - Cleanup of the HTML by Sander Hoentjen
1658 - Fixed an XSS reported by @janeczku
1659 (`#3217 <https://github.com/PowerDNS/pdns/issues/3217>`__)
1660 - Removed remote images
1661 - Set the charset to UTF-8, added some security-related and CORS HTTP
1663 - Added server latency by Jan Broer
1664 (`#3201 <https://github.com/PowerDNS/pdns/issues/3201>`__)
1665 - Switched to official minified versions of JS scripts, by Sander
1666 Hoentjen (`#3317 <https://github.com/PowerDNS/pdns/issues/3317>`__)
1667 - Don't log unauthenticated HTTP request as an authentication failure
1669 Various documentation updates and minor cleanups:
1670 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1672 - Added documentation for Advanced DNS Protection features (Dynamic
1673 rules, ``maintenance()``)
1674 - Make ``topBandwidth()`` default to the top 10 clients
1675 - Replaced readline with libedit
1676 - Added GPL2 License
1677 (`#3200 <https://github.com/PowerDNS/pdns/issues/3200>`__)
1678 - Added incbin License
1679 (`#3269 <https://github.com/PowerDNS/pdns/issues/3269>`__)
1680 - Updated completion rules
1681 - Removed wrong option ``--daemon-no`` by Stefan Schmidt
1686 Released December 24th 2015