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