]> git.ipfire.org Git - thirdparty/pdns.git/blob - docs/changelog/4.1.rst
Update my name in old changelogs
[thirdparty/pdns.git] / docs / changelog / 4.1.rst
1 Changelogs for 4.1.x
2 ====================
3
4 .. changelog::
5 :version: 4.1.13
6 :released: August 9th 2019
7
8 This is a bugfix release for high traffic setups using the pipebackend or remotebackend.
9
10 .. change::
11 :tags: Bug Fixes
12 :pullreq: 8157
13
14 gpgsqlbackend: add missing schema file to Makefile (tcely)
15
16 .. change::
17 :tags: Bug Fixes
18 :pullreq: 8162
19
20 stop using select() in places where FDs can be >1023
21
22 .. changelog::
23 :version: 4.1.12
24 :released: 4.1.12 was skipped due to a packaging issue.
25
26 .. changelog::
27 :version: 4.1.11
28 :released: August 1st 2019
29
30 This release contains the updated PostgreSQL schema for PowerDNS Security Advisory :doc:`2019-06 <../security-advisories/powerdns-advisory-2019-06>` (CVE-2019-10203).
31
32 Upgrading is not enough - you need to manually apply the schema change: ``ALTER TABLE domains ALTER notified_serial TYPE bigint USING CASE WHEN notified_serial >= 0 THEN notified_serial::bigint END;``
33
34 .. change::
35 :tags: Bug Fixes
36 :pullreq: 8144
37
38 Update PostgreSQL schema for 2019-06.
39
40 .. changelog::
41 :version: 4.1.10
42 :released: June 21st 2019
43
44 This release and 4.1.9 together fix the following security advisories:
45
46 - PowerDNS Security Advisory :doc:`2019-04 <../security-advisories/powerdns-advisory-2019-04>` (CVE-2019-10162)
47 - PowerDNS Security Advisory :doc:`2019-05 <../security-advisories/powerdns-advisory-2019-05>` (CVE-2019-10163)
48
49 .. change::
50 :tags: Bug Fixes
51 :pullreq: 7964
52
53 Do not exit on exception parsing names of name servers to notify.
54
55
56 .. changelog::
57 :version: 4.1.9
58 :released: June 19th 2019
59
60 .. change::
61 :tags: Bug Fixes
62 :pullreq: 7663
63
64 Do not exit on exception resolving addresses to notify.
65
66 .. change::
67 :tags: Bug Fixes
68 :pullreq: 7829
69
70 Avoid very busy looping on lots of notifies.
71
72 .. change::
73 :tags: New Features
74 :pullreq: 7922
75
76 Add an option to disable superslaving.
77
78 .. change::
79 :tags: Bug Fixes
80 :pullreq: 7921
81
82 In gsql ``getAllDomainMetadata``, actually get all domain metadata. This makes DNSSEC metadata work with ``pdnsutil b2b-migrate``.
83
84 .. changelog::
85 :version: 4.1.8
86 :released: March 22nd 2019
87
88 .. change::
89 :tags: Bug Fixes
90 :pullreq: 7604
91 :tickets: 7494
92
93 Correctly interpret an empty AXFR response to an IXFR query.
94
95 .. change::
96 :tags: Bug Fixes
97 :pullreq: 7610
98 :tickets: 7341
99
100 Fix replying from ANY address for non-standard port.
101
102 .. change::
103 :tags: Bug Fixes, Internals
104 :pullreq: 7609
105 :tickets: 7580
106
107 Fix rectify for ENT records in narrow zones.
108
109 .. change::
110 :tags: Bug Fixes
111 :pullreq: 7607
112 :tickets: 7472
113
114 Do not compress the root.
115
116 .. change::
117 :tags: Bug Fixes
118 :pullreq: 7608
119 :tickets: 7459
120
121 Fix dot stripping in ``setcontent()``.
122
123 .. change::
124 :tags: Bug Fixes, MySQL
125 :pullreq: 7605
126 :tickets: 7496
127
128 Fix invalid SOA record in MySQL which prevented the authoritative server from starting.
129
130 .. change::
131 :tags: Bug Fixes, Internals
132 :pullreq: 7603
133 :tickets: 7294
134
135 Prevent leak of file descriptor if running out of ports for incoming AXFR.
136
137 .. change::
138 :tags: Bug Fixes, API
139 :pullreq: 7602
140 :tickets: 7546
141
142 Fix API search failed with "Commands out of sync; you can't run this command now".
143
144 .. change::
145 :tags: Bug Fixes, MySQL
146 :pullreq: 7509
147 :tickets: 7517
148
149 Plug ``mysql_thread_init`` memory leak.
150
151 .. change::
152 :tags: Bug Fixes, Internals
153 :pullreq: 7567
154
155 EL6: fix ``CXXFLAGS`` to build with compiler optimizations.
156
157 .. changelog::
158 :version: 4.1.7
159 :released: March 18th 2019
160
161 This release fixes the following security advisory:
162
163 - PowerDNS Security Advisory :doc:`2019-03 <../security-advisories/powerdns-advisory-2019-03>` (CVE-2019-3871)
164
165 .. change::
166 :tags: Bug Fixes
167 :pullreq: 7577
168
169 Insufficient validation in the HTTP remote backend (CVE-2019-3871, PowerDNS Security Advisory :doc:`2019-03 <../security-advisories/powerdns-advisory-2019-03>`)
170
171 .. changelog::
172 :version: 4.1.6
173 :released: January 31st 2019
174
175 .. change::
176 :tags: Bug Fixes
177 :pullreq: 7279
178
179 Prevent more than one CNAME/SOA record in the same RRset.
180
181 .. changelog::
182 :version: 4.1.5
183 :released: November 6th 2018
184
185 This release fixes the following security advisories:
186
187 - PowerDNS Security Advisory :doc:`2018-03 <../security-advisories/powerdns-advisory-2018-03>` (CVE-2018-10851)
188 - PowerDNS Security Advisory :doc:`2018-05 <../security-advisories/powerdns-advisory-2018-05>` (CVE-2018-14626)
189
190 .. change::
191 :tags: Bug Fixes
192 :pullreq: 7149
193
194 Crafted zone record can cause a denial of service (CVE-2018-10851, PowerDNS Security Advisory :doc:`2018-03 <../security-advisories/powerdns-advisory-2018-03>`)
195
196 .. change::
197 :tags: Bug Fixes
198 :pullreq: 7149
199
200 Packet cache pollution via crafted query (CVE-2018-14626, PowerDNS Security Advisory :doc:`2018-05 <../security-advisories/powerdns-advisory-2018-05>`)
201
202 Additionally there are some other minor fixes and improvements listed below.
203
204 .. change::
205 :tags: Improvements, Internals
206 :pullreq: 6976
207
208 Apply alias scopemask after chasing
209
210 .. change::
211 :tags: Improvements, Internals
212 :pullreq: 6917
213
214 Release memory in case of error in the openssl ecdsa constructor
215
216 .. change::
217 :tags: Bug Fixes, Internals
218 :pullreq: 6948
219 :tickets: 6943
220
221 Fix compilation with libressl 2.7.0+
222
223 .. change::
224 :tags: Bug Fixes, Internals
225 :pullreq: 6913
226
227 Actually truncate truncated responses
228
229 .. change::
230 :tags: Improvements, Internals
231 :pullreq: 7118
232 :tickets: 7040
233
234 Switch to devtoolset 7 for el6
235
236 .. changelog::
237 :version: 4.1.4
238 :released: August 29th 2018
239
240 .. change::
241 :tags: Improvements
242 :pullreq: 6590
243
244 Fix warnings reported by gcc 8.1.0.
245
246 .. change::
247 :tags: Improvements
248 :pullreq: 6842, 6844, 6648
249 :tickets: 6632
250
251 Make the gmysql backend future-proof. (Chris Hofstaedtler)
252
253 * Use future-proof statement for transaction isolation
254 * Allow compiling against MySQL 8 client header files
255 * Workaround MariaDB pretending to be MySQL
256
257 .. change::
258 :tags: Improvements
259 :pullreq: 6686
260 :tickets: 6685
261
262 Initialize some missed qtypes. (Chris Hofstaedtler)
263
264 .. change::
265 :tags: Bug Fixes
266 :pullreq: 6691
267 :tickets: 4457
268
269 ``pdns_control notify``: handle slave without renotify properly. (Chris Hofstaedtler)
270
271 .. change::
272 :tags: Bug Fixes
273 :pullreq: 6738
274 :tickets: 6736
275
276 Reset the TSIG state between queries.
277
278 .. change::
279 :tags: Bug Fixes
280 :pullreq: 6857
281
282 Remove SOA-check backoff on incoming notify and fix lock handling. (Klaus Darilion)
283
284 .. change::
285 :tags: Bug Fixes
286 :pullreq: 6858
287
288 Fix an issue where updating a record via DNS-UPDATE in a child zone that also exists in the parent zone, we would incorrectly apply the update to the parent zone.
289
290 .. change::
291 :tags: Bug Fixes, API
292 :pullreq: 6780
293
294 Avoid concurrent records/comments iteration from running out of sync.
295
296 .. change::
297 :tags: Bug Fixes
298 :pullreq: 6677
299 :tickets: 6676
300
301 Geoipbackend: check ``geoip_id_by_addr_gl`` and ``geoip_id_by_addr_v6_gl`` return value. (Aki Tuomi)
302
303 .. change::
304 :tags: Bug Fixes, API
305 :pullreq: 6816
306
307 Fix a crash in the API when adding records
308
309 .. changelog::
310 :version: 4.1.3
311 :released: 24th of May 2018
312
313 This release contains several small fixes to the GeoIP backend.
314 The most prominent fix being one where the backend would be slow when thousands of network masks were configured for services.
315
316 .. change::
317 :tags: API, Bug Fixes
318 :pullreq: 6614
319 :tickets: 6441
320
321 Restrict creation of OPT and TSIG RRsets
322
323 .. change::
324 :tags: Improvements
325 :pullreq: 6559
326 :tickets: 6239
327
328 pdnsutil: use new domain in b2bmigrate (Aki Tuomi)
329
330 .. change::
331 :tags: Bug Fixes
332 :pullreq: 6370
333 :tickets: 6228
334
335 Fix handling of user-defined axfr filters return values
336
337 .. change::
338 :tags: Improvements
339 :pullreq: 6130
340
341 Update copyright years to 2018 (Matt Nordhoff)
342
343 .. change::
344 :tags: Bug Fixes, Improvements
345 :pullreq: 6608, 6585
346 :tickets: 6585, 6584
347
348 Prevent the GeoIP backend from copying NetMaskTrees around, fixes slow-downs in certain configurations (Aki Tuomi)
349
350 .. change::
351 :tags: Bug Fixes
352 :pullreq: 6659
353 :tickets: 6654
354
355 Ensure alias answers over tcp have correct name
356
357
358 .. changelog::
359 :version: 4.1.2
360 :released: 8th of May 2018
361
362 This is the third release in the 4.1 train. Besides bug fixes, it contains some performance and usability improvements.
363
364 .. change::
365 :tags: Improvements, API
366 :pullreq: 6572, 6571
367
368 API: increase serial after dnssec related updates (Kees Monshouwer)
369
370 .. change::
371 :tags: Tools
372 :pullreq: 6575
373
374 Dnsreplay: bail out on a too small outgoing buffer
375
376 .. change::
377 :tags: Improvements
378 :pullreq: 6573
379 :tickets: 6312, 6545
380
381 Auth: lower 'packet too short' loglevel
382
383 .. change::
384 :tags: Bug Fixes
385 :pullreq: 6570
386 :tickets: 6021
387
388 Auth-bindbackend: only compare ips in ismaster() (Kees Monshouwer)
389
390 .. change::
391 :tags: Bug Fixes
392 :pullreq: 6556
393 :tickets: 6354
394
395 Rather than crash, sheepishly report no file/linenum
396
397 .. change::
398 :tags: Bug Fixes
399 :pullreq: 6540
400 :tickets: 6539
401
402 Document undocumented config vars
403
404 .. change::
405 :tags: Internals
406 :pullreq: 6542
407 :tickets: 6516, 6516
408
409 Move includes around to avoid boost L conflict
410
411 .. change::
412 :tags: Internals
413 :pullreq: 6543
414 :tickets: 6155
415
416 Backport: update edns option code list
417
418 .. change::
419 :tags: Packages
420 :pullreq: 6546
421 :tickets: 6286
422
423 Backport: debian authoritative packaging fixes for 4.1
424
425 .. change::
426 :tags: Packages
427 :pullreq: 6547
428 :tickets: 6051, 6062
429
430 Fix piddir detection on centos 6
431
432 .. change::
433 :tags: Internals
434 :pullreq: 6548
435 :tickets: 6487
436
437 Auth: link dnspcap2protobuf against librt when needed
438
439 .. change::
440 :tags: Internals
441 :pullreq: 6549
442 :tickets: 6478
443
444 Fix a warning on botan >= 2.5.0
445
446 .. change::
447 :tags: Bug Fixes, Postgresql
448 :pullreq: 6551
449 :tickets: 6464
450
451 Auth: allocate new statements after reconnecting to postgresql
452
453 .. change::
454 :tags: Internals
455 :pullreq: 6552
456 :tickets: 6304
457
458 Auth 4.1.x: unbreak build
459
460 .. change::
461 :tags: Improvements
462 :pullreq: 6553
463 :tickets: 6297
464
465 Make check-zone error on rows that have content but shouldn't
466
467 .. change::
468 :tags: Improvements
469 :pullreq: 6554
470 :tickets: 6427
471
472 Auth: avoid an isane amount of new backend connections during an axfr
473
474 .. change::
475 :tags: Improvements
476 :pullreq: 6555
477 :tickets: 6396
478
479 Report unparseable data in stoul invalid_argument exception
480
481 .. change::
482 :tags: Improvements
483 :pullreq: 6490
484 :tickets: 6484
485
486 Backport: recheck serial when axfr is done
487
488 .. change::
489 :tags: Improvements
490 :pullreq: 6337
491 :tickets: 6331
492
493 Backport: add tcp support for alias
494
495 .. change::
496 :tags: Bug Fixes
497 :pullreq: 6314
498 :tickets: 6276
499
500 Backport #6276 (auth 4.1.x): prevent cname + other data with dnsupdate
501
502 .. changelog::
503 :version: 4.1.1
504 :released: 16th of February 2018
505
506 This is the second release in the 4.1 train.
507
508 This is a bug-fix only release, with fixes to the LDAP and MySQL backends, the ``pdnsutil`` tool, and PDNS internals.
509
510 Changes since 4.1.1:
511
512 .. change::
513 :tags: Bug Fixes, Internals
514 :pullreq: 6260
515 :tickets: 6028
516
517 Backport: forbid label compression in alias wire format
518
519 .. change::
520 :tags: Bug Fixes, Internals
521 :pullreq: 6077
522
523 Include unistd.h for chroot(2) et al. (Florian Obser)
524
525 .. change::
526 :tags: Bug Fixes, LDAP
527 :pullreq: 6048
528
529 Ldap: fix getdomaininfo() to set ``this`` as di.backend (Grégory Oestreicher)
530
531 .. change::
532 :tags: Bug Fixes, Improvements
533 :pullreq: 6172
534
535 Ixfr: correct behavior of dealing with dns name with multiple records (Leon Xu)
536
537 .. change::
538 :tags: Bug Fixes, MySQL
539 :pullreq: 6134
540 :tickets: 6115
541
542 Auth: always bind the results array after executing a mysql statement
543
544 .. change::
545 :tags: Bug Fixes, Tools
546 :pullreq: 6129
547 :tickets: 6125
548
549 Auth: init openssl and libsodium before chrooting in pdnsutil
550
551 .. change::
552 :tags: Bug Fixes, LDAP
553 :pullreq: 6122
554 :tickets: 6097, 6060
555
556 Ldapbackend: fix listing zones incl. axfr (Chris Hofstaedtler)
557
558 .. change::
559 :tags: Bug Fixes, Internals
560 :pullreq: 6103
561
562 Auth: fix out of bounds exception in caa processing, fixes #6089
563
564 .. change::
565 :tags: Bug Fixes, Internals
566 :pullreq: 6041
567 :tickets: 6040
568
569 Add the missing <sys/time.h> include to mplexer.hh for struct timeval
570
571 .. changelog::
572 :version: 4.1.0
573 :released: 30th of November 2017
574
575 This is the first release in the 4.1 train.
576
577 The full release notes can be read `on the blog <https://blog.powerdns.com/2017/11/30/powerdns-authoritative-server-4-1/>`_.
578
579 The 4.1 release is a major upgrade for the Authoritative Server featuring many improvements and speedups:
580
581 - Improved performance: 400% speedup in some scenarios,
582 - Crypto API: DNSSEC fully configurable via RESTful API,
583 - Improved documentation,
584 - Database related improvements,
585 - Enhanced tooling,
586 - Support for TCP Fast Open,
587 - Support for non-local bind,
588 - Support for Botan 2.x (and removal of support for Botan 1.10),
589 - Our packages now ship with PKCS #11 support.
590
591 Recursor passthrough removal: This will impact many installations, and we realize this may be painful, but it is necessary. Previously, the PowerDNS Authoritative Server contained a facility for sending recursion desired queries to a resolving backend, possibly after first consulting its local cache. This feature (‘recursor=’) was frequently confusing and also delivered inconsistent results, for example when a query ended up referring to a CNAME that was outside of the Authoritative Server’s knowledge. To read more about this please see the blog post mentioned above or read the :doc:`migration guide <../../guides/recursion>`.
592
593 Changes since 4.1.0-rc3:
594
595 .. change::
596 :tags: DNSSEC, Bug Fixes
597 :pullreq: 5968
598
599 Fix hang when PATCHing zone during rectify.
600
601 .. change::
602 :tags: Improvements
603 :pullreq: 5976
604 :tickets: 5974
605
606 Report remote IP when SOA query comes back with empty question section.
607
608 .. change::
609 :tags: API, Improvements
610 :pullreq: 5964
611 :tickets: 5862
612
613 Make the /cryptokeys endpoint consistently use CryptoKey objects.
614
615 .. change::
616 :tags: Removed Features
617 :pullreq: 6004
618
619 Remove deprecated SOA-EDIT values: INCEPTION and INCEPTION-WEEK.
620
621 .. change::
622 :tags: API, Bug Fixes
623 :pullreq: 6007
624
625 Deny cache flush, zone retrieve and notify if the API is read-only.
626
627 .. changelog::
628 :version: 4.1.0-rc3
629 :released: 17th of November 2017
630
631 This is the third release candidate of the PowerDNS Authoritative Server in the 4.1 release train.
632
633 This release features various bug fixes and some improvements to
634 ``pdnsutil``.
635
636 .. change::
637 :tags: Bug Fixes
638 :pullreq: 5905
639
640 Use 302 redirects in the webserver for ringbuffer reset or
641 resize. With the current 301 redirect it is only possible to reset
642 or resize once. Every next duplicate action is replaced by the
643 destination cached in the browser.
644
645 .. change::
646 :tags: Tools, Bug Fixes
647 :pullreq: 5884
648 :tickets: 5849
649
650 Fix messages created by ``pdnsutil generate-tsig-key``.
651
652 .. change::
653 :tags: Internals, Improvements
654 :pullreq: 5616
655
656 Better support for deleting entries in NetmaskTree and NetmaskGroup.
657
658 .. change::
659 :tags: Internals, Bug Fixes
660 :pullreq: 5917
661
662 Use ``_exit()`` when we really really want to exit, for example
663 after a fatal error. This stops us dying while we die. A call to
664 ``exit()`` will trigger destructors, which may paradoxically stop
665 the process from exiting, taking down only one thread, but harming
666 the rest of the process.
667
668 .. change::
669 :tags: Tools, New Features
670 :pullreq: 5883
671 :tickets: 5853
672
673 Add ``add-meta`` command to ``pdnsutil`` that can be used to append
674 to existing metadata without clobbering it.
675
676 .. change::
677 :tags: Tools, Bug Fixes
678 :pullreq: 5928
679 :tickets: 5903
680
681 Add back missing output details to rectifyZone.
682
683 .. change::
684 :tags: Tools, Improvements
685 :pullreq: 5879
686 :tickets: 3059, 5948, 5949
687
688 Warn if records in a zone are occluded.
689
690 .. change::
691 :tags: API, Improvements
692 :pullreq: 5935
693
694 Throw exception for metadata endpoint with wrong zone. Before, We
695 would happily accept this POST.
696
697 .. change::
698 :tags: API, New Features
699 :pullreq: 5936
700 :tickets: 5909, 5910
701
702 Make it possible to disable DNSSEC via the API, this is equivalent
703 to doing ``pdnsutil disable-dnssec``.
704
705 .. changelog::
706 :version: 4.1.0-rc2
707 :released: 3rd of November 2017
708
709 This is the second release candidate of the PowerDNS Authoritative Server in the 4.1 release train.
710
711 This release has several performance improvements, stability and
712 correctness fixes.
713
714 .. change::
715 :tags: Packages, New Features
716 :pullreq: 5665
717
718 Add :doc:`PKCS#11 <../../dnssec/pkcs11>` support to packages on Operating Systems that support it.
719
720 .. change::
721 :tags: Bug Fixes, Internals, Tools
722 :pullreq: 5684
723 :tickets: 5673
724
725 Improve trailing dot handling internally which lead to a segfault in
726 pdnsutil before.
727
728 .. change::
729 :tags: Bug Fixes, Internals
730 :pullreq: 5678
731
732 Treat requestor's payload size lower than 512 as equal to 512.
733 Before, we did not follow :rfc:`RFC 6891 section 6.2.3 <6891#section-6.2.3>` correctly.
734
735 .. change::
736 :tags: Improvements, LDAP
737 :pullreq: 5584
738
739 Add support for new record types to the LDAP backend.
740
741 .. change::
742 :tags: API, Bug Fixes
743 :pullreq: 5696
744
745 For zone PATCH requests, add new ``X-PDNS-Old-Serial`` and
746 ``X-PDNS-New-Serial`` response headers with the zone serials before
747 and after the changes.
748
749 .. change::
750 :tags: Bug Fixes
751 :pullreq: 5710
752 :tickets: 5692
753
754 Remove "" around secpoll result which fixes ``pdns_control show
755 security-status`` not working.
756
757 .. change::
758 :tags: Bug Fixes, BIND
759 :pullreq: 5702
760
761 Make bindbackend startTransaction to return false when it has
762 failed. (Aki Tuomi)
763
764 .. change::
765 :tags: Bug Fixes, DNSSEC, API
766 :pullreq: 5704
767
768 Make default options singular and use defaults in Cryptokey API-endpoint
769
770 .. change::
771 :tags: Bug Fixes, Tools
772 :pullreq: 5729
773 :tickets: 5719
774
775 Remove printing of DS records from ``pdnsutil export-zone-dnskey …``. This was not only inconsistent behaviour but also done incorrectly.
776
777 .. change::
778 :tags: Bug Fixes, DNSSEC
779 :pullreq: 5722
780 :tickets: 5721
781
782 Make the auth also publish CDS/CDNSKEY records for inactive keys, as
783 this is needed to roll without double sigs.
784
785 .. change::
786 :tags: Bug Fixes, DNSSEC
787 :pullreq: 5734
788
789 Fix a crash when getting a public GOST key if the private one is not set.
790
791 .. change::
792 :tags: Bug Fixes, Internals
793 :pullreq: 5766
794 :tickets: 5767
795
796 Correctly purge entries from the caches after a transfer. Since the
797 QC/PC split up, we only removed entries for the AXFR'd domain from
798 the packet cache, not the query cache.
799 We also did not remove entries in case of IXFR.
800
801 .. change::
802 :tags: Bug Fixes, Internals
803 :pullreq: 5791
804
805 When throwing because of bogus content in the tinydns database,
806 report the offending name+type so the admin can find the offending
807 record.
808
809 .. change::
810 :tags: DNSSEC, Bug Fixes
811 :pullreq: 5815
812
813 Ignore SOA-EDIT for PRESIGNED zones.
814
815 .. change::
816 :tags: Bug Fixes, MySQL
817 :pullreq: 5820
818 :tickets: 5675
819
820 Log the needed size when a MySQL result was truncated.
821
822 .. change::
823 :tags: API, DNSSEC, New Features
824 :pullreq: 5779
825 :tickets: 3417, 5712
826
827 Rectify zones via the API. (Nils Wisiol)
828
829 * Move the pdnsutil rectification code to the DNSSECKeeper
830 * Generate DNSSEC keys for a zone when "dnssec" is true in an API POST/PATCH for zones
831 * Rectify DNSSEC zones after POST/PATCH when API-RECTIFY metadata is 1
832 * Allow setting this metadata via the "api-rectify" param in a Zone object
833 * Show "nsec3param" and "nsec3narrow" in Zone API responses
834 * Add an "rrsets" request parameter for a zone to skip sending RRSets in the response
835 * Add rectify endpoint in the API
836
837 .. change::
838 :tags: Improvements
839 :pullreq: 5842
840
841 Add :ref:`setting-log-timestamp` option. This option can be used to disable
842 printing timestamps to stdout, this is useful when using
843 systemd-journald or another supervisor that timestamps stdout by
844 itself. As the logs will not have 2 timestamps.
845
846 .. change::
847 :tags: Internals, Improvements
848 :pullreq: 5498
849 :tickets: 2250, 5734, 5797, 5889
850
851 Add support for Botan 2.x and drop support for Botan 1.10 (the
852 latter thanks to Kees Monshouwer).
853
854 .. change::
855 :tags: DNSSEC, Improvements
856 :pullreq: 5838
857 :tickets: 5767
858
859 Stop doing individual RRSIG queries during outbound AXFR. (Kees Monshouwer)
860
861 .. change::
862 :tags: BIND, Improvements
863 :pullreq: 5810
864 :tickets: 5115, 5807
865
866 Fix issues when b2b-migrating from the BIND backend to a database:
867
868 * No masters were set in the target db (#5807)
869 * Only the last master in the list of masters would be added to the target database
870 * The BIND backend was not fully aware of native zones
871
872 .. changelog::
873 :version: 4.1.0-rc1
874 :released: 31st of August 2017
875
876 This is the first release candidate of the PowerDNS Authoritative Server in the 4.1 release train.
877
878 .. change::
879 :tags: BIND, Improvements
880 :pullreq: 5094
881
882 Make the zone parser adhere to :rfc:`2308` with regards to implicit TTLs.
883
884 Existing zone files may now be interpreted differently.
885 Specifically, where we previously used the SOA minimum field for the default
886 TTL if none was set explictly, or no $TTL was set, we now use the TTL from
887 the previous line.
888
889 .. change::
890 :tags: Internals, Improvements
891 :pullreq: 4373
892
893 Revamp and clean label compression code. Speeds up large packet creation by ~40%.
894
895 .. change::
896 :tags: Internals, Improvements
897 :pullreq: 4332
898 :tickets: 4299
899
900 Apply :ref:`setting-non-local-bind` to :ref:`setting-query-local-address` and :ref:`setting-query-local-address6` when possible.
901
902 .. change::
903 :tags: DNSUpdate, New Features
904 :pullreq: 4058
905
906 Allow the use of a :ref:`Lua script <dnsupdate-lua-dnsupdate-policy-script>` to validate DNS Update requests (Aki Tuomi).
907
908 .. change::
909 :tags: API, Improvements
910 :pullreq: 4408
911 :tickets: 4290
912
913 Enable the webserver when :ref:`setting-api` is 'yes' (Chris Hofstaedtler).
914
915 .. change::
916 :tags: API, New Features
917 :pullreq: 4093, 5038
918
919 Add API endpoints for Domain metadata (Christian Kröger).
920
921 .. change::
922 :tags: API, New Features
923 :pullreq: 4106
924 :tickets: 706
925
926 Implement :json:object:`CryptoKey` in the API (Wolfgang Studier, @MrM0nkey, Tudor Soroceanu, Benjamin Zengin).
927
928 .. change::
929 :tags: Internals, Bug Fixes
930 :pullreq: 4424
931
932 Fix compilation on systems with Boost < 1.54
933
934 .. change::
935 :tags: Internals, Improvements, Bug Fixes
936 :pullreq: 4467, 4492
937
938 A number of fixes and improvements that are difficult to untangle:
939
940 * Remove the ASCII :cpp:class:`DNSResourceRecord` from the hot path of packet assembly.
941 * Hash the storage of records in the BindBackend.
942 * Hash the packetcache.
943 * Fix some bugs in the LDAP backend and in the MyDNS backend.
944 * Make the randombackend go 'native' and directly supply records that can be sent to packets
945 * The performance benefit of this PR is measured in "factors" for being a root-server.
946
947 .. change::
948 :tags: Internals, Improvements
949 :pullreq: 4504
950 :tickets: 4503
951
952 Improve cleaning, remove an unnecessary lock and improve performance of the packetcache (Kees Monshouwer).
953
954 .. change::
955 :tags: Internals, Improvements
956 :pullreq: 4485
957
958 Improve SOA records caching (Kees Monshouwer).
959
960 .. change::
961 :tags: Internals, Bug Fixes
962 :pullreq: 4560, 4548
963 :tickets: 4546
964
965 Fix possible variable shadowing (Kees Monshouwer, Chris Hofstaedtler).
966
967 .. change::
968 :tags: API, Bug Fixes
969 :pullreq: 4526
970 :tickets: 4524
971
972 Make the URL in zone info absolute (Chris Hofstaedtler).
973
974 .. change::
975 :tags: BIND, Bug Fixes
976 :pullreq: 4650
977 :tickets: 4328
978
979 Do not corrupt data supplied by other backends in getAllDomains (Chris Hofstaedtler).
980
981 .. change::
982 :tags: Tools, Improvements
983 :pullreq: 4007
984 :tickets: 4005
985
986 Implement subcommand printing all KSK DS records in pdnsutil (Jonas Wielicki).
987
988 .. change::
989 :tags: Tools, Bug Fixes
990 :pullreq: 4740
991
992 Avoid undefined behaviour in Clang vs. GCC when printing DS records in pdnsutil.
993
994 .. change::
995 :tags: API, Improvements
996 :pullreq: 4751
997 :tickets: 4132
998
999 Prevent sending nameservers list and zone-level NS in rrsets in the API (Chris Hofstaedtler).
1000
1001 .. change::
1002 :tags: Tools, Improvements
1003 :pullreq: 4584
1004
1005 Allow setting the account of a zone via pdnsutil (Tuxis Internet Engineering).
1006
1007 .. change::
1008 :tags: Internals, New Features
1009 :pullreq: 4624
1010
1011 Add TCP management options described in :rfc:`section 10 of RFC 7766 <7766#section-10>`.
1012
1013 .. change::
1014 :tags: Tools, Improvements
1015 :pullreq: 4719
1016
1017 Print "$ORIGIN ." on ``pdnsutil list-zone``, so the output can be used in ``pdnsutil load-zone`` (Tuxis Internet Engineering).
1018
1019 .. change::
1020 :tags: Internals, Bug Fixes
1021 :pullreq: 4855
1022
1023 Fix ``getaddrinfo()`` returning address in triplicate.
1024
1025 .. change::
1026 :tags: Internals, Improvements
1027 :pullreq: 4829
1028
1029 Make sure AXFR only deletes records from a SLAVE domain in a multi backend setup (Kees Monshouwer).
1030
1031 .. change::
1032 :tags: Tools, Improvements
1033 :pullreq: 4478
1034
1035 pdnsutil: clarify error message when set-presigned fails with DNSSEC disabled (Peter Thomassen).
1036
1037 .. change::
1038 :tags: Internals, Improvements
1039 :pullreq: 4908
1040
1041 Tidy up UeberBackend (Chris Hofstaedtler).
1042
1043 .. change::
1044 :tags: Tools, Improvements
1045 :pullreq: 3913
1046
1047 pdnsutil: Validate names with address records to be valid hostnames (HÃ¥kan Lindqvist).
1048
1049 .. change::
1050 :tags: Postgresql, Improvements
1051 :pullreq: 4711
1052 :ticket: 2138
1053
1054 Enable setting custom pgsql connection parameters, like TLS parameters (Tarjei Husøy).
1055
1056 .. change::
1057 :tags: Internals, Improvements
1058 :pullreq: 4944
1059
1060 Improve API performance by instantiating only one DNSSECKeeper per request.
1061
1062 .. change::
1063 :tags: Remote, Bug Fixes
1064 :pullreq: 4997
1065
1066 Fix two problems with remotebackend (Aki Tuomi):
1067
1068 * list method used domain-id json parameter, when it was supposed to use domain_id
1069 * NULL ordername was not passed as empty string in POST parameters builder, instead it threw an exception
1070
1071 .. change::
1072 :tags: Internals, Improvements
1073 :pullreq: 4953
1074 :tickets: 349, 602
1075
1076 Incremental backoff for failed slave checks.
1077
1078 When a SOA record for a slave domain can't be retrieved, use an increasing interval between checking the domain again.
1079 This prevents hammering down on already busy servers.
1080
1081 .. change::
1082 :tags: LDAP, Bug Fixes
1083 :pullreq: 4922
1084 :tickets: 3165
1085
1086 Fix ldap-strict autoptr feature.
1087
1088 .. change::
1089 :tags: Internals, Improvements
1090 :pullreq: 4549
1091
1092 Remove d_place from DNSResourceRecord (Chris Hofstaedtler).
1093
1094 .. change::
1095 :tags: MyDNS, New Features
1096 :pullreq: 5043
1097
1098 Add function to the MyDNS backend to allow backend-to-backend migrations (Aki Tuomi).
1099
1100 .. change::
1101 :tags: Internals, Removed Features
1102 :pullreq: 4752
1103 :tickets: 4616, 4238, 4315, 3337, 2606, 2380
1104
1105 Remove recursion. See :doc:`../guides/recursion` for migration strategies (Kees Monshouwer).
1106
1107 .. change::
1108 :tags: Internals, Bug Fixes
1109 :pullreq: 5117
1110
1111 Turn exception in a qthread into an error instead of a crash.
1112
1113 .. change::
1114 :tags: Webserver, Improvements
1115 :pullreq: 5116
1116 :tickets: 1844
1117
1118 Report query statistics as full numbers, not scientific notation in the webserver.
1119
1120 .. change::
1121 :tags: Tools, Bug Fixes
1122 :pullreq: 5125
1123 :tickets: 5124
1124
1125 In ``pdnsutil create-slave-zone``, actually add all slaves.
1126
1127 .. change::
1128 :tags: BIND, New Features
1129 :pullreq: 5115
1130 :tickets: 1284
1131
1132 Support "native" zones in the BIND backend.
1133
1134 .. change::
1135 :tags: Postgresql, Bug Fixes
1136 :pullreq: 4929
1137 :tickets: 4928
1138
1139 Make statement actually unique (Chris Hofstaedtler).
1140
1141 .. change::
1142 :tags: Tools, Improvements
1143 :pullreq: 5118
1144
1145 Correct pdnsutil help output for add-zone-key.
1146
1147 .. change::
1148 :tags: Internals, Improvements
1149 :pullreq: 5169
1150
1151 Add an option to allow AXFR of zones with a different (higher/lower) serial (Kees Monshouwer).
1152
1153 .. change::
1154 :tags: Tools, Improvements
1155 :pullreq: 5062
1156 :tickets: 512
1157
1158 Check for valid hostnames in SRV, NS and MX records.
1159
1160 .. change::
1161 :tags: Postgresql, Improvements
1162 :pullreq: 5121, 5221
1163 :tickets: 2358, 5193
1164
1165 Use pkg-config to detect PostgreSQL libraries.
1166
1167 .. change::
1168 :tags: Internals, New Features
1169 :pullreq: 5137
1170 :tickets: 5129
1171
1172 Add TCP Fast Open support.
1173
1174 .. change::
1175 :tags: ALIAS, Improvements
1176 :pullreq: 5182
1177 :tickets: 5119
1178
1179 Disable ALIAS expansion by default.
1180
1181 .. change::
1182 :tags: Internals, Improvements
1183 :pullreq: 5112
1184 :tickets: 4655
1185
1186 Use the :ref:`setting-resolver` setting for the stub resolver, use resolv.conf as fallback.
1187
1188 .. change::
1189 :tags: Internals, New Features
1190 :pullreq: 5132, 5258
1191 :tickets: 4204
1192
1193 Hash the entire query in the packet cache, split caches. This makes the authoritative server pass the EDNS compliance test.
1194
1195 Add cache hit/miss statistics (Kees Monshouwer).
1196
1197 .. change::
1198 :tags: LDAP, New Features
1199 :pullreq: 4477
1200 :tickets: 3358
1201
1202 Many improvements and additions to the LDAP backend (Grégory Oestreicher).
1203
1204 .. change::
1205 :tags: Internals, Bug Fixes
1206 :pullreq: 5212, 5249
1207
1208 Remove duplicate dns2_tolower() function and move ascii-related function to one file (Thiago Farina).
1209
1210 .. change::
1211 :tags: Internals, Bug Fixes
1212 :pullreq: 5209
1213
1214 Make copying locks impossible.
1215
1216 .. change::
1217 :tags: Internals, Improvements
1218 :pullreq: 5250
1219
1220 Re-implement the AXFR Filter with LuaContext (Aki Tuomi).
1221
1222 .. change::
1223 :tags: GeoIP, New Features
1224 :pullreq: 5266, 5269, 5270
1225 :tickets: 4122, 5255
1226
1227 Support 2-character country codes and the MaxMind cities database in the GeoIP backend (Aki Tuomi).
1228
1229 .. change::
1230 :tags: GeoIP, Bug Fixes
1231 :pullreq: 5267
1232 :tickets: 4704
1233
1234 Apply weights consistently during GeoIP lookups (Aki Tuomi).
1235
1236 .. change::
1237 :tags: Tools, Bug Fixes
1238 :pullreq: 5303
1239
1240 Fix off-by-one in dnsreplay --packet-limit
1241
1242 .. change::
1243 :tags: Internals, New Features
1244 :pullreq: 5271, 5190
1245 :tickets: 3781
1246
1247 Add an adjustable statistics interval (@phonedph1).
1248
1249 .. change::
1250 :tags: DNSUpdate, New Features
1251 :pullreq: 5264, 5263, 5321
1252 :tickets: 4821
1253
1254 Send a notification to all slave servers after every dnsupdate (Kees Monshouwer, Florian Obser).
1255
1256 .. change::
1257 :tags: Remote, Bug Fixes
1258 :pullreq: 5308
1259 :tickets: 5306
1260
1261 Don't copy data around in the Remote Backend when sending and receiving in the Unix Connector.
1262
1263 .. change::
1264 :tags: Internals, Bug Fixes
1265 :pullreq: 5320
1266
1267 Properly truncate trailing bits of EDNS Client Subnet masks.
1268
1269 .. change::
1270 :tags: Internals, Bug Fixes
1271 :pullreq: 5161, 5083
1272
1273 Fix regressions in the AXFR rectification code (Kees Monshouwer, Arthur Gautier).
1274
1275 .. change::
1276 :tags: LDAP, Bug Fixes
1277 :pullreq: 5340
1278 :tickets: 5091
1279
1280 Fix an erroneous '.' in ".ip6.arpa" (@shantikulkarni).
1281
1282 .. change::
1283 :tags: Internals, New Features
1284 :pullreq: 5316
1285
1286 Add option to set a global :ref:`setting-lua-axfr-script` (Kees Monshouwer).
1287
1288 .. change::
1289 :tags: Tools, New Features
1290 :pullreq: 5339
1291
1292 calidns: add --increment and --want-recursion flags.
1293
1294 .. change::
1295 :tags: Internals, New Features
1296 :pullreq: 4965, 4964, 1701
1297
1298 Allow forwarding of NOTIFY messages using :ref:`setting-forward-notify` (@DrRemorse).
1299
1300 .. change::
1301 :tags: Internals, Bug Fixes
1302 :pullreq: 5408
1303
1304 Zero the port when creating a netmask from a ComboAddress.
1305
1306 .. change::
1307 :tags: API, Improvements
1308 :pullreq: 5389
1309 :tickets: 5305
1310
1311 Forbid mixing CNAMEs and other RRSets in the API (Christan Hofstaedtler).
1312
1313 .. change::
1314 :tags: Internals, Improvements
1315 :pullreq: 5387
1316
1317 Allow control socket to listen on IPv6 (@Gibheer).
1318
1319 .. change::
1320 :tags: Types, New Features
1321 :pullreq: 5379
1322
1323 Support the SMIMEA RRType.
1324
1325 .. change::
1326 :tags: Postgresql, MySQL, Bug Fixes
1327 :pullreq: 5245
1328 :tickets: 5005, 3824
1329
1330 Reconnect to the server if the My/Pg connection has been closed.
1331
1332 .. change::
1333 :tags: Internals, Removed Features
1334 :pullreq: 5468
1335
1336 Remove the experimental Lua Policy Engine (Aki Tuomi).
1337
1338 .. change::
1339 :tags: Internals, Bug Fixes
1340 :pullreq: 5512
1341
1342 Drop (broken) support for packet-specific SOA replies from backends (Chris Hofstaedtler).
1343
1344 .. change::
1345 :tags: Oracle, Bug Fixes
1346 :pullreq: 5506
1347
1348 Add missing query for last key insert id in the goracle backend (Aki Tuomi).
1349
1350 .. change::
1351 :tags: Postgresql, Improvements
1352 :pullreq: 5426
1353
1354 Use BIGSERIAL for records.id in the gpgsql backend (Arsen Stasic).
1355
1356 .. change::
1357 :tags: Internals, Bug Fixes
1358 :pullreq: 5525
1359
1360 Fix validation at the exact RRSIG inception or expiration time
1361
1362 .. change::
1363 :tags: Internals, Improvements
1364 :pullreq: 5523
1365
1366 Fix typo in two log messages (Ruben Kerkhof).
1367
1368 .. change::
1369 :tags: API, Bug Fixes
1370 :pullreq: 5516
1371
1372 Avoid creating fake DNSPacket objects just for calling getAuth() from API code (Chris Hofstaedtler).
1373
1374 .. change::
1375 :tags: LDAP, Improvements
1376 :pullreq: 5509
1377
1378 Ship ldapbackend schema files in tarball (Chris Hofstaedtler).
1379
1380 .. change::
1381 :tags: Internals, Improvements
1382 :pullreq: 5542
1383
1384 Update YaHTTP (to fix a warning reported by Coverity).
1385
1386 .. change::
1387 :tags: Internals, Improvements
1388 :pullreq: 5541
1389
1390 Clarify how we check the return value of std::string::find() (reported by Coverity).
1391
1392 .. change::
1393 :tags: Internals, Improvements
1394 :pullreq: 5543
1395
1396 Wrap the webserver's and Resolver::tryGetSOASerial objects into smart pointers.
1397
1398 .. change::
1399 :tags: Internals, Improvements
1400 :pullreq: 4692
1401
1402 SSql: Use unique_ptr for statements (Aki Tuomi).
1403
1404 .. change::
1405 :tags: MySQL, Improvements
1406 :pullreq: 5605
1407
1408 mydnsbackend: Initialize d_query_stmt (Aki Tuomi).
1409
1410 .. change::
1411 :tags: Internals, Improvements
1412 :pullreq: 5599
1413
1414 Fix libatomic detection on ppc64 (Sander Hoentjen).
1415
1416 .. change::
1417 :tags: Internals, Improvements
1418 :pullreq: 5588
1419
1420 Switch the default webserver's ACL to "127.0.0.1, ::1".
1421
1422 .. change::
1423 :tags: API, Bug Fixes
1424 :pullreq: 5589
1425
1426 Check if the API is read-only on crypto keys methods.
1427
1428 .. change::
1429 :tags: API, Bug Fixes
1430 :pullreq: 5556
1431
1432 Fix getSOA() in luabackend (@zilopbg).
1433
1434 .. change::
1435 :tags: MySQL & Postgresql, Improvements
1436 :pullreq: 5518
1437
1438 Schema changes for MySQL / MariaDB and PostgreSQL to for storage requirements of various versions (Kees Monshouwer).
1439
1440 .. change::
1441 :tags: GeoIP, Improvements
1442 :pullreq: 5548
1443
1444 Add ability to have service record for apex record and any other static record (Aki Tuomi).
1445
1446 .. change::
1447 :tags: Internals, Bug Fixes
1448 :pullreq: 5519
1449
1450 Lookups one level (or more) below apex did confuse getAuth() for qytpe DS (Kees Monshouwer).
1451
1452 .. change::
1453 :tags: Internals, Improvements
1454 :pullreq: 5611
1455
1456 NOTIMP is only appropriate for an unsupported opcode (Kees Monshouwer).
1457
1458 .. change::
1459 :tags: Tools, Bug Fixes
1460 :pullreq: 5610
1461
1462 Fix that pdnsutil edit-zone complains about auth=1 problems on all data.
1463
1464 .. change::
1465 :tags: Internals, Bug Fixes
1466 :pullreq: 5633
1467
1468 First and last SOA in an AXFR must be identical (Kees Monshouwer).
1469
1470 .. change::
1471 :tags: API, Improvements
1472 :pullreq: 4195
1473
1474 Prevent duplicate records in single RRset (Chris Hofstaedtler).
1475
1476 .. change::
1477 :tags: Internals, Improvements
1478 :pullreq: 5641
1479
1480 Catch DNSName exception in the Zoneparser.
1481
1482 .. change::
1483 :tags: Internals, Improvements
1484 :pullreq: 5583
1485
1486 Listen on 127.0.0.1 during regression tests (@tcely).