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