6 :released: 10th of July 2018
12 Add missing include for PRId64, fix build on CentOS 6 / SLES 12
16 :released: 10th of July 2018
23 Remove `thelog` and `thel` and replace this with a global g_log
29 Fix two small nits on the documentation
36 Move the el6 dnsdist package to upstart
42 Initialize the done variable in the rings' unit tests
48 Reorder headers to fix OpenBSD build
55 CLI option improvements (Chris Hofstaedtler)
61 Split pdns_enable_unit_tests (Chris Hofstaedtler)
67 Restrict value range for weight parameter, avoid sum overflows dropping queries (Dan McCombs)
71 :pullreq: 6445, 6457, 6470
80 Docs: fix missing ref in the dnsdist docs
86 Be more permissive in wrandom tests, log values on failure
93 Tests: avoid failure on not-so-optimal distribution
100 Add support for more than one TLS certificate
106 Add syntax to dns.proto to silence compilation warning.
112 Fix warnings reported by gcc 8.1.0
119 Document setVerboseHealthchecks()
125 Update dq.rst (phonedph1)
137 Don't copy unitialized values of SuffixMatchTree
143 Expose toString of various objects to Lua (Chris Hofstaedtler)
149 Remove 'expired' states from MaxQPSIPRule
155 Fix reconnection handling
162 Mark the remote member of DownstreamState as const
168 Dynamic blocks were being created with the wrong duration (David Freedman)
175 Test the content of dynamic blocks using the API
182 Default set "connection: close" header for web requests
188 Update timedipsetrule.rst (phonedph1)
195 Don't access the TCP buffer vector past its size
201 Show droprate in API output
208 Limit qps and latency to two decimals in the web view
215 Refuse console connection without a proper key set
222 Add a negative ttl option to the packet cache
228 Check the flags to detect collisions in the packet cache
234 Add the ability to dump a summary of the cache content
240 Fix iterating over the results of exceed*() functions
246 Fix duration false positive in the dynblock regression tests
252 Add netmask-based {ex,in}clusions to DynblockRulesGroup
259 Add DNSAction.NoOp to debug dynamic blocks
266 Implement NoneAction()
273 Detect ECS collisions in the packet cache
279 Fix an outstanding counter race when reusing states
286 Add SetECSAction to set an arbitrary outgoing ecs value
292 Use LRU to clean the MaxQPSIPRule's store
298 Disable maybe uninitialized warnings with boost optional
304 Add support for rotating certificates and keys
311 Luawrapper: report caught std::exception as lua_error
317 Dnstap.rst: fix some editing errors (Chris Hofstaedtler)
324 Allow known exception types to be converted to string
329 :released: 30th of March 2018
332 :tags: Improvements, New Features
336 Add cache sharding, ``recvmmsg`` and CPU pinning support.
337 With these, the scalability of :program:`dnsdist` is drastically improved.
343 Add burst option to :func:`MaxQPSIPRule` (42wim).
350 Handle SNMP alarms so we can reconnect to the master.
356 Add an optional `status` parameter to :func:`Server:setAuto`.
363 Fix signed/unsigned comparison warnings on ARM.
369 Add Pools, cacheHitResponseRules to the API.
375 Add :func:`inClientStartup` function.
382 Add a class option to health checks.
388 Add tag-based routing of queries.
392 :pullreq: 6117, 6175, 6176, 6177, 6189
394 Add experimental :doc:`DNS-over-TLS <guides/dns-over-tls>` support.
400 Add UUIDs to rules, this allows tracking rules through modifications and moving them around.
406 Keep trying if the first connection to the remote logger failed
412 Add simple :doc:`dnstap <reference/dnstap>` support (Justin Valentini, Chris Hofstaedtler).
419 Apply ResponseRules to locally generated answers (Chris Hofstaedtler).
425 Report :func:`LuaAction` and :func:`LuaResponseAction` failures in the log and send SERVFAIL instead of not answering the query (Chris Hofstaedtler).
431 Unify global statistics accounting (Chris Hofstaedtler).
437 Speed up the processing of large ring buffers.
438 This change will make :program:`dnsdist` more scalable with a large number of different clients.
445 Make custom :func:`addLuaAction` and :func:`addLuaResponseAction` callback's second return value optional.
451 Add "server-up" metric count to Carbon Reporting (Lowell Mower).
457 Add xchacha20 support for :doc:`DNSCrypt <guides/dnscrypt>`.
463 Scalability improvement: Add an option to use several source ports towards a backend.
470 Add '?' and 'help' for providing help() output on ``dnsdist -c`` (Kirill Ponomarev, Chris Hofstaedtler).
476 Replace the Lua mutex with a rw lock to limit contention.
477 This improves the processing speed and parallelism of the policies.
484 Add experimental XPF support based on `draft-bellis-dnsop-xpf-04 <https://tools.ietf.org/html/draft-bellis-dnsop-xpf-04>`__.
490 Add :func:`ERCodeRule` to match on extended RCodes (Chris Hofstaedtler).
496 Fix escaping unusual DNS label octets in DNSName is off by one (Kees Monshouwer).
502 Add :func:`TempFailureCacheTTLAction` (Chris Hofstaedtler).
508 Ensure :program:`dnsdist` compiles on NetBSD (Tom Ivar Helbekkmo).
515 Also log eBPF dynamic blocks, as regular dynamic block already are.
518 :tags: New Features, Improvements
521 Add :ref:`DynBlockRulesGroup` to improve processing speed of the :func:`maintenance` function by reducing memory usage and not walking the ringbuffers multiple times.
528 Remove the ``--daemon`` option from :program:`dnsdist`.
535 Add :func:`console ACL <addConsoleACL>` functions.
542 Allow adding :meth:`EDNS Client Subnet information <ServerPool:setECS>` to a query before looking in the cache.
543 This allows serving ECS enabled answers from the cache when all servers in a pool are down.
550 Ensure large numbers are shown correctly in the API.
557 Add option to :func:`showRules` to truncate the output length.
563 Avoid assertion errors in :func:`NewServer` (Chris Hofstaedtler).
569 Fix several warnings reported by clang's analyzer and cppcheck, should lead to small performance increases.
574 :released: 16th of February 2018
580 Add configuration option to disable IP_BIND_ADDRESS_NO_PORT (Dan McCombs).
586 Handle bracketed IPv6 addresses without ports (Chris Hofstaedtler).
592 Make dnsdist dynamic truncate do right thing on TCP/IP.
598 Add missing QPSAction
604 Don't create a Remote Logger in client mode.
610 Use libsodium's CFLAGS, we might need them to find the includes.
616 Keep the TCP connection open on cache hit, generated answers.
622 Add the missing <sys/time.h> include to mplexer.hh for struct timeval.
628 Sort the servers based on their 'order' after it has been set.
634 Quiet unused variable warning on macOS (Chris Hofstaedtler).
641 Fix the outstanding counter when an exception is raised.
648 Do not connect the snmpAgent from a dnsdist client.
652 :released: 21st of August 2017
659 DNSName: Check that both first two bits are set in compressed labels.
666 Handle unreachable servers at startup, reconnect stale sockets
673 Gracefully handle invalid addresses in :func:`newServer`.
680 Add an option to 'mute' UDP responses per bind.
683 :tags: New Features, Performance
686 Add TCP management options from :rfc:`RFC 7766 section 10 <7766#section-10>`.
692 LuaWrapper: Use the correct index when storing a function.
699 Save history to home-dir, only use CWD as a last resort.
705 Add the :func:`setRingBuffersSize` directive to allows changing the ringbuffer size.
708 :tags: Improvements, Security
711 Merge the client and server nonces to prevent replay attacks.
717 Use ``IP_BIND_ADDRESS_NO_PORT`` when available.
724 Send a latency of 0 over carbon, null over API for down servers.
731 Add an optional ``seconds`` parameter to :func:`statNodeRespRing`.
737 Report a more specific lua version and report luajit in ``--version``.
740 :tags: Improvements, DNSCrypt
743 Store the computed shared key and reuse it for the response for DNSCrypt messages.
746 :tags: New Features, Protobuf
750 Add an option to export CNAME records over protobuf.
757 Allow TTL alteration via Lua.
763 Add :func:`RDRule` to match queries with the ``RD`` flag set.
769 Add :func:`setWHashedPertubation` for consistent ``whashed`` results.
775 Add ``tcpConnectTimeout`` to :func:`newServer`.
781 Fix negative port detection for IPv6 addresses on 32-bit.
788 Fix crashed on SmartOS/Illumos (Roman Dayneko).
795 Add cache hit response rules.
798 :tags: Improvements, Performance
801 Add :func:`setTCPUseSinglePipe` to use a single TCP waiting queue.
808 Change ``truncateTC`` to defaulting to off, having it enabled by default causes an compatibility with :rfc:`6891` (Robin Geuze).
815 Don't cache answers without any TTL (like SERVFAIL).
818 :tags: Improvements, Performance
822 Add ``sendSizeAndMsgWithTimeout`` to send size and data in a single call and use it for TCP Fast Open towards backends.
828 Prevent issues by unshadowing variables.
831 :tags: New Features, SNMP
832 :pullreq: 4989, 5123, 5204
834 Add :doc:`SNMP support <advanced/snmp>`.
837 :tags: Bug Fixes, Performance
841 Refactor SuffixMatchNode using a SuffixMatchTree.
847 Register DNSName::chopOff (@plzz).
853 Allow passing :class:`DNSName`\ s as DNSRules.
856 :tags: Bug Fixes, Webserver
859 Send an HTTP 404 on unknown API paths.
862 :tags: Improvements, Performance
865 Tune systemd unit-file for medium-sized installations (Winfried Angele).
871 Add support for setting the server selection policy on a per pool basis (Robin Geuze).
878 Make :func:`includeDirectory` work sorted (Robin Geuze).
881 :tags: Improvements, LuaWrapper
884 Allow embedded NULs in strings received from Lua.
890 Add a ``suffixMatch`` parameter to :meth:`PacketCache:expungeByName` (Robin Geuze).
896 Cleanup closed TCP downstream connections.
902 Fix destination port reporting on "any" binds.
909 Add an option so the packet cache entries don't age.
912 :tags: Bug Fixes, Security
915 Unified ``-k`` and :func:`setKey` behaviour for client and server mode now.
921 Improve reporting of C++ exceptions that bubble up via Lua.
924 :tags: Improvements, Performance
927 Add the possiblity to fill a :class:`NetmaskGroup` (using :meth:`NetmaskGroup:addMask`) from `exceeds*` results.
933 Add better logging on queries that get dropped, timed out or received.
939 Add :func:`QNameRule`.
945 Correctly truncate EDNS Client Subnetmasks.
951 Print useful messages when query and response actions are mixed.
957 Add an optional action to :func:`addDynBlocks`.
963 Add an optional interface parameter to :func:`addLocal`/:func:`setLocal`.
966 :tags: Bug Fixes, Performance
969 Get rid of ``std::move()`` calls preventing copy elision.
976 Fix :func:`RecordsTypeCountRule`\ 's handling of the # of records in a section.
982 Make a ``truncate`` action available to DynBlock and Lua.
989 Change stats functions to always return lowercase names (Robin Geuze).
995 Implement a runtime changeable rule that matches IP address for a certain time called :func:`TimedIPSetRule`.
1001 Only use TCP Fast Open when supported and prevent compiler warnings.
1007 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.
1013 Add support for returning several IPs to spoof from Lua.
1017 :pullreq: 5490, 5508
1018 :tickets: 5420, 5507
1020 Add Lua bindings to be able to rotate DNSCrypt keys, see :doc:`guides/dnscrypt`.
1023 :tags: Improvements, Performance
1026 Add labels count to StatNode, only set the name once.
1037 :pullreq: 5396, 5577
1039 Add the capability to set arbitrary tags in protobuf messages.
1046 Skip timeouts on the response latency graph.
1053 Deprecate syntactic sugar functions.
1060 Don't use square brackets for IPv6 in Carbon metrics.
1067 Copy the DNS header before encrypting it in place.
1074 Add setConsoleConnectionsLogging().
1080 Fix potential pointer wrap-around on 32 bits.
1086 Make the API available with an API key only.
1091 Released December 29th 2016
1093 Changes since 1.1.0-beta2:
1098 - `#4783 <https://github.com/PowerDNS/pdns/pull/4783>`__: Add -latomic
1100 - `#4812 <https://github.com/PowerDNS/pdns/pull/4812>`__: Handle
1101 header-only responses, handle Refused as Servfail in the cache
1106 - `#4762 <https://github.com/PowerDNS/pdns/pull/4762>`__:
1107 SuffixMatchNode: Fix an insertion issue for an existing node
1108 - `#4772 <https://github.com/PowerDNS/pdns/pull/4772>`__: Fix dnsdist
1109 initscript config check
1114 Released December 14th 2016
1116 Changes since 1.1.0-beta1:
1121 - `#4518 <https://github.com/PowerDNS/pdns/pull/4518>`__: Fix dynblocks
1122 over TCP, allow refusing dyn blocked queries
1123 - `#4519 <https://github.com/PowerDNS/pdns/pull/4519>`__: Allow
1124 altering the ECS behavior via rules and Lua
1125 - `#4535 <https://github.com/PowerDNS/pdns/pull/4535>`__: Add
1126 ``DNSQuestion:getDO()``
1127 - `#4653 <https://github.com/PowerDNS/pdns/pull/4653>`__:
1128 ``getStatisticsCounters()`` to access counters from Lua
1129 - `#4657 <https://github.com/PowerDNS/pdns/pull/4657>`__: Add
1130 ``includeDirectory(dir)``
1131 - `#4658 <https://github.com/PowerDNS/pdns/pull/4658>`__: Allow editing
1133 - `#4702 <https://github.com/PowerDNS/pdns/pull/4702>`__: Add
1134 ``setUDPTimeout(n)``
1135 - `#4726 <https://github.com/PowerDNS/pdns/pull/4726>`__: Add an option
1136 to return ServFail when no server is available
1137 - `#4748 <https://github.com/PowerDNS/pdns/pull/4748>`__: Add
1138 ``setCacheCleaningPercentage()``
1143 - `#4533 <https://github.com/PowerDNS/pdns/pull/4533>`__: Fix building
1144 with clang on OS X and FreeBSD
1145 - `#4537 <https://github.com/PowerDNS/pdns/pull/4537>`__: Replace
1146 luawrapper's std::forward/std::make\_tuple combo with
1147 std::forward\_as\_tuple (Sangwhan "fish" Moon)
1148 - `#4596 <https://github.com/PowerDNS/pdns/pull/4596>`__: Change the
1149 default max number of queued TCP conns to 1000
1150 - `#4632 <https://github.com/PowerDNS/pdns/pull/4632>`__: Improve
1151 dnsdist error message on a common typo/config mistake
1152 - `#4694 <https://github.com/PowerDNS/pdns/pull/4694>`__: Don't use a
1153 const\_iterator for erasing (fix compilation with some versions of
1155 - `#4715 <https://github.com/PowerDNS/pdns/pull/4715>`__: Specify that
1156 dnsmessage.proto uses protobuf version 2
1157 - `#4765 <https://github.com/PowerDNS/pdns/pull/4765>`__: Some service
1163 - `#4425 <https://github.com/PowerDNS/pdns/pull/4425>`__: Fix a
1164 protobuf regression (requestor/responder mix-up) caused by a94673e
1165 - `#4541 <https://github.com/PowerDNS/pdns/pull/4541>`__: Fix insertion
1166 issues in SuffixMatchTree, move it to dnsname.hh
1167 - `#4553 <https://github.com/PowerDNS/pdns/pull/4553>`__: Flush output
1168 in single command client mode
1169 - `#4578 <https://github.com/PowerDNS/pdns/pull/4578>`__: Fix
1170 destination address reporting
1171 - `#4640 <https://github.com/PowerDNS/pdns/pull/4640>`__: Don't exit
1172 dnsdist on an exception in maintenance
1173 - `#4721 <https://github.com/PowerDNS/pdns/pull/4721>`__: Handle
1174 exceptions in the UDP responder thread
1175 - `#4734 <https://github.com/PowerDNS/pdns/pull/4734>`__: Add the TCP
1176 socket to the map only if the connection succeeds. Closes #4733
1177 - `#4742 <https://github.com/PowerDNS/pdns/pull/4742>`__: Decrement the
1178 queued TCP conn count if writing to the pipe fails
1179 - `#4743 <https://github.com/PowerDNS/pdns/pull/4743>`__: Ignore
1180 newBPFFilter() and newDynBPFFilter() in client mode
1181 - `#4753 <https://github.com/PowerDNS/pdns/pull/4753>`__: Fix FD leak
1182 on TCP connection failure, handle TCP worker creation failure
1183 - `#4764 <https://github.com/PowerDNS/pdns/pull/4764>`__: Prevent race
1184 while creating new TCP worker threads
1189 Released September 1st 2016
1191 Changes since 1.0.0:
1196 - `#3762 <https://github.com/PowerDNS/pdns/pull/3762>`__ Teeaction:
1197 send copy of query to second nameserver, sponge responses
1198 - `#3876 <https://github.com/PowerDNS/pdns/pull/3876>`__ Add
1199 ``showResponseRules()``, ``{mv,rm,top}ResponseRule()``
1200 - `#3936 <https://github.com/PowerDNS/pdns/pull/3936>`__ Filter on
1201 opcode, records count/type, trailing data
1202 - `#3975 <https://github.com/PowerDNS/pdns/pull/3975>`__ Make dnsdist
1203 {A,I}XFR aware, document possible issues
1204 - `#4006 <https://github.com/PowerDNS/pdns/pull/4006>`__ Add eBPF
1205 source address and qname/qtype filtering
1206 - `#4008 <https://github.com/PowerDNS/pdns/pull/4008>`__ Node
1207 infrastructure for querying recent traffic
1208 - `#4042 <https://github.com/PowerDNS/pdns/pull/4042>`__ Add
1209 server-side TCP Fast Open support
1210 - `#4050 <https://github.com/PowerDNS/pdns/pull/4050>`__ Add
1211 ``clearRules()`` and ``setRules()``
1212 - `#4114 <https://github.com/PowerDNS/pdns/pull/4114>`__ Add
1213 ``QNameLabelsCountRule()`` and ``QNameWireLengthRule()``
1214 - `#4116 <https://github.com/PowerDNS/pdns/pull/4116>`__ Added src
1215 boolean to NetmaskGroupRule to match destination address (Reinier
1217 - `#4175 <https://github.com/PowerDNS/pdns/pull/4175>`__ Implemented
1218 query counting (Reinier Schoof)
1219 - `#4244 <https://github.com/PowerDNS/pdns/pull/4244>`__ Add a
1220 ``setCD`` parameter to set cd=1 on health check queries
1221 - `#4284 <https://github.com/PowerDNS/pdns/pull/4284>`__ Add
1222 RCodeRule(), Allow, Delay and Drop response actions
1223 - `#4305 <https://github.com/PowerDNS/pdns/pull/4305>`__ Add an
1224 optional Lua callback for altering a Protobuf message
1225 - `#4309 <https://github.com/PowerDNS/pdns/pull/4309>`__ Add
1226 showTCPStats function (RobinGeuze)
1227 - `#4329 <https://github.com/PowerDNS/pdns/pull/4329>`__ Add options to
1228 LogAction() so it can append (instead of truncate) (Duane Wessels)
1233 - `#3714 <https://github.com/PowerDNS/pdns/pull/3714>`__ Add
1234 documentation links to dnsdist.service (Ruben Kerkhof)
1235 - `#3754 <https://github.com/PowerDNS/pdns/pull/3754>`__ Allow the use
1236 of custom headers in the web server
1237 - `#3826 <https://github.com/PowerDNS/pdns/pull/3826>`__ Implement a
1238 'quiet' mode for SuffixMatchNodeRule()
1239 - `#3836 <https://github.com/PowerDNS/pdns/pull/3836>`__ Log the
1240 content of webserver's exceptions
1241 - `#3858 <https://github.com/PowerDNS/pdns/pull/3858>`__ Only log
1242 YaHTTP's parser exceptions in verbose mode
1243 - `#3877 <https://github.com/PowerDNS/pdns/pull/3877>`__ Increase max
1244 FDs in systemd unit, warn if clearly too low
1245 - `#4019 <https://github.com/PowerDNS/pdns/pull/4019>`__ Add an
1246 optional ``addECS`` option to ``TeeAction()``
1247 - `#4029 <https://github.com/PowerDNS/pdns/pull/4029>`__ Add version
1248 and feature information to version output
1249 - `#4079 <https://github.com/PowerDNS/pdns/pull/4079>`__ Return an
1250 error on RemoteLog{,Response}Action() w/o protobuf
1251 - `#4246 <https://github.com/PowerDNS/pdns/pull/4246>`__ API now sends
1252 pools as a JSON array instead of a string
1253 - `#4302 <https://github.com/PowerDNS/pdns/pull/4302>`__ Add ``help()``
1254 and ``showVersion()``
1255 - `#4286 <https://github.com/PowerDNS/pdns/pull/4286>`__ Add response
1256 rules to the API and Web status page
1257 - `#4068 <https://github.com/PowerDNS/pdns/pull/4068>`__ Display the
1258 dyn eBPF filters stats in the web interface
1263 - `#3755 <https://github.com/PowerDNS/pdns/pull/3755>`__ Fix RegexRule
1264 example in dnsdistconf.lua
1265 - `#3773 <https://github.com/PowerDNS/pdns/pull/3773>`__ Stop copying
1266 the HTTP request headers to the response
1267 - `#3837 <https://github.com/PowerDNS/pdns/pull/3837>`__ Remove dnsdist
1268 service file on trusty
1269 - `#3840 <https://github.com/PowerDNS/pdns/pull/3840>`__ Catch
1270 WrongTypeException in client mode
1271 - `#3906 <https://github.com/PowerDNS/pdns/pull/3906>`__ Keep the
1272 servers ordered inside pools
1273 - `#3988 <https://github.com/PowerDNS/pdns/pull/3988>`__ Fix
1274 ``grepq()`` output in the README
1275 - `#3992 <https://github.com/PowerDNS/pdns/pull/3992>`__ Fix some typos
1276 in the AXFR/IXFR documentation
1277 - `#3995 <https://github.com/PowerDNS/pdns/pull/3995>`__ Fix comparison
1278 between signed and unsigned integer
1279 - `#4049 <https://github.com/PowerDNS/pdns/pull/4049>`__ Fix dnsdist
1280 rpm building script #4048 (Daniel Stirnimann)
1281 - `#4065 <https://github.com/PowerDNS/pdns/pull/4065>`__ Include
1282 editline/readline.h instead of readline.h/history.h
1283 - `#4067 <https://github.com/PowerDNS/pdns/pull/4067>`__ Disable eBPF
1284 support when BPF\_FUNC\_tail\_call is not found
1285 - `#4069 <https://github.com/PowerDNS/pdns/pull/4069>`__ Fix a buffer
1286 overflow when displaying an OpcodeRule
1287 - `#4101 <https://github.com/PowerDNS/pdns/pull/4101>`__ Fix $
1288 expansion in build-dnsdist-rpm
1289 - `#4198 <https://github.com/PowerDNS/pdns/pull/4198>`__ newServer
1290 setting maxCheckFailures makes no sense (stutiredboy)
1291 - `#4205 <https://github.com/PowerDNS/pdns/pull/4205>`__ Prevent the
1292 use of "any" addresses for downstream server
1293 - `#4220 <https://github.com/PowerDNS/pdns/pull/4220>`__ Don't log an
1294 error when parsing an invalid UDP query
1295 - `#4348 <https://github.com/PowerDNS/pdns/pull/4348>`__ Fix invalid
1296 outstanding count for {A,I}XFR over TCP
1297 - `#4365 <https://github.com/PowerDNS/pdns/pull/4365>`__ Reset origFD
1298 asap to keep the outstanding count correct
1299 - `#4375 <https://github.com/PowerDNS/pdns/pull/4375>`__ Tuple requires
1300 make\_tuple to initialize
1301 - `#4380 <https://github.com/PowerDNS/pdns/pull/4380>`__ Fix
1302 compilation with clang when eBPF support is enabled
1307 Released April 21st 2016
1309 Changes since 1.0.0-beta1:
1314 - `#3700 <https://github.com/PowerDNS/pdns/pull/3700>`__ Create user
1315 from the RPM package to drop privs
1316 - `#3712 <https://github.com/PowerDNS/pdns/pull/3712>`__ Make check
1317 should run testrunner
1318 - `#3713 <https://github.com/PowerDNS/pdns/pull/3713>`__ Remove
1319 contrib/dnsdist.service (Ruben Kerkhof)
1320 - `#3722 <https://github.com/PowerDNS/pdns/pull/3722>`__ Use LT\_INIT
1321 and disable static objects (Ruben Kerkhof)
1322 - `#3724 <https://github.com/PowerDNS/pdns/pull/3724>`__ Include
1323 PDNS\_CHECK\_OS in configure (Christian Hofstaedtler)
1324 - `#3728 <https://github.com/PowerDNS/pdns/pull/3728>`__ Document
1325 libedit Ctrl-R workaround for CentOS 6
1326 - `#3730 <https://github.com/PowerDNS/pdns/pull/3730>`__ Make
1327 ``topBandwidth()`` behave like other top\* functions
1328 - `#3731 <https://github.com/PowerDNS/pdns/pull/3731>`__ Clarify a bit
1329 the documentation of load-balancing policies
1334 - `#3711 <https://github.com/PowerDNS/pdns/pull/3711>`__ Building rpm
1335 needs systemd headers (Ruben Kerkhof)
1336 - `#3736 <https://github.com/PowerDNS/pdns/pull/3736>`__ Add missing
1337 Lua binding for NetmaskGroupRule()
1338 - `#3739 <https://github.com/PowerDNS/pdns/pull/3739>`__ Drop
1339 privileges after daemonizing and writing our pid
1344 Released April 14th 2016
1346 Changes since 1.0.0-alpha2:
1351 - Per-pool packet cache
1352 - Some actions do not stop the processing anymore when they match,
1353 allowing more complex setups: Delay, Disable Validation, Log,
1354 MacAddr, No Recurse and of course None
1355 - The new RE2Rule() is available, using the RE2 regular expression
1356 library to match queries, in addition to the existing POSIX-based
1358 - SpoofAction() now supports multiple A and AAAA records
1359 - Remote logging of questions and answers via Protocol Buffer
1364 - `#3405 <https://github.com/PowerDNS/pdns/pull/3405>`__ Add health
1365 check logging, ``maxCheckFailures`` to backend
1366 - `#3412 <https://github.com/PowerDNS/pdns/pull/3412>`__ Check config
1367 - `#3440 <https://github.com/PowerDNS/pdns/pull/3440>`__ Client
1368 operation improvements
1369 - `#3466 <https://github.com/PowerDNS/pdns/pull/3466>`__ Add dq binding
1370 for skipping packet cache in LuaAction (Jan Broer)
1371 - `#3499 <https://github.com/PowerDNS/pdns/pull/3499>`__ Add support
1372 for multiple carbon servers
1373 - `#3504 <https://github.com/PowerDNS/pdns/pull/3504>`__ Allow
1374 accessing the API with an optional API key
1375 - `#3556 <https://github.com/PowerDNS/pdns/pull/3556>`__ Add an option
1376 to limit the number of queued TCP connections
1377 - `#3578 <https://github.com/PowerDNS/pdns/pull/3578>`__ Add a
1378 ``disable-syslog`` option
1379 - `#3608 <https://github.com/PowerDNS/pdns/pull/3608>`__ Export cache
1381 - `#3622 <https://github.com/PowerDNS/pdns/pull/3622>`__ Display the
1382 ACL content on startup
1383 - `#3627 <https://github.com/PowerDNS/pdns/pull/3627>`__ Remove ECS
1384 option from response's OPT RR when necessary
1385 - `#3633 <https://github.com/PowerDNS/pdns/pull/3633>`__ Count "TTL too
1387 - `#3677 <https://github.com/PowerDNS/pdns/pull/3677>`__ systemd-notify
1393 - `#3388 <https://github.com/PowerDNS/pdns/pull/3388>`__ Lock the Lua
1394 context before executing a LuaAction
1395 - `#3433 <https://github.com/PowerDNS/pdns/pull/3433>`__ Check that the
1396 answer matches the initial query
1397 - `#3461 <https://github.com/PowerDNS/pdns/pull/3461>`__ Fix crash when
1398 calling rmServer() with an invalid index
1399 - `#3550 <https://github.com/PowerDNS/pdns/pull/3550>`__,\ `#3551 <https://github.com/PowerDNS/pdns/pull/3551>`__
1400 Fix build failure on FreeBSD (Ruben Kerkhof)
1401 - `#3594 <https://github.com/PowerDNS/pdns/pull/3594>`__ Prevent EOF
1402 error for empty console response w/o sodium
1403 - `#3634 <https://github.com/PowerDNS/pdns/pull/3634>`__ Prevent
1404 dangling TCP fd in case setupTCPDownstream() fails
1405 - `#3641 <https://github.com/PowerDNS/pdns/pull/3641>`__ Under
1406 threshold, QPS action should return None, not Allow
1407 - `#3658 <https://github.com/PowerDNS/pdns/pull/3658>`__ Fix a race
1408 condition in MaxQPSIPRule
1413 Released February 5th 2016
1415 Changes since 1.0.0-alpha1:
1420 - Lua functions now receive a DNSQuestion ``dq`` object instead of
1421 several parameters. This adds a greater compatibility with PowerDNS
1422 and allows adding more parameters without breaking the API
1423 (`#3198 <https://github.com/PowerDNS/pdns/issues/3198>`__)
1424 - Added a ``source`` option to ``newServer()`` to specify the local
1425 address or interface used to contact a downstream server
1426 (`#3138 <https://github.com/PowerDNS/pdns/issues/3138>`__)
1427 - CNAME and IPv6-only support have been added to spoofed responses
1428 (`#3064 <https://github.com/PowerDNS/pdns/issues/3064>`__)
1429 - ``grepq()`` can be used to search for slow queries, along with
1431 - New Lua functions: ``addDomainCNAMESpoof()``, ``AllowAction()`` by
1432 @bearggg, ``exceedQRate()``, ``MacAddrAction()``, ``makeRule()``,
1433 ``NotRule()``, ``OrRule()``, ``QClassRule()``, ``RCodeAction()``,
1434 ``SpoofCNAMEAction()``, ``SuffixMatchNodeRule()``, ``TCPRule()``,
1436 - ``NetmaskGroup`` support have been added in Lua
1437 (`#3144 <https://github.com/PowerDNS/pdns/issues/3144>`__)
1438 - Added ``MacAddrAction()`` to add the source MAC address to the
1440 (`#3313 <https://github.com/PowerDNS/pdns/issues/3313>`__)
1445 - An issue in DelayPipe could make dnsdist crash at startup
1446 - ``downstream-timeouts`` metric was not always updated
1447 - ``truncateTC`` was unproperly updating the response length
1448 (`#3126 <https://github.com/PowerDNS/pdns/issues/3126>`__)
1449 - DNSCrypt responses larger than queries were unproperly truncated
1450 - An issue prevented info message from being displayed in non-verbose
1451 mode, fixed by Jan Broer
1452 - Reinstating an expired Dynamic Rule was not correctly logged
1453 (`#3323 <https://github.com/PowerDNS/pdns/issues/3323>`__)
1454 - Initialized counters in the TCP client thread might have cause FD and
1455 memory leak, reported by Martin Pels
1456 (`#3300 <https://github.com/PowerDNS/pdns/issues/3300>`__)
1457 - We now drop queries containing no question (qdcount == 0)
1458 (`#3290 <https://github.com/PowerDNS/pdns/issues/3290>`__)
1459 - Outstanding TCP queries count was not always correct
1460 (`#3288 <https://github.com/PowerDNS/pdns/issues/3288>`__)
1461 - A locking issue in exceedRespGen() might have caused crashs
1462 (`#3277 <https://github.com/PowerDNS/pdns/issues/3277>`__)
1463 - Useless sockets were created in client mode
1464 (`#3257 <https://github.com/PowerDNS/pdns/issues/3257>`__)
1465 - ``addAnyTCRule()`` was generating TC=1 responses even over TCP
1466 (`#3251 <https://github.com/PowerDNS/pdns/issues/3251>`__)
1471 - Cleanup of the HTML by Sander Hoentjen
1472 - Fixed an XSS reported by @janeczku
1473 (`#3217 <https://github.com/PowerDNS/pdns/issues/3217>`__)
1474 - Removed remote images
1475 - Set the charset to UTF-8, added some security-related and CORS HTTP
1477 - Added server latency by Jan Broer
1478 (`#3201 <https://github.com/PowerDNS/pdns/issues/3201>`__)
1479 - Switched to official minified versions of JS scripts, by Sander
1480 Hoentjen (`#3317 <https://github.com/PowerDNS/pdns/issues/3317>`__)
1481 - Don't log unauthenticated HTTP request as an authentication failure
1483 Various documentation updates and minor cleanups:
1484 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1486 - Added documentation for Advanced DNS Protection features (Dynamic
1487 rules, ``maintenance()``)
1488 - Make ``topBandwidth()`` default to the top 10 clients
1489 - Replaced readline with libedit
1490 - Added GPL2 License
1491 (`#3200 <https://github.com/PowerDNS/pdns/issues/3200>`__)
1492 - Added incbin License
1493 (`#3269 <https://github.com/PowerDNS/pdns/issues/3269>`__)
1494 - Updated completion rules
1495 - Removed wrong option ``--daemon-no`` by Stefan Schmidt
1500 Released December 24th 2015