]> git.ipfire.org Git - thirdparty/pdns.git/blob - pdns/dnsdistdist/docs/changelog.rst
Merge pull request #7653 from pieterlexis/docker-ignore
[thirdparty/pdns.git] / pdns / dnsdistdist / docs / changelog.rst
1 Changelog
2 =========
3
4 .. changelog::
5 :version: 1.4.0-alpha1
6 :released: 12th of April 2019
7
8 .. change::
9 :tags: Improvements
10 :pullreq: 7167
11
12 Fix compiler warning about returning garbage (Adam Majer)
13
14 .. change::
15 :tags: Improvements
16 :pullreq: 7168
17
18 Fix warnings, mostly unused parameters, reported by -wextra
19
20 .. change::
21 :tags: New Features
22 :pullreq: 6959
23 :tickets: 6941, 2362
24
25 Add namespace and instance variable to carbon key (Gibheer)
26
27 .. change::
28 :tags: Improvements
29 :pullreq: 7191
30
31 Add optional uuid column to showServers()
32
33 .. change::
34 :tags: New Features
35 :pullreq: 7087
36
37 Allow NoRecurse for use in dynamic blocks or Lua rules (phonedph1)
38
39 .. change::
40 :tags: New Features
41 :pullreq: 7197
42 :tickets: 7194
43
44 Expose secpoll status
45
46 .. change::
47 :tags: Improvements
48 :pullreq: 7026
49
50 Configure --enable-pdns-option --with-third-party-module (Josh Soref)
51
52 .. change::
53 :tags: Bug Fixes
54 :pullreq: 7256
55
56 Protect GnuTLS tickets key rotation with a read-write lock
57
58 .. change::
59 :tags: Bug Fixes
60 :pullreq: 7267
61
62 Check that ``SO_ATTACH_BPF`` is defined before enabling eBPF
63
64 .. change::
65 :tags: Improvements
66 :pullreq: 7138
67
68 Drop remaining capabilities after startup
69
70 .. change::
71 :tags: New Features
72 :pullreq: 7323
73 :tickets: 7236
74
75 Add an optional 'checkTimeout' parameter to 'newServer()'
76
77 .. change::
78 :tags: New Features
79 :pullreq: 7322
80 :tickets: 7237
81
82 Add a 'rise' parameter to 'newServer()'
83
84 .. change::
85 :tags: New Features
86 :pullreq: 7310
87 :tickets: 7239
88
89 Add a 'keepStaleData' option to the packet cache
90
91 .. change::
92 :tags: New Features
93 :pullreq: 6967
94 :tickets: 6846, 6897
95
96 Expose trailing data (Richard Gibson)
97
98 .. change::
99 :tags: Improvements
100 :pullreq: 6634
101
102 More sandboxing using systemd's features
103
104 .. change::
105 :tags: Bug Fixes
106 :pullreq: 7426
107
108 Fix off-by-one in mvRule counting
109
110 .. change::
111 :tags: Improvements
112 :pullreq: 7428
113
114 Reduce systemcall usage in Protobuf logging
115
116 .. change::
117 :tags: Improvements
118 :pullreq: 7433
119
120 Resync YaHTTP code to cmouse/yahttp@11be77a1fc4032 (Chris Hofstaedtler)
121
122 .. change::
123 :tags: New Features
124 :pullreq: 7142
125
126 Add option to set interval between health checks (1848)
127
128 .. change::
129 :tags: New Features
130 :pullreq: 7406
131
132 Add EDNS unknown version handling (Dmitry Alenichev)
133
134 .. change::
135 :tags: Improvements
136 :pullreq: 7431
137
138 Pass empty response (Dmitry Alenichev)
139
140 .. change::
141 :tags: Improvements
142 :pullreq: 7502
143
144 Change the way getRealMemusage() works on linux (using statm)
145
146 .. change::
147 :tags: Bug Fixes
148 :pullreq: 7520
149
150 Don't convert nsec to usec if we need nsec
151
152 .. change::
153 :tags: New Features
154 :pullreq: 7537
155
156 DNSNameSet and QNameSetRule (Andrey)
157
158 .. change::
159 :tags: Bug Fixes
160 :pullreq: 7594
161
162 Fix setRules()
163
164 .. change::
165 :tags: Bug Fixes
166 :pullreq: 7560
167
168 Handle EAGAIN in the GnuTLS DNS over TLS provider
169
170 .. change::
171 :tags: Bug Fixes
172 :pullreq: 7586
173 :tickets: 7461
174
175 Gracefully handle a null latency in the webserver's js
176
177 .. change::
178 :tags: Improvements
179 :pullreq: 7585
180 :tickets: 7534
181
182 Prevent 0-ttl cache hits
183
184 .. change::
185 :tags: Improvements
186 :pullreq: 7343
187 :tickets: 7139
188
189 Add addDynBlockSMT() support to dynBlockRulesGroup
190
191 .. change::
192 :tags: Improvements
193 :pullreq: 7578
194
195 Add frontend response statistics (Matti Hiljanen)
196
197 .. change::
198 :tags: Bug Fixes
199 :pullreq: 7652
200
201 EDNSOptionView improvements
202
203 .. change::
204 :tags: New Features
205 :pullreq: 7481
206 :tickets: 6242
207
208 Add support for encrypting ip addresses #gdpr
209
210 .. change::
211 :tags: Improvements
212 :pullreq: 7670
213
214 Remove addLuaAction and addLuaResponseAction
215
216 .. change::
217 :tags: Improvements
218 :pullreq: 7559
219 :tickets: 7526, 4814
220
221 Refactoring of the TCP stack
222
223 .. change::
224 :tags: Bug Fixes
225 :pullreq: 7674
226 :tickets: 7481
227
228 Honor libcrypto include path
229
230 .. change::
231 :tags: New Features
232 :pullreq: 7677
233 :tickets: 5653
234
235 Add 'setSyslogFacility()'
236
237 .. change::
238 :tags: Improvements
239 :pullreq: 7692
240 :tickets: 7556
241
242 Prevent a conflict with BADSIG being clobbered
243
244 .. change::
245 :tags: Improvements
246 :pullreq: 7689
247
248 Switch to the new 'newPacketCache()' syntax for 1.4.0
249
250 .. change::
251 :tags: New Features
252 :pullreq: 7676
253
254 Add 'reloadAllCertificates()'
255
256 .. change::
257 :tags: Improvements
258 :pullreq: 7678
259
260 Move constants to proper namespace
261
262 .. change::
263 :tags: Improvements
264 :pullreq: 7694
265
266 Unify the management of DNS/DNSCrypt/DoT frontends
267
268 .. changelog::
269 :version: 1.3.3
270 :released: 8th of November 2018
271
272 .. change::
273 :tags: New Features
274 :pullreq: 6737, 6939
275 :tickets: 6932
276
277 Add consistent hash builtin policy
278
279 .. change::
280 :tags: New Features
281 :pullreq: 6803
282
283 Add EDNSOptionRule
284
285 .. change::
286 :tags: New Features
287 :pullreq: 6813
288
289 Add DSTPortRule (phonedph1)
290
291 .. change::
292 :tags: New Features
293 :pullreq: 6826
294
295 Make getOutstanding usable from both lua and console (phonedph1)
296
297 .. change::
298 :tags: Improvements
299 :pullreq: 6831
300
301 Get rid of some allocs/copies in DNS parsing
302
303 .. change::
304 :tags: Bug Fixes
305 :pullreq: 6835
306
307 Display dynblocks' default action, None, as the global one
308
309 .. change::
310 :tags: Improvements
311 :pullreq: 6847
312 :tickets: 6348, 4857
313
314 Set a correct EDNS OPT RR for self-generated answers
315
316 .. change::
317 :tags: New Features
318 :pullreq: 6856
319
320 Added :excludeRange and :includeRange methods to DynBPFFilter class (Reinier Schoof)
321
322 .. change::
323 :tags: Improvements
324 :pullreq: 6877
325
326 Fix a sign-comparison warning in isEDNSOptionInOPT()
327
328 .. change::
329 :tags: New Features
330 :pullreq: 3935, 6343, 6901, 7007, 7089
331 :tickets: 4947, 6002
332
333 Add Prometheus stats support (Pavel Odintsov, Kai S)
334
335 .. change::
336 :tags: Bug Fixes
337 :pullreq: 6956
338
339 Fix compilation when SO_REUSEPORT is not defined
340
341 .. change::
342 :tags: Improvements
343 :pullreq: 6986
344 :tickets: 6907, 6907
345
346 Add warning rates to DynBlockRulesGroup rules
347
348 .. change::
349 :tags: New Features
350 :pullreq: 6997
351 :tickets: 6974
352
353 Name threads in the programs
354
355 .. change::
356 :tags: Improvements
357 :pullreq: 7015
358 :tickets: 7004, 6990
359
360 Add support for exporting a server id in protobuf
361
362 .. change::
363 :tags: Improvements
364 :pullreq: 7030
365
366 dnsdist did not set TCP_NODELAY, causing needless latency
367
368 .. change::
369 :tags: Bug Fixes
370 :pullreq: 7060
371
372 Release memory on DNS over TLS handshake failure
373
374 .. change::
375 :tags: Improvements
376 :pullreq: 7062
377
378 Add a setting to control the number of stored sessions
379
380 .. change::
381 :tags: Improvements
382 :pullreq: 7064
383 :tickets: 7060
384
385 Wrap GnuTLS and OpenSSL pointers in smart pointers
386
387 .. change::
388 :tags: New Features
389 :pullreq: 7075
390 :tickets: 6908
391
392 Support the NXDomain action with dynamic blocks
393
394 .. change::
395 :tags: Improvements
396 :pullreq: 7078
397 :tickets: 6909
398
399 Add a 'creationOrder' field to rules
400
401 .. change::
402 :tags: Improvements
403 :pullreq: 7092
404 :tickets: 7091
405
406 Fix return-type detection with boost 1.69's tribool
407
408 .. change::
409 :tags: Improvements
410 :pullreq: 7104
411 :tickets: 7096
412
413 Fix format string issue on 32bits ARM
414
415 .. change::
416 :tags: Improvements
417 :pullreq: 7108
418
419 Wrap TCP connection objects in smart pointers
420
421 .. change::
422 :tags: Improvements
423 :pullreq: 7109
424 :tickets: 7084
425
426 Add the setConsoleOutputMaxMsgSize function
427
428 .. change::
429 :tags: New Features
430 :pullreq: 7115
431
432 Add security polling
433
434 .. change::
435 :tags: Improvements
436 :pullreq: 7117
437 :tickets: 7112
438
439 Add the ability to update webserver credentials
440
441 .. change::
442 :tags: New Features
443 :pullreq: 7140
444
445 Add a PoolAvailableRule to easily add backup pools (Robin Geuze)
446
447 .. change::
448 :tags: Bug Fixes
449 :pullreq: 7165
450 :tickets: 6896
451
452 Handle trailing data correctly when adding OPT or ECS info
453
454 .. changelog::
455 :version: 1.3.2
456 :released: 10th of July 2018
457
458 .. change::
459 :tags: Bug Fixes
460 :pullreq: 6785
461
462 Add missing include for PRId64, fix build on CentOS 6 / SLES 12
463
464 .. changelog::
465 :version: 1.3.1
466 :released: 10th of July 2018
467
468 .. change::
469 :tags: Improvements
470 :pullreq: 6358
471 :tickets: 6357
472
473 Remove `thelog` and `thel` and replace this with a global g_log
474
475 .. change::
476 :tags: Improvements
477 :pullreq: 6422
478
479 Fix two small nits on the documentation
480
481 .. change::
482 :tags: Improvements
483 :pullreq: 6426
484 :tickets: 6394
485
486 Move the el6 dnsdist package to upstart
487
488 .. change::
489 :tags: Bug Fixes
490 :pullreq: 6425
491
492 Initialize the done variable in the rings' unit tests
493
494 .. change::
495 :tags: Bug Fixes
496 :pullreq: 6429
497
498 Reorder headers to fix OpenBSD build
499
500 .. change::
501 :tags: Improvements
502 :pullreq: 6435
503 :tickets: 6433
504
505 CLI option improvements (Chris Hofstaedtler)
506
507 .. change::
508 :tags: Improvements
509 :pullreq: 6436
510
511 Split pdns_enable_unit_tests (Chris Hofstaedtler)
512
513 .. change::
514 :tags: Bug Fixes
515 :pullreq: 6448
516
517 Restrict value range for weight parameter, avoid sum overflows dropping queries (Dan McCombs)
518
519 .. change::
520 :tags: Improvements
521 :pullreq: 6445, 6457, 6470
522 :tickets: 6423
523
524 Re-do lua detection
525
526 .. change::
527 :tags: Improvements
528 :pullreq: 6460
529
530 Docs: fix missing ref in the dnsdist docs
531
532 .. change::
533 :tags: Improvements
534 :pullreq: 6502
535
536 Be more permissive in wrandom tests, log values on failure
537
538 .. change::
539 :tags: Improvements
540 :pullreq: 6523
541 :tickets: 6430
542
543 Tests: avoid failure on not-so-optimal distribution
544
545 .. change::
546 :tags: New Features
547 :pullreq: 6524
548 :tickets: 6450
549
550 Add support for more than one TLS certificate
551
552 .. change::
553 :tags: Improvements
554 :pullreq: 6577
555
556 Add syntax to dns.proto to silence compilation warning.
557
558 .. change::
559 :tags: Improvements
560 :pullreq: 6590
561
562 Fix warnings reported by gcc 8.1.0
563
564 .. change::
565 :tags: Improvements
566 :pullreq: 6592
567 :tickets: 6483
568
569 Document setVerboseHealthchecks()
570
571 .. change::
572 :tags: Improvements
573 :pullreq: 6615
574
575 Update dq.rst (phonedph1)
576
577 .. change::
578 :tags: Improvements
579 :pullreq: 6641
580
581 Fix rpm scriptlets
582
583 .. change::
584 :tags: Improvements
585 :pullreq: 6637
586
587 Don't copy unitialized values of SuffixMatchTree
588
589 .. change::
590 :tags: Improvements
591 :pullreq: 6684
592
593 Expose toString of various objects to Lua (Chris Hofstaedtler)
594
595 .. change::
596 :tags: Improvements
597 :pullreq: 6674
598
599 Remove 'expired' states from MaxQPSIPRule
600
601 .. change::
602 :tags: Bug Fixes
603 :pullreq: 6672
604
605 Fix reconnection handling
606
607 .. change::
608 :tags: Improvements
609 :pullreq: 6688
610 :tickets: 6664
611
612 Mark the remote member of DownstreamState as const
613
614 .. change::
615 :tags: Bug Fixes
616 :pullreq: 6706
617
618 Dynamic blocks were being created with the wrong duration (David Freedman)
619
620 .. change::
621 :tags: Improvements
622 :pullreq: 6710
623 :tickets: 6706
624
625 Test the content of dynamic blocks using the API
626
627 .. change::
628 :tags: Improvements
629 :pullreq: 6711
630 :tickets: 6532
631
632 Default set "connection: close" header for web requests
633
634 .. change::
635 :tags: Improvements
636 :pullreq: 6717
637
638 Update timedipsetrule.rst (phonedph1)
639
640 .. change::
641 :tags: Improvements
642 :pullreq: 6716
643 :tickets: 6712
644
645 Don't access the TCP buffer vector past its size
646
647 .. change::
648 :tags: Improvements
649 :pullreq: 6563
650
651 Show droprate in API output
652
653 .. change::
654 :tags: Bug Fixes
655 :pullreq: 6718
656 :tickets: 6442
657
658 Limit qps and latency to two decimals in the web view
659
660 .. change::
661 :tags: Improvements
662 :pullreq: 6715
663 :tickets: 6683, 6709
664
665 Refuse console connection without a proper key set
666
667 .. change::
668 :tags: New Features
669 :pullreq: 6740
670 :tickets: 6579
671
672 Add a negative ttl option to the packet cache
673
674 .. change::
675 :tags: Bug Fixes
676 :pullreq: 6747
677
678 Check the flags to detect collisions in the packet cache
679
680 .. change::
681 :tags: New Features
682 :pullreq: 6749
683
684 Add the ability to dump a summary of the cache content
685
686 .. change::
687 :tags: Bug Fixes
688 :pullreq: 6762
689
690 Fix iterating over the results of exceed*() functions
691
692 .. change::
693 :tags: Bug Fixes
694 :pullreq: 6767
695
696 Fix duration false positive in the dynblock regression tests
697
698 .. change::
699 :tags: New Features
700 :pullreq: 6760
701
702 Add netmask-based {ex,in}clusions to DynblockRulesGroup
703
704 .. change::
705 :tags: New Features
706 :pullreq: 6776
707 :tickets: 6703
708
709 Add DNSAction.NoOp to debug dynamic blocks
710
711 .. change::
712 :tags: Bug Fixes
713 :pullreq: 6775
714 :tickets: 6758
715
716 Implement NoneAction()
717
718 .. change::
719 :tags: Bug Fixes
720 :pullreq: 6754
721 :tickets: 6747
722
723 Detect ECS collisions in the packet cache
724
725 .. change::
726 :tags: Bug Fixes
727 :pullreq: 6773
728
729 Fix an outstanding counter race when reusing states
730
731 .. change::
732 :tags: New Features
733 :pullreq: 6734
734 :tickets: 6404
735
736 Add SetECSAction to set an arbitrary outgoing ecs value
737
738 .. change::
739 :tags: Improvements
740 :pullreq: 6726
741
742 Use LRU to clean the MaxQPSIPRule's store
743
744 .. change::
745 :tags: Improvements
746 :pullreq: 6769
747
748 Disable maybe uninitialized warnings with boost optional
749
750 .. change::
751 :tags: New Features
752 :pullreq: 6764
753
754 Add support for rotating certificates and keys
755
756 .. change::
757 :tags: Improvements
758 :pullreq: 6658
759 :tickets: 6541
760
761 Luawrapper: report caught std::exception as lua_error
762
763 .. change::
764 :tags: Improvements
765 :pullreq: 6602
766
767 Dnstap.rst: fix some editing errors (Chris Hofstaedtler)
768
769 .. change::
770 :tags: Improvements
771 :pullreq: 6541
772 :tickets: 6535
773
774 Allow known exception types to be converted to string
775
776
777 .. changelog::
778 :version: 1.3.0
779 :released: 30th of March 2018
780
781 .. change::
782 :tags: Improvements, New Features
783 :pullreq: 5576, 5860
784 :tickets: 5202, 5859
785
786 Add cache sharding, ``recvmmsg`` and CPU pinning support.
787 With these, the scalability of :program:`dnsdist` is drastically improved.
788
789 .. change::
790 :tags: Improvements
791 :pullreq: 5970
792
793 Add burst option to :func:`MaxQPSIPRule` (42wim).
794
795 .. change::
796 :tags: Bug Fixes
797 :pullreq: 5328
798 :tickets: 5327
799
800 Handle SNMP alarms so we can reconnect to the master.
801
802 .. change::
803 :tags: New Features
804 :pullreq: 5625
805
806 Add an optional `status` parameter to :func:`Server:setAuto`.
807
808 .. change::
809 :tags: Bug Fixes
810 :pullreq: 5597
811 :tickets: 5489
812
813 Fix signed/unsigned comparison warnings on ARM.
814
815 .. change::
816 :tags: Improvements
817 :pullreq: 6022
818
819 Add Pools, cacheHitResponseRules to the API.
820
821 .. change::
822 :tags: New Features
823 :pullreq: 6072
824
825 Add :func:`inClientStartup` function.
826
827 .. change::
828 :tags: Improvements
829 :pullreq: 5929
830 :tickets: 5748
831
832 Add a class option to health checks.
833
834 .. change::
835 :tags: New Features
836 :pullreq: 6037
837
838 Add tag-based routing of queries.
839
840 .. change::
841 :tags: New Features
842 :pullreq: 6117, 6175, 6176, 6177, 6189
843
844 Add experimental :doc:`DNS-over-TLS <guides/dns-over-tls>` support.
845
846 .. change::
847 :tags: Improvements
848 :pullreq: 6030
849
850 Add UUIDs to rules, this allows tracking rules through modifications and moving them around.
851
852 .. change::
853 :tags: Bug Fixes
854 :pullreq: 5770
855
856 Keep trying if the first connection to the remote logger failed
857
858 .. change::
859 :tags: New Features
860 :pullreq: 5201, 6170
861
862 Add simple :doc:`dnstap <reference/dnstap>` support (Justin Valentini, Chris Hofstaedtler).
863
864 .. change::
865 :tags: Improvements
866 :pullreq: 6185
867 :tickets: 6182
868
869 Apply ResponseRules to locally generated answers (Chris Hofstaedtler).
870
871 .. change::
872 :tags: Improvements
873 :pullreq: 6283
874
875 Report :func:`LuaAction` and :func:`LuaResponseAction` failures in the log and send SERVFAIL instead of not answering the query (Chris Hofstaedtler).
876
877 .. change::
878 :tags: Improvements
879 :pullreq: 6289
880
881 Unify global statistics accounting (Chris Hofstaedtler).
882
883 .. change::
884 :tags: Improvements
885 :pullreq: 6350, 6366
886
887 Speed up the processing of large ring buffers.
888 This change will make :program:`dnsdist` more scalable with a large number of different clients.
889
890 .. change::
891 :tags: Improvements
892 :pullreq: 6363
893 :tickets: 6346
894
895 Make custom :func:`addLuaAction` and :func:`addLuaResponseAction` callback's second return value optional.
896
897 .. change::
898 :tags: Improvements
899 :pullreq: 6327
900
901 Add "server-up" metric count to Carbon Reporting (Lowell Mower).
902
903 .. change::
904 :tags: Improvements
905 :pullreq: 6045, 6382
906
907 Add xchacha20 support for :doc:`DNSCrypt <guides/dnscrypt>`.
908
909 .. change::
910 :tags: Improvements
911 :pullreq: 6317
912
913 Scalability improvement: Add an option to use several source ports towards a backend.
914
915 .. change::
916 :tags: Improvements
917 :pullreq: 6375, 5866
918 :tickets: 4845
919
920 Add '?' and 'help' for providing help() output on ``dnsdist -c`` (Kirill Ponomarev, Chris Hofstaedtler).
921
922 .. change::
923 :tags: Improvements
924 :pullreq: 6190, 6381
925
926 Replace the Lua mutex with a rw lock to limit contention.
927 This improves the processing speed and parallelism of the policies.
928
929 .. change::
930 :tags: New Features
931 :pullreq: 6220, 5594
932 :tickets: 5079, 5654
933
934 Add experimental XPF support based on `draft-bellis-dnsop-xpf-04 <https://tools.ietf.org/html/draft-bellis-dnsop-xpf-04>`__.
935
936 .. change::
937 :tags: New Features
938 :pullreq: 6147
939
940 Add :func:`ERCodeRule` to match on extended RCodes (Chris Hofstaedtler).
941
942 .. change::
943 :tags: Bug Fixes
944 :pullreq: 6018
945
946 Fix escaping unusual DNS label octets in DNSName is off by one (Kees Monshouwer).
947
948 .. change::
949 :tags: New Features
950 :pullreq: 6003
951
952 Add :func:`TempFailureCacheTTLAction` (Chris Hofstaedtler).
953
954 .. change::
955 :tags: Improvements
956 :pullreq: 6146
957
958 Ensure :program:`dnsdist` compiles on NetBSD (Tom Ivar Helbekkmo).
959
960 .. change::
961 :tags: Improvements
962 :pullreq: 5845
963 :tickets: 5845
964
965 Also log eBPF dynamic blocks, as regular dynamic block already are.
966
967 .. change::
968 :tags: New Features, Improvements
969 :pullreq: 6391
970
971 Add :ref:`DynBlockRulesGroup` to improve processing speed of the :func:`maintenance` function by reducing memory usage and not walking the ringbuffers multiple times.
972
973 .. change::
974 :tags: Removals
975 :pullreq: 6394
976 :tickets: 6329
977
978 Remove the ``--daemon`` option from :program:`dnsdist`.
979
980 .. change::
981 :tags: New Features
982 :pullreq: 6399
983 :tickets: 4654
984
985 Add :func:`console ACL <addConsoleACL>` functions.
986
987 .. change::
988 :tags: New Features
989 :pullreq: 6400
990 :tickets: 6098
991
992 Allow adding :meth:`EDNS Client Subnet information <ServerPool:setECS>` to a query before looking in the cache.
993 This allows serving ECS enabled answers from the cache when all servers in a pool are down.
994
995 .. change::
996 :tags: Improvements
997 :pullreq: 6401
998 :tickets: 6211
999
1000 Ensure large numbers are shown correctly in the API.
1001
1002 .. change::
1003 :tags: Improvements
1004 :pullreq: 6402
1005 :tickets: 5763
1006
1007 Add option to :func:`showRules` to truncate the output length.
1008
1009 .. change::
1010 :tags: Bug Fixes
1011 :pullreq: 6403
1012
1013 Avoid assertion errors in :func:`NewServer` (Chris Hofstaedtler).
1014
1015 .. change::
1016 :tags: Improvements
1017 :pullreq: 6407
1018
1019 Fix several warnings reported by clang's analyzer and cppcheck, should lead to small performance increases.
1020
1021
1022 .. changelog::
1023 :version: 1.2.1
1024 :released: 16th of February 2018
1025
1026 .. change::
1027 :tags: New Features
1028 :pullreq: 5880
1029
1030 Add configuration option to disable IP_BIND_ADDRESS_NO_PORT (Dan McCombs).
1031
1032 .. change::
1033 :tags: Improvements
1034 :pullreq: 6057
1035
1036 Handle bracketed IPv6 addresses without ports (Chris Hofstaedtler).
1037
1038 .. change::
1039 :tags: Bug Fixes
1040 :pullreq: 5647
1041
1042 Make dnsdist dynamic truncate do right thing on TCP/IP.
1043
1044 .. change::
1045 :tags: Bug Fixes
1046 :pullreq: 5686
1047
1048 Add missing QPSAction
1049
1050 .. change::
1051 :tags: Bug Fixes
1052 :pullreq: 5847
1053
1054 Don't create a Remote Logger in client mode.
1055
1056 .. change::
1057 :tags: Bug Fixes
1058 :pullreq: 5858
1059
1060 Use libsodium's CFLAGS, we might need them to find the includes.
1061
1062 .. change::
1063 :tags: Bug Fixes
1064 :pullreq: 6012
1065
1066 Keep the TCP connection open on cache hit, generated answers.
1067
1068 .. change::
1069 :tags: Bug Fixes
1070 :pullreq: 6041
1071
1072 Add the missing <sys/time.h> include to mplexer.hh for struct timeval.
1073
1074 .. change::
1075 :tags: Bug Fixes
1076 :pullreq: 6043
1077
1078 Sort the servers based on their 'order' after it has been set.
1079
1080 .. change::
1081 :tags: Bug Fixes
1082 :pullreq: 6073
1083
1084 Quiet unused variable warning on macOS (Chris Hofstaedtler).
1085
1086 .. change::
1087 :tags: Bug Fixes
1088 :pullreq: 6094
1089 :tickets: 5652
1090
1091 Fix the outstanding counter when an exception is raised.
1092
1093 .. change::
1094 :tags: Bug Fixes
1095 :pullreq: 6164
1096 :tickets: 6163
1097
1098 Do not connect the snmpAgent from a dnsdist client.
1099
1100 .. changelog::
1101 :version: 1.2.0
1102 :released: 21st of August 2017
1103
1104 .. change::
1105 :tags: Improvements
1106 :pullreq: 4852
1107 :tickets: 4851
1108
1109 DNSName: Check that both first two bits are set in compressed labels.
1110
1111 .. change::
1112 :tags: Improvements
1113 :pullreq: 4285
1114 :tickets: 4131, 4155
1115
1116 Handle unreachable servers at startup, reconnect stale sockets
1117
1118 .. change::
1119 :tags: Improvements
1120 :pullreq: 4474
1121 :tickets: 4471
1122
1123 Gracefully handle invalid addresses in :func:`newServer`.
1124
1125 .. change::
1126 :tags: New Features
1127 :pullreq: 4536
1128 :tickets: 4527
1129
1130 Add an option to 'mute' UDP responses per bind.
1131
1132 .. change::
1133 :tags: New Features, Performance
1134 :pullreq: 4611
1135
1136 Add TCP management options from :rfc:`RFC 7766 section 10 <7766#section-10>`.
1137
1138 .. change::
1139 :tags: Bug Fixes
1140 :pullreq: 4775
1141
1142 LuaWrapper: Use the correct index when storing a function.
1143
1144 .. change::
1145 :tags: New Features
1146 :pullreq: 4779
1147 :tickets: 4562
1148
1149 Save history to home-dir, only use CWD as a last resort.
1150
1151 .. change::
1152 :tags: New Features
1153 :pullreq: 4898
1154
1155 Add the :func:`setRingBuffersSize` directive to allows changing the ringbuffer size.
1156
1157 .. change::
1158 :tags: Improvements, Security
1159 :pullreq: 4815
1160
1161 Merge the client and server nonces to prevent replay attacks.
1162
1163 .. change::
1164 :tags: Improvements
1165 :pullreq: 4786
1166
1167 Use ``IP_BIND_ADDRESS_NO_PORT`` when available.
1168
1169 .. change::
1170 :tags: Bug Fixes
1171 :pullreq: 4785
1172 :tickets: 4689
1173
1174 Send a latency of 0 over carbon, null over API for down servers.
1175
1176 .. change::
1177 :tags: Improvements
1178 :pullreq: 4780
1179 :tickets: 4775, 4660
1180
1181 Add an optional ``seconds`` parameter to :func:`statNodeRespRing`.
1182
1183 .. change::
1184 :tags: Improvements
1185 :pullreq: 4910
1186
1187 Report a more specific lua version and report luajit in ``--version``.
1188
1189 .. change::
1190 :tags: Improvements, DNSCrypt
1191 :pullreq: 4813, 4926
1192
1193 Store the computed shared key and reuse it for the response for DNSCrypt messages.
1194
1195 .. change::
1196 :tags: New Features, Protobuf
1197 :pullreq: 4776
1198 :tickets: 4709
1199
1200 Add an option to export CNAME records over protobuf.
1201
1202 .. change::
1203 :tags: New Features
1204 :pullreq: 4787
1205 :tickets: 4707
1206
1207 Allow TTL alteration via Lua.
1208
1209 .. change::
1210 :tags: New Features
1211 :pullreq: 4837
1212
1213 Add :func:`RDRule` to match queries with the ``RD`` flag set.
1214
1215 .. change::
1216 :tags: New Features
1217 :pullreq: 4897
1218
1219 Add :func:`setWHashedPertubation` for consistent ``whashed`` results.
1220
1221 .. change::
1222 :tags: New Features
1223 :pullreq: 4818
1224
1225 Add ``tcpConnectTimeout`` to :func:`newServer`.
1226
1227 .. change::
1228 :tags: Bug Fixes
1229 :pullreq: 4911
1230
1231 Fix negative port detection for IPv6 addresses on 32-bit.
1232
1233 .. change::
1234 :tags: Bug Fixes
1235 :pullreq: 4877
1236 :tickets: 4579
1237
1238 Fix crashed on SmartOS/Illumos (Roman Dayneko).
1239
1240 .. change::
1241 :tags: New Features
1242 :pullreq: 4788, 5036
1243 :tickets: 4708
1244
1245 Add cache hit response rules.
1246
1247 .. change::
1248 :tags: Improvements, Performance
1249 :pullreq: 4817
1250
1251 Add :func:`setTCPUseSinglePipe` to use a single TCP waiting queue.
1252
1253 .. change::
1254 :tags: Bug Fixes
1255 :pullreq: 4859
1256 :tickets: 4857
1257
1258 Change ``truncateTC`` to defaulting to off, having it enabled by default causes an compatibility with :rfc:`6891` (Robin Geuze).
1259
1260 .. change::
1261 :tags: Bug Fixes
1262 :pullreq: 4987, 5037
1263 :tickets: 4983
1264
1265 Don't cache answers without any TTL (like SERVFAIL).
1266
1267 .. change::
1268 :tags: Improvements, Performance
1269 :pullreq: 4985, 5501
1270 :tickets: 5494
1271
1272 Add ``sendSizeAndMsgWithTimeout`` to send size and data in a single call and use it for TCP Fast Open towards backends.
1273
1274 .. change::
1275 :tags: Improvements
1276 :pullreq: 5056
1277
1278 Prevent issues by unshadowing variables.
1279
1280 .. change::
1281 :tags: New Features, SNMP
1282 :pullreq: 4989, 5123, 5204
1283
1284 Add :doc:`SNMP support <advanced/snmp>`.
1285
1286 .. change::
1287 :tags: Bug Fixes, Performance
1288 :pullreq: 4950
1289 :tickets: 4761
1290
1291 Refactor SuffixMatchNode using a SuffixMatchTree.
1292
1293 .. change::
1294 :tags: Improvements
1295 :pullreq: 4920
1296
1297 Register DNSName::chopOff (@plzz).
1298
1299 .. change::
1300 :tags: New Features
1301 :pullreq: 5070
1302
1303 Allow passing :class:`DNSName`\ s as DNSRules.
1304
1305 .. change::
1306 :tags: Bug Fixes, Webserver
1307 :pullreq: 5089
1308
1309 Send an HTTP 404 on unknown API paths.
1310
1311 .. change::
1312 :tags: Improvements, Performance
1313 :pullreq: 4958
1314
1315 Tune systemd unit-file for medium-sized installations (Winfried Angele).
1316
1317 .. change::
1318 :tags: New Features
1319 :pullreq: 5113
1320
1321 Add support for setting the server selection policy on a per pool basis (Robin Geuze).
1322
1323 .. change::
1324 :tags: Improvements
1325 :pullreq: 5150, 5171
1326 :tickets: 5053
1327
1328 Make :func:`includeDirectory` work sorted (Robin Geuze).
1329
1330 .. change::
1331 :tags: Improvements, LuaWrapper
1332 :pullreq: 5147
1333
1334 Allow embedded NULs in strings received from Lua.
1335
1336 .. change::
1337 :tags: New Features
1338 :pullreq: 5159
1339
1340 Add a ``suffixMatch`` parameter to :meth:`PacketCache:expungeByName` (Robin Geuze).
1341
1342 .. change::
1343 :tags: Improvements
1344 :pullreq: 5163
1345
1346 Cleanup closed TCP downstream connections.
1347
1348 .. change::
1349 :tags: Bug Fixes
1350 :pullreq: 5194
1351
1352 Fix destination port reporting on "any" binds.
1353
1354 .. change::
1355 :tags: New Features
1356 :pullreq: 5136
1357 :tickets: 5126
1358
1359 Add an option so the packet cache entries don't age.
1360
1361 .. change::
1362 :tags: Bug Fixes, Security
1363 :pullreq: 5199
1364
1365 Unified ``-k`` and :func:`setKey` behaviour for client and server mode now.
1366
1367 .. change::
1368 :tags: Improvements
1369 :pullreq: 5230
1370
1371 Improve reporting of C++ exceptions that bubble up via Lua.
1372
1373 .. change::
1374 :tags: Improvements, Performance
1375 :pullreq: 5185
1376
1377 Add the possiblity to fill a :class:`NetmaskGroup` (using :meth:`NetmaskGroup:addMask`) from `exceeds*` results.
1378
1379 .. change::
1380 :tags: Improvements
1381 :pullreq: 5253
1382
1383 Add better logging on queries that get dropped, timed out or received.
1384
1385 .. change::
1386 :tags: New Features
1387 :pullreq: 5235
1388
1389 Add :func:`QNameRule`.
1390
1391 .. change::
1392 :tags: Bug Fixes
1393 :pullreq: 5320
1394
1395 Correctly truncate EDNS Client Subnetmasks.
1396
1397 .. change::
1398 :tags: Improvements
1399 :pullreq: 5342
1400
1401 Print useful messages when query and response actions are mixed.
1402
1403 .. change::
1404 :tags: New Features
1405 :pullreq: 5337
1406
1407 Add an optional action to :func:`addDynBlocks`.
1408
1409 .. change::
1410 :tags: New Features
1411 :pullreq: 5344
1412
1413 Add an optional interface parameter to :func:`addLocal`/:func:`setLocal`.
1414
1415 .. change::
1416 :tags: Bug Fixes, Performance
1417 :pullreq: 5359
1418
1419 Get rid of ``std::move()`` calls preventing copy elision.
1420
1421 .. change::
1422 :tags: Bug Fixes
1423 :pullreq: 5369
1424 :tickets: 5365
1425
1426 Fix :func:`RecordsTypeCountRule`\ 's handling of the # of records in a section.
1427
1428 .. change::
1429 :tags: New Features
1430 :pullreq: 5386
1431
1432 Make a ``truncate`` action available to DynBlock and Lua.
1433
1434 .. change::
1435 :tags: Bug Fixes
1436 :pullreq: 5383
1437 :tickets: 5287
1438
1439 Change stats functions to always return lowercase names (Robin Geuze).
1440
1441 .. change::
1442 :tags: New Features
1443 :pullreq: 5336
1444
1445 Implement a runtime changeable rule that matches IP address for a certain time called :func:`TimedIPSetRule`.
1446
1447 .. change::
1448 :tags: Bug Fixes
1449 :pullreq: 5449, 5454
1450
1451 Only use TCP Fast Open when supported and prevent compiler warnings.
1452
1453 .. change::
1454 :tags: Improvements
1455 :pullreq: 5497
1456
1457 Add ``DNSRule::toString()`` and add virtual destructors to DNSRule, DNSAction and DNSResponseAction so the destructors of derived classes are run even when deleted via the base type.
1458
1459 .. change::
1460 :tags: New Features
1461 :pullreq: 5496
1462
1463 Add support for returning several IPs to spoof from Lua.
1464
1465 .. change::
1466 :tags: New Features
1467 :pullreq: 5490, 5508
1468 :tickets: 5420, 5507
1469
1470 Add Lua bindings to be able to rotate DNSCrypt keys, see :doc:`guides/dnscrypt`.
1471
1472 .. change::
1473 :tags: Improvements, Performance
1474 :pullreq: 5353
1475
1476 Add labels count to StatNode, only set the name once.
1477
1478 .. change::
1479 :tags: Removals
1480 :pullreq: 5514
1481 :tickets: 5513
1482
1483 Remove BlockFilter.
1484
1485 .. change::
1486 :tags: New Features
1487 :pullreq: 5396, 5577
1488
1489 Add the capability to set arbitrary tags in protobuf messages.
1490
1491 .. change::
1492 :tags: Bug Fixes
1493 :pullreq: 5563
1494 :tickets: 5559
1495
1496 Skip timeouts on the response latency graph.
1497
1498 .. change::
1499 :tags: Removals
1500 :pullreq: 5526
1501 :tickets: 5069
1502
1503 Deprecate syntactic sugar functions.
1504
1505 .. change::
1506 :tags: Improvements
1507 :pullreq: 5579
1508 :tickets: 5538
1509
1510 Don't use square brackets for IPv6 in Carbon metrics.
1511
1512 .. change::
1513 :tags: Bug Fixes
1514 :pullreq: 5580
1515 :tickets: 5566
1516
1517 Copy the DNS header before encrypting it in place.
1518
1519 .. change::
1520 :tags: New Features
1521 :pullreq: 5581
1522 :tickets: 5565
1523
1524 Add setConsoleConnectionsLogging().
1525
1526 .. change::
1527 :tags: Security
1528 :pullreq: 5630
1529
1530 Fix potential pointer wrap-around on 32 bits.
1531
1532 .. change::
1533 :tags: Security
1534 :pullreq: 5631
1535
1536 Make the API available with an API key only.
1537
1538 1.1.0
1539 -----
1540
1541 Released December 29th 2016
1542
1543 Changes since 1.1.0-beta2:
1544
1545 Improvements
1546 ~~~~~~~~~~~~
1547
1548 - `#4783 <https://github.com/PowerDNS/pdns/pull/4783>`__: Add -latomic
1549 on powerpc
1550 - `#4812 <https://github.com/PowerDNS/pdns/pull/4812>`__: Handle
1551 header-only responses, handle Refused as Servfail in the cache
1552
1553 Bug fixes
1554 ~~~~~~~~~
1555
1556 - `#4762 <https://github.com/PowerDNS/pdns/pull/4762>`__:
1557 SuffixMatchNode: Fix an insertion issue for an existing node
1558 - `#4772 <https://github.com/PowerDNS/pdns/pull/4772>`__: Fix dnsdist
1559 initscript config check
1560
1561 1.1.0-beta2
1562 -----------
1563
1564 Released December 14th 2016
1565
1566 Changes since 1.1.0-beta1:
1567
1568 New features
1569 ~~~~~~~~~~~~
1570
1571 - `#4518 <https://github.com/PowerDNS/pdns/pull/4518>`__: Fix dynblocks
1572 over TCP, allow refusing dyn blocked queries
1573 - `#4519 <https://github.com/PowerDNS/pdns/pull/4519>`__: Allow
1574 altering the ECS behavior via rules and Lua
1575 - `#4535 <https://github.com/PowerDNS/pdns/pull/4535>`__: Add
1576 ``DNSQuestion:getDO()``
1577 - `#4653 <https://github.com/PowerDNS/pdns/pull/4653>`__:
1578 ``getStatisticsCounters()`` to access counters from Lua
1579 - `#4657 <https://github.com/PowerDNS/pdns/pull/4657>`__: Add
1580 ``includeDirectory(dir)``
1581 - `#4658 <https://github.com/PowerDNS/pdns/pull/4658>`__: Allow editing
1582 the ACL via the API
1583 - `#4702 <https://github.com/PowerDNS/pdns/pull/4702>`__: Add
1584 ``setUDPTimeout(n)``
1585 - `#4726 <https://github.com/PowerDNS/pdns/pull/4726>`__: Add an option
1586 to return ServFail when no server is available
1587 - `#4748 <https://github.com/PowerDNS/pdns/pull/4748>`__: Add
1588 ``setCacheCleaningPercentage()``
1589
1590 Improvements
1591 ~~~~~~~~~~~~
1592
1593 - `#4533 <https://github.com/PowerDNS/pdns/pull/4533>`__: Fix building
1594 with clang on OS X and FreeBSD
1595 - `#4537 <https://github.com/PowerDNS/pdns/pull/4537>`__: Replace
1596 luawrapper's std::forward/std::make\_tuple combo with
1597 std::forward\_as\_tuple (Sangwhan "fish" Moon)
1598 - `#4596 <https://github.com/PowerDNS/pdns/pull/4596>`__: Change the
1599 default max number of queued TCP conns to 1000
1600 - `#4632 <https://github.com/PowerDNS/pdns/pull/4632>`__: Improve
1601 dnsdist error message on a common typo/config mistake
1602 - `#4694 <https://github.com/PowerDNS/pdns/pull/4694>`__: Don't use a
1603 const\_iterator for erasing (fix compilation with some versions of
1604 gcc)
1605 - `#4715 <https://github.com/PowerDNS/pdns/pull/4715>`__: Specify that
1606 dnsmessage.proto uses protobuf version 2
1607 - `#4765 <https://github.com/PowerDNS/pdns/pull/4765>`__: Some service
1608 improvements
1609
1610 Bug fixes
1611 ~~~~~~~~~
1612
1613 - `#4425 <https://github.com/PowerDNS/pdns/pull/4425>`__: Fix a
1614 protobuf regression (requestor/responder mix-up) caused by a94673e
1615 - `#4541 <https://github.com/PowerDNS/pdns/pull/4541>`__: Fix insertion
1616 issues in SuffixMatchTree, move it to dnsname.hh
1617 - `#4553 <https://github.com/PowerDNS/pdns/pull/4553>`__: Flush output
1618 in single command client mode
1619 - `#4578 <https://github.com/PowerDNS/pdns/pull/4578>`__: Fix
1620 destination address reporting
1621 - `#4640 <https://github.com/PowerDNS/pdns/pull/4640>`__: Don't exit
1622 dnsdist on an exception in maintenance
1623 - `#4721 <https://github.com/PowerDNS/pdns/pull/4721>`__: Handle
1624 exceptions in the UDP responder thread
1625 - `#4734 <https://github.com/PowerDNS/pdns/pull/4734>`__: Add the TCP
1626 socket to the map only if the connection succeeds. Closes #4733
1627 - `#4742 <https://github.com/PowerDNS/pdns/pull/4742>`__: Decrement the
1628 queued TCP conn count if writing to the pipe fails
1629 - `#4743 <https://github.com/PowerDNS/pdns/pull/4743>`__: Ignore
1630 newBPFFilter() and newDynBPFFilter() in client mode
1631 - `#4753 <https://github.com/PowerDNS/pdns/pull/4753>`__: Fix FD leak
1632 on TCP connection failure, handle TCP worker creation failure
1633 - `#4764 <https://github.com/PowerDNS/pdns/pull/4764>`__: Prevent race
1634 while creating new TCP worker threads
1635
1636 1.1.0-beta1
1637 -----------
1638
1639 Released September 1st 2016
1640
1641 Changes since 1.0.0:
1642
1643 New features
1644 ~~~~~~~~~~~~
1645
1646 - `#3762 <https://github.com/PowerDNS/pdns/pull/3762>`__ Teeaction:
1647 send copy of query to second nameserver, sponge responses
1648 - `#3876 <https://github.com/PowerDNS/pdns/pull/3876>`__ Add
1649 ``showResponseRules()``, ``{mv,rm,top}ResponseRule()``
1650 - `#3936 <https://github.com/PowerDNS/pdns/pull/3936>`__ Filter on
1651 opcode, records count/type, trailing data
1652 - `#3975 <https://github.com/PowerDNS/pdns/pull/3975>`__ Make dnsdist
1653 {A,I}XFR aware, document possible issues
1654 - `#4006 <https://github.com/PowerDNS/pdns/pull/4006>`__ Add eBPF
1655 source address and qname/qtype filtering
1656 - `#4008 <https://github.com/PowerDNS/pdns/pull/4008>`__ Node
1657 infrastructure for querying recent traffic
1658 - `#4042 <https://github.com/PowerDNS/pdns/pull/4042>`__ Add
1659 server-side TCP Fast Open support
1660 - `#4050 <https://github.com/PowerDNS/pdns/pull/4050>`__ Add
1661 ``clearRules()`` and ``setRules()``
1662 - `#4114 <https://github.com/PowerDNS/pdns/pull/4114>`__ Add
1663 ``QNameLabelsCountRule()`` and ``QNameWireLengthRule()``
1664 - `#4116 <https://github.com/PowerDNS/pdns/pull/4116>`__ Added src
1665 boolean to NetmaskGroupRule to match destination address (Reinier
1666 Schoof)
1667 - `#4175 <https://github.com/PowerDNS/pdns/pull/4175>`__ Implemented
1668 query counting (Reinier Schoof)
1669 - `#4244 <https://github.com/PowerDNS/pdns/pull/4244>`__ Add a
1670 ``setCD`` parameter to set cd=1 on health check queries
1671 - `#4284 <https://github.com/PowerDNS/pdns/pull/4284>`__ Add
1672 RCodeRule(), Allow, Delay and Drop response actions
1673 - `#4305 <https://github.com/PowerDNS/pdns/pull/4305>`__ Add an
1674 optional Lua callback for altering a Protobuf message
1675 - `#4309 <https://github.com/PowerDNS/pdns/pull/4309>`__ Add
1676 showTCPStats function (RobinGeuze)
1677 - `#4329 <https://github.com/PowerDNS/pdns/pull/4329>`__ Add options to
1678 LogAction() so it can append (instead of truncate) (Duane Wessels)
1679
1680 Improvements
1681 ~~~~~~~~~~~~
1682
1683 - `#3714 <https://github.com/PowerDNS/pdns/pull/3714>`__ Add
1684 documentation links to dnsdist.service (Ruben Kerkhof)
1685 - `#3754 <https://github.com/PowerDNS/pdns/pull/3754>`__ Allow the use
1686 of custom headers in the web server
1687 - `#3826 <https://github.com/PowerDNS/pdns/pull/3826>`__ Implement a
1688 'quiet' mode for SuffixMatchNodeRule()
1689 - `#3836 <https://github.com/PowerDNS/pdns/pull/3836>`__ Log the
1690 content of webserver's exceptions
1691 - `#3858 <https://github.com/PowerDNS/pdns/pull/3858>`__ Only log
1692 YaHTTP's parser exceptions in verbose mode
1693 - `#3877 <https://github.com/PowerDNS/pdns/pull/3877>`__ Increase max
1694 FDs in systemd unit, warn if clearly too low
1695 - `#4019 <https://github.com/PowerDNS/pdns/pull/4019>`__ Add an
1696 optional ``addECS`` option to ``TeeAction()``
1697 - `#4029 <https://github.com/PowerDNS/pdns/pull/4029>`__ Add version
1698 and feature information to version output
1699 - `#4079 <https://github.com/PowerDNS/pdns/pull/4079>`__ Return an
1700 error on RemoteLog{,Response}Action() w/o protobuf
1701 - `#4246 <https://github.com/PowerDNS/pdns/pull/4246>`__ API now sends
1702 pools as a JSON array instead of a string
1703 - `#4302 <https://github.com/PowerDNS/pdns/pull/4302>`__ Add ``help()``
1704 and ``showVersion()``
1705 - `#4286 <https://github.com/PowerDNS/pdns/pull/4286>`__ Add response
1706 rules to the API and Web status page
1707 - `#4068 <https://github.com/PowerDNS/pdns/pull/4068>`__ Display the
1708 dyn eBPF filters stats in the web interface
1709
1710 Bug fixes
1711 ~~~~~~~~~
1712
1713 - `#3755 <https://github.com/PowerDNS/pdns/pull/3755>`__ Fix RegexRule
1714 example in dnsdistconf.lua
1715 - `#3773 <https://github.com/PowerDNS/pdns/pull/3773>`__ Stop copying
1716 the HTTP request headers to the response
1717 - `#3837 <https://github.com/PowerDNS/pdns/pull/3837>`__ Remove dnsdist
1718 service file on trusty
1719 - `#3840 <https://github.com/PowerDNS/pdns/pull/3840>`__ Catch
1720 WrongTypeException in client mode
1721 - `#3906 <https://github.com/PowerDNS/pdns/pull/3906>`__ Keep the
1722 servers ordered inside pools
1723 - `#3988 <https://github.com/PowerDNS/pdns/pull/3988>`__ Fix
1724 ``grepq()`` output in the README
1725 - `#3992 <https://github.com/PowerDNS/pdns/pull/3992>`__ Fix some typos
1726 in the AXFR/IXFR documentation
1727 - `#3995 <https://github.com/PowerDNS/pdns/pull/3995>`__ Fix comparison
1728 between signed and unsigned integer
1729 - `#4049 <https://github.com/PowerDNS/pdns/pull/4049>`__ Fix dnsdist
1730 rpm building script #4048 (Daniel Stirnimann)
1731 - `#4065 <https://github.com/PowerDNS/pdns/pull/4065>`__ Include
1732 editline/readline.h instead of readline.h/history.h
1733 - `#4067 <https://github.com/PowerDNS/pdns/pull/4067>`__ Disable eBPF
1734 support when BPF\_FUNC\_tail\_call is not found
1735 - `#4069 <https://github.com/PowerDNS/pdns/pull/4069>`__ Fix a buffer
1736 overflow when displaying an OpcodeRule
1737 - `#4101 <https://github.com/PowerDNS/pdns/pull/4101>`__ Fix $
1738 expansion in build-dnsdist-rpm
1739 - `#4198 <https://github.com/PowerDNS/pdns/pull/4198>`__ newServer
1740 setting maxCheckFailures makes no sense (stutiredboy)
1741 - `#4205 <https://github.com/PowerDNS/pdns/pull/4205>`__ Prevent the
1742 use of "any" addresses for downstream server
1743 - `#4220 <https://github.com/PowerDNS/pdns/pull/4220>`__ Don't log an
1744 error when parsing an invalid UDP query
1745 - `#4348 <https://github.com/PowerDNS/pdns/pull/4348>`__ Fix invalid
1746 outstanding count for {A,I}XFR over TCP
1747 - `#4365 <https://github.com/PowerDNS/pdns/pull/4365>`__ Reset origFD
1748 asap to keep the outstanding count correct
1749 - `#4375 <https://github.com/PowerDNS/pdns/pull/4375>`__ Tuple requires
1750 make\_tuple to initialize
1751 - `#4380 <https://github.com/PowerDNS/pdns/pull/4380>`__ Fix
1752 compilation with clang when eBPF support is enabled
1753
1754 1.0.0
1755 -----
1756
1757 Released April 21st 2016
1758
1759 Changes since 1.0.0-beta1:
1760
1761 Improvements
1762 ~~~~~~~~~~~~
1763
1764 - `#3700 <https://github.com/PowerDNS/pdns/pull/3700>`__ Create user
1765 from the RPM package to drop privs
1766 - `#3712 <https://github.com/PowerDNS/pdns/pull/3712>`__ Make check
1767 should run testrunner
1768 - `#3713 <https://github.com/PowerDNS/pdns/pull/3713>`__ Remove
1769 contrib/dnsdist.service (Ruben Kerkhof)
1770 - `#3722 <https://github.com/PowerDNS/pdns/pull/3722>`__ Use LT\_INIT
1771 and disable static objects (Ruben Kerkhof)
1772 - `#3724 <https://github.com/PowerDNS/pdns/pull/3724>`__ Include
1773 PDNS\_CHECK\_OS in configure (Christian Hofstaedtler)
1774 - `#3728 <https://github.com/PowerDNS/pdns/pull/3728>`__ Document
1775 libedit Ctrl-R workaround for CentOS 6
1776 - `#3730 <https://github.com/PowerDNS/pdns/pull/3730>`__ Make
1777 ``topBandwidth()`` behave like other top\* functions
1778 - `#3731 <https://github.com/PowerDNS/pdns/pull/3731>`__ Clarify a bit
1779 the documentation of load-balancing policies
1780
1781 Bug fixes
1782 ~~~~~~~~~
1783
1784 - `#3711 <https://github.com/PowerDNS/pdns/pull/3711>`__ Building rpm
1785 needs systemd headers (Ruben Kerkhof)
1786 - `#3736 <https://github.com/PowerDNS/pdns/pull/3736>`__ Add missing
1787 Lua binding for NetmaskGroupRule()
1788 - `#3739 <https://github.com/PowerDNS/pdns/pull/3739>`__ Drop
1789 privileges after daemonizing and writing our pid
1790
1791 1.0.0-beta1
1792 -----------
1793
1794 Released April 14th 2016
1795
1796 Changes since 1.0.0-alpha2:
1797
1798 New features
1799 ~~~~~~~~~~~~
1800
1801 - Per-pool packet cache
1802 - Some actions do not stop the processing anymore when they match,
1803 allowing more complex setups: Delay, Disable Validation, Log,
1804 MacAddr, No Recurse and of course None
1805 - The new RE2Rule() is available, using the RE2 regular expression
1806 library to match queries, in addition to the existing POSIX-based
1807 RegexRule()
1808 - SpoofAction() now supports multiple A and AAAA records
1809 - Remote logging of questions and answers via Protocol Buffer
1810
1811 Improvements
1812 ~~~~~~~~~~~~
1813
1814 - `#3405 <https://github.com/PowerDNS/pdns/pull/3405>`__ Add health
1815 check logging, ``maxCheckFailures`` to backend
1816 - `#3412 <https://github.com/PowerDNS/pdns/pull/3412>`__ Check config
1817 - `#3440 <https://github.com/PowerDNS/pdns/pull/3440>`__ Client
1818 operation improvements
1819 - `#3466 <https://github.com/PowerDNS/pdns/pull/3466>`__ Add dq binding
1820 for skipping packet cache in LuaAction (Jan Broer)
1821 - `#3499 <https://github.com/PowerDNS/pdns/pull/3499>`__ Add support
1822 for multiple carbon servers
1823 - `#3504 <https://github.com/PowerDNS/pdns/pull/3504>`__ Allow
1824 accessing the API with an optional API key
1825 - `#3556 <https://github.com/PowerDNS/pdns/pull/3556>`__ Add an option
1826 to limit the number of queued TCP connections
1827 - `#3578 <https://github.com/PowerDNS/pdns/pull/3578>`__ Add a
1828 ``disable-syslog`` option
1829 - `#3608 <https://github.com/PowerDNS/pdns/pull/3608>`__ Export cache
1830 stats to carbon
1831 - `#3622 <https://github.com/PowerDNS/pdns/pull/3622>`__ Display the
1832 ACL content on startup
1833 - `#3627 <https://github.com/PowerDNS/pdns/pull/3627>`__ Remove ECS
1834 option from response's OPT RR when necessary
1835 - `#3633 <https://github.com/PowerDNS/pdns/pull/3633>`__ Count "TTL too
1836 short" cache events
1837 - `#3677 <https://github.com/PowerDNS/pdns/pull/3677>`__ systemd-notify
1838 support
1839
1840 Bug fixes
1841 ~~~~~~~~~
1842
1843 - `#3388 <https://github.com/PowerDNS/pdns/pull/3388>`__ Lock the Lua
1844 context before executing a LuaAction
1845 - `#3433 <https://github.com/PowerDNS/pdns/pull/3433>`__ Check that the
1846 answer matches the initial query
1847 - `#3461 <https://github.com/PowerDNS/pdns/pull/3461>`__ Fix crash when
1848 calling rmServer() with an invalid index
1849 - `#3550 <https://github.com/PowerDNS/pdns/pull/3550>`__,\ `#3551 <https://github.com/PowerDNS/pdns/pull/3551>`__
1850 Fix build failure on FreeBSD (Ruben Kerkhof)
1851 - `#3594 <https://github.com/PowerDNS/pdns/pull/3594>`__ Prevent EOF
1852 error for empty console response w/o sodium
1853 - `#3634 <https://github.com/PowerDNS/pdns/pull/3634>`__ Prevent
1854 dangling TCP fd in case setupTCPDownstream() fails
1855 - `#3641 <https://github.com/PowerDNS/pdns/pull/3641>`__ Under
1856 threshold, QPS action should return None, not Allow
1857 - `#3658 <https://github.com/PowerDNS/pdns/pull/3658>`__ Fix a race
1858 condition in MaxQPSIPRule
1859
1860 1.0.0-alpha2
1861 ------------
1862
1863 Released February 5th 2016
1864
1865 Changes since 1.0.0-alpha1:
1866
1867 New features
1868 ~~~~~~~~~~~~
1869
1870 - Lua functions now receive a DNSQuestion ``dq`` object instead of
1871 several parameters. This adds a greater compatibility with PowerDNS
1872 and allows adding more parameters without breaking the API
1873 (`#3198 <https://github.com/PowerDNS/pdns/issues/3198>`__)
1874 - Added a ``source`` option to ``newServer()`` to specify the local
1875 address or interface used to contact a downstream server
1876 (`#3138 <https://github.com/PowerDNS/pdns/issues/3138>`__)
1877 - CNAME and IPv6-only support have been added to spoofed responses
1878 (`#3064 <https://github.com/PowerDNS/pdns/issues/3064>`__)
1879 - ``grepq()`` can be used to search for slow queries, along with
1880 ``topSlow()``
1881 - New Lua functions: ``addDomainCNAMESpoof()``, ``AllowAction()`` by
1882 @bearggg, ``exceedQRate()``, ``MacAddrAction()``, ``makeRule()``,
1883 ``NotRule()``, ``OrRule()``, ``QClassRule()``, ``RCodeAction()``,
1884 ``SpoofCNAMEAction()``, ``SuffixMatchNodeRule()``, ``TCPRule()``,
1885 ``topSlow()``
1886 - ``NetmaskGroup`` support have been added in Lua
1887 (`#3144 <https://github.com/PowerDNS/pdns/issues/3144>`__)
1888 - Added ``MacAddrAction()`` to add the source MAC address to the
1889 forwarded query
1890 (`#3313 <https://github.com/PowerDNS/pdns/issues/3313>`__)
1891
1892 Bug fixes
1893 ~~~~~~~~~
1894
1895 - An issue in DelayPipe could make dnsdist crash at startup
1896 - ``downstream-timeouts`` metric was not always updated
1897 - ``truncateTC`` was unproperly updating the response length
1898 (`#3126 <https://github.com/PowerDNS/pdns/issues/3126>`__)
1899 - DNSCrypt responses larger than queries were unproperly truncated
1900 - An issue prevented info message from being displayed in non-verbose
1901 mode, fixed by Jan Broer
1902 - Reinstating an expired Dynamic Rule was not correctly logged
1903 (`#3323 <https://github.com/PowerDNS/pdns/issues/3323>`__)
1904 - Initialized counters in the TCP client thread might have cause FD and
1905 memory leak, reported by Martin Pels
1906 (`#3300 <https://github.com/PowerDNS/pdns/issues/3300>`__)
1907 - We now drop queries containing no question (qdcount == 0)
1908 (`#3290 <https://github.com/PowerDNS/pdns/issues/3290>`__)
1909 - Outstanding TCP queries count was not always correct
1910 (`#3288 <https://github.com/PowerDNS/pdns/issues/3288>`__)
1911 - A locking issue in exceedRespGen() might have caused crashs
1912 (`#3277 <https://github.com/PowerDNS/pdns/issues/3277>`__)
1913 - Useless sockets were created in client mode
1914 (`#3257 <https://github.com/PowerDNS/pdns/issues/3257>`__)
1915 - ``addAnyTCRule()`` was generating TC=1 responses even over TCP
1916 (`#3251 <https://github.com/PowerDNS/pdns/issues/3251>`__)
1917
1918 Web interface
1919 ~~~~~~~~~~~~~
1920
1921 - Cleanup of the HTML by Sander Hoentjen
1922 - Fixed an XSS reported by @janeczku
1923 (`#3217 <https://github.com/PowerDNS/pdns/issues/3217>`__)
1924 - Removed remote images
1925 - Set the charset to UTF-8, added some security-related and CORS HTTP
1926 headers
1927 - Added server latency by Jan Broer
1928 (`#3201 <https://github.com/PowerDNS/pdns/issues/3201>`__)
1929 - Switched to official minified versions of JS scripts, by Sander
1930 Hoentjen (`#3317 <https://github.com/PowerDNS/pdns/issues/3317>`__)
1931 - Don't log unauthenticated HTTP request as an authentication failure
1932
1933 Various documentation updates and minor cleanups:
1934 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1935
1936 - Added documentation for Advanced DNS Protection features (Dynamic
1937 rules, ``maintenance()``)
1938 - Make ``topBandwidth()`` default to the top 10 clients
1939 - Replaced readline with libedit
1940 - Added GPL2 License
1941 (`#3200 <https://github.com/PowerDNS/pdns/issues/3200>`__)
1942 - Added incbin License
1943 (`#3269 <https://github.com/PowerDNS/pdns/issues/3269>`__)
1944 - Updated completion rules
1945 - Removed wrong option ``--daemon-no`` by Stefan Schmidt
1946
1947 1.0.0-alpha1
1948 ------------
1949
1950 Released December 24th 2015
1951
1952 Initial release