1$Id: Changes 1846 2021-07-16 12:15:07Z willem $ -*-text-*- 2 3 4**** 1.32 Jul 16, 2021 5 6 Text: Offer both Unicode and escaped-ASCII strings. 7 8 Add LICENSE file to comply with Fedora/RedHat announcement. 9 10Fix rt.cpan.org #136666 11 12 Net::DNS::RR::ZoneFile parser erroneously strips line 13 terminators in quoted string forming part of multiline RR. 14 15 16**** 1.31 May 2, 2021 17 18 Improve implementation of SVCB record. 19 20 21**** 1.30 Mar 30, 2021 22 23 Simplify parsing of multi-line RRs in zone file. 24 Improve robustness of "dry" resolver tests. 25 Avoid deep recursion in non-fatal test report. 26 27 28**** 1.29 Nov 18, 2020 29 30 Include test number in summary of failed non-fatal tests. 31 Remove Net::DNS::SEC specific tests. 32 Fix faulty test plan in t/08-recurse.t. 33 34 35**** 1.28 Oct 23, 2020 36 37 Eliminate indirect object syntax. 38 Eliminate grep/map <expression>. 39 40 41**** 1.27 Sep 11, 2020 42 43Fix rt.cpan.org #133203 44 45 Net::DNS::RR::LOC erroneously strips non default values from 46 string representation 47 48 49**** 1.26 Aug 6, 2020 50 51 Add HTTPS/SVCB packages. 52 53Fix rt.cpan.org #132921 54 55 EDNS OPT handling 56 57 58**** 1.25 Jun 26, 2020 59 60 Parsing of TSIG keyfiles made more robust. 61 62 63**** 1.24 May 27, 2020 64 65 Accept TSIG key generated by BIND tsig-keygen. 66 67 Add Net::DNS::RR::AMTRELAY package. 68 69 70**** 1.23 Mar 18, 2020 71 72 Deprecate 2-argument form of TSIG create(). 73 74Fix rt.cpan.org #132170 75 76 [Documentation] Problems with TSIG on ddns update. 77 78Fix rt.cpan.org #131906 79 80 Undefined errorstring/warning when axfr fails 81 82 83**** 1.22 Feb 13, 2020 84 85Fix rt.cpan.org #131579 86 87 Parse issue in Net::DNS::RR->token 88 89Feature 90 Provide rudimentary decode and print for DSO packet. 91 92 93**** 1.21 Aug 30, 2019 94 95 Fix error report for non-existent or recursive zone file $INCLUDE. 96 97 Emit one deprecation warning on invocation of obsolete method. 98 99 Rework OPT.pm EDNS0 option construction. 100 101 Remove obsolete Net::DNS::RR::DLV package. 102 103 Add Net::DNS::RR::ZONEMD package. 104 105Fix rt.cpan.org #128901 106 107 background TCP query logic expects to read entire response at once 108 109 110**** 1.20 Mar 22, 2019 111 112 TSIG MAC representation changed to Base64 (align with BIND). 113 114 Update Parameters.pm to resync with IANA registry. 115 116 Refactor resolver test scripts. 117 118 Revise documentation examples to use AAAA instead of A records. 119 120Fix rt.cpan.org #128081 121 122 Recurse.pm fails to resolve domain "kickboxingireland.ie" 123 124Fix rt.cpan.org #127307 125 126 Provide a more informative exception report if application code 127 has no "use Net::DNS::SEC" declaration but nevertheless attempts 128 to invoke the DNSSEC sign or verify features. 129 130 131**** 1.19 Nov 14, 2018 132 133 Show structure of EDNS options using Perl-like syntax. 134 135Fix rt.cpan.org #127557 136 137 Net::DNS::Resolver::Base should use 3 args open 138 139Fix rt.cpan.org #127182 140 141 Incorrect logic can cause DNS search to emit fruitless queries. 142 143 144**** 1.18 Sep 21, 2018 145 146 Documentation revised to remove ambigous use of "answer" which 147 has been used to refer to both the answer section of a packet 148 and the entire reply packet received from a nameserver. 149 150Fix rt.cpan.org #127018 151 152 Net::DNS::ZoneFile->parse() fails if include directory specified. 153 154Fix rt.cpan.org #127012 155 156 DNS resolution broken when options ndots used in /etc/resolv.conf 157 158 159**** 1.17 Jul 25, 2018 160 161Fix rt.cpan.org #125890 162 163 AXFR: 1 record per packet responses. 164 165Fix rt.cpan.org #125889 166 167 New NSEC3 for empty non-terminal leaves type bitmap undefined. 168 169Fix rt.cpan.org #125882 170 171 RDATA name compression pointer calculated incorrectly. 172 173 174**** 1.16 Jul 15, 2018 175 176Feature 177 New NSEC3 encloser(), nextcloser() and wildcard() instance 178 methods return closest encloser, "next closer" and putative 179 wildcard names respectively. 180 181Feature 182 Add new NSEC covers() instance method. 183 184Feature 185 New NSEC typemap() instance method interrogates type list. 186 187 IO::Socket::INET6 removed from recommended module metadata. 188 IPv6 requires IO::Socket::IP which is now a core package. 189 190 No requirement to escape @ in unquoted contiguous string. 191 192 193**** 1.15 Feb 9, 2018 194 195 GOST R 34.11-94 hash algorithm: end of life 1st Jan 2018 196 per sunset clause in successor standard GOST R 34.11-2012. 197 Digest::GOST removed from the recommended module metadata, 198 but will still be used if available. 199 200 201**** 1.14 Dec 15, 2017 202 203Fix rt.cpan.org #123702 204 205 'use base' should not be used in packages with several 206 subpackages defined 207 208Fix rt.cpan.org #123676 209 210 Net::DNS::Nameserver malformed message on big axfr 211 212 213**** 1.13 Oct 18, 2017 214 215Feature IDN query support 216 217 Queries for domain names containing non-ASCII characters are 218 now possible on Unicode platforms using CPAN Net::LibIDN2 219 220 221**** 1.12 Aug 18, 2017 222 223Fix rt.cpan.org #122586 224 225 Persistent UDP reports false timeouts 226 227Fix rt.cpan.org #122352 228 229 bgsend(): TCP retry can stall for IO::Socket::IP before 0.38 230 231Feature 232 CDS / CDNSKEY: Implement RFC8078 erratum 5049. 233 234 235**** 1.11 Jun 26, 2017 236 237Fix rt.cpan.org #122138 238 239 Send a UDP query with udppacketsize=512 240 241Feature 242 Extract default resolver configuration from OS/390 MVS datasets. 243 Thanks to Sandra Carroll and Yaroslav Kuzmin for their assistance. 244 245 246**** 1.10 May 5, 2017 247 248Fix rt.cpan.org #120748 249 250 Net::DNS::Resolver::MSWin32 critical issue 251 Thanks to Dmytro Zagashev for his valuable assistance during 252 the investigation which exposed five distinct issues. 253 254Feature rt.cpan.org #18819 255 256 Perl 5.22.0 puts EBCDIC character encoding back on the agenda. 257 Thanks to Yaroslav Kuzmin for successful test build on os390. 258 259 260**** 1.09 March 24, 2017 261 262Fix rt.cpan.org #120542 263 264 Fails tests when no "." in @INC 265 266Fix rt.cpan.org #120470 267 268 Fragmented TCP length not correctly reassembled 269 270Feature rt.cpan.org #75357 271 272 Add mechanism to encode/decode EDNS option octet strings 273 274 275**** 1.08 February 20, 2017 276 277Fix rt.cpan.org #120208 278 279 Unable to install 1.07 in local::lib environment 280 281Feature rt.cpan.org #119679 282 283 Net::DNS::Nameserver: UpdateHandler for responding to UPDATE packets 284 285Feature rt.cpan.org #75357 286 287 Net::DNS::Nameserver: optionmask (similar to headermask) added 288 to allow user to set EDNS options in reply packet 289 290Discontinue support for pre-5.6 perl 291 292 Remove pre-5.6 workarounds and outdated language features 293 294 295**** 1.07 December 29, 2016 296 297Fix rt.cpan.org #118598/#108908 298 299 Serious Makefile.PL issues 300 "make install" now suppressed if pre-1.01 version detected 301 302Fix rt.cpan.org #115558 303 304 Net::DNS::Nameserver does not allow EDNS replies 305 306Fix rt.cpan.org #114917 307 308 Net::DNS::ZoneFile fails to parse mixed case mnemonics 309 310Fix rt.cpan.org #114876 311 312 Use of uninitialized value in lc at MSWin32.pm line 77 313 314Fix rt.cpan.org #114819 315 316 Net::DNS fails to compile with taint checks enabled 317 318Feature 319 Add support for dynamic RR subtype package creation 320 per draft-levine-dnsextlang 321 322 323**** 1.06 May 27, 2016 324 325Fix rt.cpan.org #114918 326 327 Net::DNS::ZoneFile fails when unnamed RR follows $ORIGIN 328 329Fix rt.cpan.org #114351 330 331 Case sensitive compression breaks resolver->nameservers() 332 333Fix rt.cpan.org #113579 334 335 Net::DNS::Resolver dies on scoped IPv6 nameserver address 336 337Fix rt.cpan.org #113020 338 339 Resolve::Recurse Hangs 340 341Fix rt.cpan.org #112860 342 343 improperly terminated AXFR at t/08-IPv4.t line 446. 344 345 346**** 1.05 March 7, 2016 347 348Fix rt.cpan.org #111559 349 350 1.04: TSIG not working anymore (TSIG.pm) 351 352Fix rt.cpan.org #108908 353 354 Installing recent version gets shadowed by old version. 355 Warnings added to Makefile.PL and t/00-version.t. 356 357Fix rt.cpan.org #66900 358 359 Net::DNS::Async unable to retry truncated UDP using TCP because 360 of limitations in Net::DNS. 361 362 363**** 1.04 December 8, 2015 364 365Fix rt.cpan.org #109183 366 367 Semantics of "retry" and "retrans" options has changed with 1.03 368 369Fix rt.cpan.org #109152 370 371 Deprecated method make_query_packet breaks calling code 372 373Fix rt.cpan.org #109135 374 375 Resolver behaves differently with long and short IPv6 address format 376 377Fix rt.cpan.org #108745 378 379 Net::DNS::Resolver bgsend 380 381 382**** 1.03 November 6, 2015 383 384Fix rt.cpan.org #107897 385 386 t/10-recurse.t freezes, never completes 387 388Fix rt.cpan.org #101978 389 390 Update Net::DNS to use IO::Socket::IP 391 392Fix rt.cpan.org #84375 393 394 Timeout doesn't work with bgsend/bgread 395 396Fix rt.cpan.org #47050 397 398 persistent sockets for Resolver::bg(send|read|isready) 399 400Fix rt.cpan.org #15515 401 402 bgsend on TCP 403 404 405**** 1.02 September 16, 2015 406 407Fix rt.cpan.org #107052 408 409 suppress messages: Can't locate Net/DNS/Resolver/linux.pm 410 411Fix rt.cpan.org #106916 412 413 Dependency on MIME::Base32 makes Net::DNS not installable on MSWin32 414 415Fix rt.cpan.org #106565 416 417 Net::DNS::Resolver::Recurse and IPv6 Reverse DNS 418 419Fix rt.cpan.org #105808 420 421 Version test for Pod::Test is broken 422 423 424**** 1.01 Jul 6, 2015 425 426Feature 427 The RRs previously only available with Net::DNS::SEC are now 428 integrated with Net::DNS. Net::DNS::SEC needs to be installed 429 to enable the signature generation and verification functions. 430 431Fix rt.cpan.org #105491 432 433 Can't call method "zclass" on an undefined value at ... Net/DNS/Packet.pm line 474 434 435Fix rt.cpan.org #105421 436 437 Dead link in Net::DNS::FAQ 438 439Fix rt.cpan.org #104657 440 441 Wrong split on Cygwin 442 443Fix rt.cpan.org #102810 444 445 Dynamic update: rr_add overrides ttl of zero 446 447Fix rt.cpan.org #102809 448 449 CAA broken 450 451 452**** 0.83 Feb 26, 2015 453 454Fix rt.cpan.org #101798 455 456 AUTOLOAD error confusing w/o reference to object class 457 458Fix rt.cpan.org #101709 459 460 Provide separate control of IPv6 tests 461 462Fix rt.cpan.org #101675 463 464 MX record with 0 preference fails to parse 465 466Fix rt.cpan.org #101405 467 468 Install tests fail for v0.81 on Perl 5.21.7 469 470 471**** 0.82 Jan 20, 2015 472 473Fix rt.cpan.org #100385 474 475 Support for IPv6 link-local addresses with scope_id 476 477 478**** 0.81 Oct 29, 2014 479 480Fix rt.cpan.org #99571 481 482 AXFR BADSIG failures 483 484Fix rt.cpan.org #99531 485 486 Resolver doc error - when is a 'bug' a 'bug'? [TSIG verification] 487 488Fix rt.cpan.org #99528 489 490 TSIG::create fails with some filenames 491 492Fix rt.cpan.org #99527 493 494 Random errors... [declaration with statement modifier] 495 496Fix rt.cpan.org #99429 497 498 Infinite recursion in Net::DNS::Resolver::Recurse::send when 499 following certain delegations with empty non-terminals. 500 501Fix rt.cpan.org #99320 502 503 Net::DNS::ZoneFile bug in "$ORIGIN ." 504 505 506**** 0.80 Sep 22, 2014 507 508Removal of Win32::IPHelper support with cygwin 509 510 Resolvers on Cygwin can get their DNS configuration from the 511 registry directly via the /proc filesystem. Getting rid of 512 the other method reduces dependencies and makes installations 513 less error prone. 514 515Rework rt.cpan.org #96119 516 517 "Too late to run INIT block" warning for require Net::DNS 518 519 520**** 0.79 Aug 22, 2014 521 522Feature rt.cpan.org #98149 523 524 Add support for Android platform. 525 526Fix rt.cpan.org #97736 527 528 Net::DNS::Resolver->new mistakenly copies supplied arguments 529 into default configuration on first instantiation. 530 531Fix rt.cpan.org #97502 532 533 Net::DNS::Resolver->retrans does not accept a value of 1 (uses 2 instead) 534 535Fix rt.cpan.org #83642 536 537 Configure CD flag in Net::DNS::Resolver->new 538 539Fix rt.cpan.org #81760 540 541 Reverted workaround for TXT issue preventing propagation of 542 rule updates for SpamAssassin versions earlier than 3.4.0 543 544Fix rt.cpan.org #16630 545 546 Net::DNS::Resolver::Recurse issues lots of IMHO unnecessary DNS requests. 547 548 549**** 0.78 Jul 10, 2014 550 551Fix rt.cpan.org #97036 552 553 Nameserver identification on Cygwin 554 555Fix rt.cpan.org #96814 556 557 Trailing comments not stripped in /etc/resolv.conf 558 559Fix rt.cpan.org #96812 560 561 Net::DNS::Resolver->new() hangs if nameserver :: exists 562 563Fix rt.cpan.org #96755 564 565 RFC 3597 (hex) parsing mistake 566 567Fix rt.cpan.org #96708 568 569 String treated as boolean in TXT 570 571Fix rt.cpan.org #96608 572 573 "Insecure dependency in connect" with Net::DNS::Resolver over TCP 574 575Fix rt.cpan.org #96535 576 577 Net::DNS::Resolver warns "Use of uninitialized value in length" 578 579Fix rt.cpan.org #96531 580 581 Calling $resolver->nameservers multiple times returns an 582 increasingly-long list (on some perl installations) 583 584Fix rt.cpan.org #96439 585 586 Uninitialised decoding object when printing packet 587 588 589**** 0.77 Jun 13, 2014 590 591Fix rt.cpan.org #96151 592 593 Unlocalised $_ modified when reading config file 594 595Fix rt.cpan.org #96135 596 597 Deep recursion problem on Cygwin 598 599Fix rt.cpan.org #96119 600 601 "Too late to run INIT block" warning for require Net::DNS 602 603Fix rt.cpan.org #96035 604 605 Insert missing plan 'no-plan' in 10-recurse.t 606 607Fix inefficient Net::DNS::SEC compatibility code 608 609 610**** 0.76 May 23, 2014 611 612Fix rt.cpan.org #95738 613 614 Test failure with IPv6 address in resolver.conf but without 615 prerequisite IO::Socket::INET6 package installed. 616 617Fix rt.cpan.org #95596 618 619 Incorrect parsing of nameserver lines in resolv.conf 620 621Feature rt.cpan.org #79568 622 623 Implement prefer_v6 resolver configuration attribute. 624 625Fix rt.cpan.org #67602 626 627 Set resolver configuration defaults at first instantiation 628 instead of module load time. 629 630 631**** 0.75 May 8, 2014 632 633Fix rt.cpan.org #94069 634 635 Compile-time constant in Domain.pm/Text.pm cannot be used to 636 store pointer to encoding object when using perlcc compiler. 637 Thanks are due to Reini Urban for testing the revised code. 638 639Fix rt.cpan.org #93764 640 641 Resolver gives unhelpful errorstring when attempting to use 642 IPv6-only nameserver without INET6 and Socket6 installed. 643 644Fix rt.cpan.org #92626 645 646 Clarify documentation surrounding SRV RR sorting 647 648Feature 649 650 Implement TSIG verified zone transfer. 651 652Fix rt.cpan.org #92433 & #91241 653 654 TSIG: implement sign/verify for multi-packet message. 655 656Fix rt.cpan.org #79569 657 658 Iterate nameservers in AXFR 659 660 661**** 0.74 Jan 16, 2014 662 663Fix rt.cpan.org #91306 664 665 Nameserver crashes on malformed UDP query. 666 667Fix rt.cpan.org #91241 668 669 TSIG: Fix incorrectly generated %algbyval table. 670 671Feature 672 673 Add CAA, EUI48 and EUI64 RR implementation. 674 675 676**** 0.73 Nov 29, 2013 677 678Fix rt.cpan.org #88778 679 680 $update->unique_push() does not work as advertised. 681 682Fix rt.cpan.org #88744 683 684 Nameserver crashes on malformed TCP query. 685 686Fix rt.cpan.org #84601/#81942 687 688 Fix memory leak on packet cleanup. Indirect self-reference via 689 header prevented garbage collector from deallocating packet. 690 691Feature rt.cpan.org #84468 692 693 TSIG: add support for HMAC-SHA1 .. HMAC-SHA512 694 695Fix rt.cpan.org #84110 696 697 Incorrect parsing of PTR records in zonefile. 698 699Fix rt.cpan.org #83755 700 701 Erroneous attempt to invoke Net::LibIDN package in Domain.pm. 702 703Fix rt.cpan.org #83078 704 705 Can't locate Net/DNS/Resolver/linux.pm in @INC 706 Conjecture: eval{ ... }; if ($@) { ... }; broken by threads. 707 708Fix rt.cpan.org #83075 709 710 ZoneFile.pm wrongly rejects $TTL 0 directive. 711 712Fix rt.cpan.org #82621 713 714 Error string empty after failed TCP query. 715 716Fix rt.cpan.org #82296 717 718 IPv6 with embedded IPv4 address not mapped to ip6.arpa. 719 720Fix rt.cpan.org #82294 721 722 Perl taint inadvertently removed in Domain and Text objects. 723 724Feature rt.cpan.org #53610 725 726 add TSIG validation support 727 728 729**** 0.72 Dec 28, 2012 730 731Fix rt.cpan.org #82148 732 733 nxrrset fails to ignore RDATA. 734 735Fix rt.cpan.org #82134 736 737 TSIG key and algorithm names not downcased in digest. 738 Class not forced to ANY. 739 740Fix rt.cpan.org #82063 741 742 yxrrset, nxrrset and rr_del functions should force zero TTL. 743 744Fix rt.cpan.org #82047 745 746 Clarify documentation to indicate that header counts may 747 differ from the number of RRs present if a packet is corrupt. 748 749Fix rt.cpan.org #81941 750 751 Clarify documentation to make users aware that bgread will not 752 switch to TCP when a truncated packet is received. 753 754 755**** 0.71 Dec 15, 2012 756 757Temporary workaround rt.cpan.org #81760 758 759 The rdatastr method for TXT RRs will return unconditionally 760 quoted rdata fields to work around an issue with updating 761 SpamAssassin rules. This workaround will be reverted after 762 release of a version of SpamAssassin which resolves the issue. 763 764Fix TSIG initialization 765 766 Uninitialised algorithm attribute caused signature generation 767 to fail silently when creating a TSIG signed packet. 768 769Fix rt.cpan.org #81869 770 771 The rr_del auxilliary function broken by a conflicting change 772 in the RR.pm string parser. Note the ambiguous use of ANY, 773 which may stand for CLASS255 or TYPE255 depending upon the 774 argument string presented. 775 776Fix rt.cpan.org #81756 777 778 Test failures on Perl 5.8.5 .. 5.8.8. 779 lc(), uc() and case insensitive regex matching broken for UTF8. 780 Thanks are due to Paul Howarth for patient work with perl -d. 781 782Fix rt.cpan.org #81787 783 784 NXDOMAIN no longer reported by $resolver->errorstring. 785 786Fix rt.cpan.org #81814 787 788 Allow zero in format, tag and algorithm fields of CERT RR. 789 790Fix rt.cpan.org #81786 791 792 Substitute last owner for leading spaces in multiline zonefile RR. 793 794Fix rt.cpan.org #77444 795 796 Make use of new extended header modus operandi for OPT records 797 also in the resolver. Preventing a warning. 798 799 800**** 0.70 Dec 6, 2012 801 802Feature 803 Add support for NID L32 L64 LP, RFC6742. 804 805 806**** 0.69 Dec 5, 2012 807 808Feature rt.cpan.org #62030 809 810 Parsing of BIND zone files implemented in Net::DNS::ZoneFile. 811 This replaces and is backward compatible with the CPAN module 812 of the same name. 813 814Enhancement to simplify RR subtype template and recode packages. 815 816Enhancement rt.cpan.org #75185 817 818 Packet decoder returns index to end of decoded data. 819 820 Added packet->reply() method. 821 822Fix rt.cpan.org #79569 823 824 AXFR not setting packet->answer_from. 825 826Enhancement rt.cpan.org #18819 827 828 Added support for Unicode and non-ASCII character encoding. 829 830Feature integrate OPT as a header extension 831 832 Treat extended rcodes and the DO flag like they are part of 833 the packet header. 834 835Fix rt.cpan.org #77444 836 837 Support escaped characters according to RFC1035 in TXT rdata. 838 839Fix rt.cpan.org #77304 840 841 Fix resolver searchlist from registry setup on Win32. 842 843Enhancement rt.cpan.org #67570 844 845 Make wire2presentation two till eighteen times faster. 846 A contribution from Matthew Horsfall 847 848Fix rt.cpan.org #73366 849 850 Remove existing TSIG when resigning with a new TSIG and give warning. 851 852Fix rt.cpan.org #75330 853 854 Also try nameserver without glue (as a last resort) when recursing. 855 856Fix rt.cpan.org #74493 857 858 Read correct resolver configuration in OS/2. 859 860 861**** 0.68 Jan 30, 2012 862 863Fix rt.cpan.org #72314 864 865 Let a Net::DNS::Nameserver bind on Net::DNS::Nameserver::DEFAULT_ADDR 866 as a last resort. 867 868Fix to suppress false warnings about subroutine profiles on ancient 869 versions of perl. 870 871Fix to avoid constants with value undef which prevents unwanted code from being 872 optimized away on ancient versions of perl. 873 874Fix code error in PTR.pm, canonical RDATA not downcased. 875 876Enhancement to clarify the function of parse and data methods, by renaming them 877 to decode and encode respectively. 878 879Feature IDN query support. 880 881 Question.pm modified to use the recently introduced DomainName.pm 882 module to represent DNS names. Queries for domain names containing 883 non-ASCII characters are now possible on Unicode platforms with CPAN 884 Net::LibIDN installed. 885 886Introduction of Mailbox.pm module that will be used in the future to represent 887 RDATA components containing DNS coded RFC822 mailbox addresses. 888 889Introduction of Text.pm module that will be used in the future to represent 890 RDATA components containing text. 891 892 893**** 0.67 Nov 4, 2011 894 895Enhancement rt.cpan.org #60726 896 897 On Cygwin Net::DNS now builds without Win32::IPHelper, unless a 898 previous version is updated that did use it. 899 The choice may also be set by the --iphelper or --noiphelper option 900 to Makefile.PL. 901 902Fix to suppress IO::Socket::INET(6)::peerhost usage with TCP. On some systems 903 it doesn't work after receiving data. 904 905Enhancement rt.cpan.org #43142 906 907 Allow ReplyHandlers to indicate that no answer should be returned 908 by the Net::DNS::Nameserver. 909 910Fix rt.cpan.org #71796 911 912 Prevent TCP accepts from blocking on unfinished 3-way handshakes. 913 914Fix rt.cpan.org #65607 915 916 Make 64bits windows work by depending on Win32::IPHelper version 0.07 917 Thanks to Lian Wan Situ. 918 919Fix rt.cpan.org #66470 920 921 Named nameserver should be reachable by IPv6 too. 922 923Fix to make tests work in jailed environments where a reply might come 924 from a different address than that of the loopback interface. 925 926Feature to use a class method ReplyHandler for classes inheriting from 927 Net::DNS::Nameserver. 928 929 A contribution from Rob Brown. 930 931Fix rt.cpan.org #71062 932 933 Replace the usage of the obsolete Win32::Registry module by 934 Win32::TieRegistry module. 935 936Fix rt.cpan.org #68731 937 938 Fix linking of the C compiled parts of the library on Mac OS X 939 940New improved version of the check_soa script in the contrib section. 941 942 A contribution from Dick Franks. 943 944Fix rt.cpan.org #70830 945 946 Make t/08-online.t handle NXDOMAIN hijacking that return more than one 947 answer. 948 949Fix rt.cpan.org #24525 950 951 Removed dependency on Net::IP 952 953Fix online tests to use the library as documented and not use knowledge of the 954 internal workings of the classes that should be hidden. 955 956 A contribution from Dick Franks 957 958Fix rt.cpan.org #55682 959 Make online tests non-fatal by default. 960 All interactive prompts are removed from Makefile.PL. 961 Online tests may still be made a requisite by using the --online-tests 962 option. 963 964Major rework of Net::DNS::Domain.pm and the addition of Net::DNS::DomainName.pm 965 966 Which paves the way towards handling of character encodings and IDN. 967 A contribution from Dick Franks. 968 969Fix rt.cpan.org #69174 970 971 Typo that prevented TCP traffic from being replied from the same 972 socket as it was received on. 973 974Fix rt.cpan.org #68338 975 976 Suppress warnings of the deprecated use of qw as parentheses in 977 perl 5.14. 978 979Enhancement rt.cpan.org #67418 980 981 A contribution from Wolfsage to perform presentation to wire format 982 conversion more efficiently. 983 984Fix rt.cpan.org #67133 985 986 Gracefully handle corrupted incoming packets in Net::DNS::Nameserver. 987 988Feature to manage serial numbers in SOA records in a modular and extensible way. 989 990 Three modules are provided. Strictly sequential, Date Encoded and 991 Time Encoded. A contribution from Dick Franks. 992 993Fix rt.cpan.org #53325 994 995 Make Net::DNS::Resolver load even if /etc/resolv.conf is unreadable. 996 997Fix rt.cpan.org #63486 998 999 Make t/08-online.t fail gracefully in stead of crash on failures. 1000 1001Fix rt.cpan.org #55586 1002 1003 Various typo fixes. 1004 1005Fix rt.cpan.org #55682 1006 1007 Really do not use networking functions when online tests are disabled. 1008 1009Fix rt.cpan.org #64562 1010 1011 Replace TSIG key with the signature of the whole packet when signing 1012 a packet, even when the TSIG key is not the first in the additional 1013 section. 1014 1015Fix rt.cpan.org #56181 and #47265 1016 1017 Assembly of segmented TCP traffic. 1018 1019Feature rt.cpan.org #57289 1020 1021 Provide a configurable IdleTimeout for Net::DNS::Namserver. 1022 1023Fix rt.cpan.org #53595 1024 1025 Fix documentation to reflect code behaviour where on successful packet 1026 creation, the error should be ignored. 1027 1028Fix rt.cpan.org #58914 1029 1030 Fix spelling of "algorithm" 1031 1032Fix rt.cpan.org #61725 1033 1034 Include default domain in the search list on Win32. 1035 Thanks Mark Rallen. 1036 1037Fix rt.cpan.org #63321 1038 1039 A Net::DNS::Nameserver without a NotifyHandler now responds NOTIMP 1040 to NOTIFY requests. 1041 1042Fix rt.cpan.org #53595 1043 1044 Documentation now reflects Net::DNS::Packet construction behaviour. 1045 1046 1047**** 0.66 Dec 30, 2009 1048 1049Feature Truncation for Nameserver 1050 fixes rt.cpan.org #33547 and #42744 1051 1052 TAKE CARE: 1053 this feature may cause unexpected behavior for your nameservers 1054 and can be turned off by setting Truncate to 0 during the creation 1055 of the nameserver. 1056 my $ns = Net::DNS::Nameserver->new( 1057 Truncate => 0, 1058 1059 ); 1060 1061 1062 Net::DNS::Packet::truncate is a new method that is called from 1063 within Net::DNS::Nameserver that truncates a packet according to 1064 the rules of RFC2181 section 9. 1065 1066 Acknowledgement Aaron Crane for an elegant test and for 1067 inspiration for a direction. 1068 1069 1070Feature: Added Net::DNS::Domain 1071 Net::DNS::Domain is an attempt to introduce a consistent model 1072 for representation of RFC 1035 <domain-name>s. 1073 1074 The class and its test script t/02-domain.t are included to be 1075 exposed to various architectures. 1076 1077 The class and its methods may be subject to change, both in terms of 1078 naming and functionality. 1079 1080 A contribution by Dick Franks 1081 1082Fix improved fuzzy matching of CLASS and TYPE in the Question 1083 constructor method. 1084 1085 A contribution by Dick Franks. 1086 1087Fix rt.cpan.org #43770 1088 1089 Update->rr_del() was reported broken for AAAA after 0.65. 1090 The same bug also occurred in HINFO RR. 1091 1092 1093Fix rt.cpan.org #43765 1094 1095 Code inconsistent with documentation for loop_once. 1096 1097 Note: Keeping timeout undefined in loop_once will now block until 1098 something arrived on the socket. 1099 1100Fix rt.cpan.org #47050 1101 1102 Fixed logic error in bgsend socket acquisition code. 1103 1104Fix rt.cpan.org #47265 (partial) 1105 1106 Frequently Net:DNS under Windows XP has a UDP problem which is 1107 caused by a buggy implementation of SOCKS under Windows. 1108 1109 One liner added to not continue UDP processing when that happens. 1110 1111Feature KX RR 1112 1113 Added support for the KX RR, RFC2230 1114 The implementation is trivial since the KX inherits almost all of 1115 its functionality by inheritance from the MX RR. 1116 1117 1118Fix NSAP RR string representation 1119 1120 RFC1706 specifies the masterfile format to have a leading "0x" and 1121 optional dot. This was not how the RR was represented with the 1122 rdatastr method (and hence string and print). 1123 1124Fix rt.cpan.org #52307 AAAA v4compat parsing bug 1125 Acknowledgement: BLBLACK 1126 1127Fix AAAA dynamic update 1128 1129 Dynamic update of AAAA caused FORMERR on the prerequisite caused 1130 by AAAA creating rdata even when an address was never specified. 1131 This fix may cause difference in behavior for people who expect 1132 a NULL address ("::") when creating a AAAA without an address 1133 specified. 1134 1135 1136Feature HIP RR 1137 1138 Added support for the HIP RR, RFC5205 1139 perldoc Net::DNS::RR::HIP for more information. 1140 1141 1142Feature DHCID RR 1143 Added rudimentary support for the DHCID RR. 1144 1145 1146Fix rt.cpan.org #50883 1147 This is basically #11931 but for cygwin. 1148 1149 Codepath in Cygwin and Win32 are now the same. This adds a 1150 dependency in cygwin. 1151 Acknowledgements "mikaraento" 1152 1153Fix rt.cpan.org #45407 and #43190 1154 Fixed escaping of semicolon. 1155 1156 Note a change in behavior: 1157 For TXT and SPF the rdatastr method (and therefore the 1158 print, and string method) returns the escaped format while the 1159 chr_str_list method will return unescaped format. 1160 1161 1162Fix rt.cpan.org #43393 1163 Typo in 01-resolver.t 1164 1165Fix rt.cpan.org #43273 1166 Added check for uninitialized opcode in headermask in 1167 Nameserver.pm 1168 1169Fix rt.cpan.org #46635 1170 Minor documentation error in OPT.pm 1171 1172Fix rt.cpan.org #51009 1173 Fixed handling of empty string in Net::DNS::stripdot. 1174 Elegant one-liner supplied by JMEHNLE. 1175 1176Fix rt.cpan.org #49035 1177 1178 Comment parsing fixed: Semicolon in character string blocks (such 1179 as in TXT and NAPTR) were only recognized when escaped. 1180 Also fixed the NAPTR regular expression to not interpret 1181 "bla' 'foo" as two strings bla and foo, but as one: bla' 'foo 1182 1183Fix cd flag settings 1184 1185 Resolver bug and fix reported by Jon Haidu. 1186 1187 1188**** 0.65 January 26, 2009 1189 1190Fix rt.cpan.org #41076 1191 1192 When the AAAA object was constructed with new_from_hash with an 1193 address containing the "::" shorthand notation normalization was 1194 not done properly. 1195 1196Fix rt.cpan.org #42375 1197 1198 Typo in Win32.pm Registry root. 1199 1200 1201 1202**** 0.64 December 30, 2008 1203 1204Feature rt.cpan.org #36656 1205 1206 Added support for the APL record (RFC 3123) 1207 The module consists of a list of Address Prefix Item objects 1208 as defined in the Net::DNS::RR::APL::ApItem class. 1209 NOTE: Class and its interface may be subject to change. 1210 1211 1212Fix rt.cpan.org #11931 Wrong nameserver list handling in 1213 Net::DNS::Resolver::Win32 1214 1215 1216 The init method has been rewritten to be based on WIN32::IPhelper for 1217 the selection of the domain and the IP addresses. This is believed to 1218 be more portable than trying to fetch the data from the registry. 1219 We still trying to get the searchlist from the registry. 1220 1221 WARNING: If you use Perl under WIN32 (eg ActivePerl or Strawberry Perl) 1222 then your module dependency graph has changed drastically 1223 1224Fix IPv6 modules 1225 When IO::Socket::INET6 was available but Socket6 was not the code would 1226 recurse to infinity. 1227 1228Fix rt.cpan.org #21757 and Feature: Connectivity during test 1229 Addition of --no-IPv6-tests and --IPv6-tests option in Makefile.PL. 1230 Note: This causes two questions to be asked when building the 1231 Makefile instead of one. 1232 1233 Besides the test suites are constructed so that all the connectivity testing 1234 happen in 001-connectivity.t and nonavailability of connectivity over a certain 1235 transport is signaled over files t/online.disabled and t/IPv6.disabled respectively. 1236 Both files are removed by t/99-cleanup 1237 1238Fix rt.cpan.org #34511 1239 Priming query logic contained unneeded recursion. 1240 Now also falls back to hardcoded hints if there are no nameservers whatsoever. 1241 1242Fix rt.cpan.org #38390 and 37089 1243 Added CD and AD bit control to the resolver. 1244 1245 The CD flag defaults to being unset and the AD flags is set by default 1246 whenever DNSSEC is available. 1247 Both flags default to unset in absence of DNSSEC. 1248 1249 1250Fix rt.cpan.org #37282 1251 Improved error reporting during client disconnect from the nameserver 1252 1253NOTE rt.cpan.org # 40249 1254 1255 Release 0.62 introduced a feature to parse data inside a packet only 1256 when needed. This can cause the following to happen: 1257 1258 Exception: corrupt or incomplete data at 1259 /usr/lib/perl5/Net/DNS/RR.pm line 510. 1260 caught at -e line 1 1261 1262 This may happen when you have undefined your packet data before all the 1263 sections have been fully parsed. Such as in: 1264 1265 $packet = Net::DNS::Packet->new(\$data); 1266 undef($data); 1267 1268 The workaround is to force parsing by calling the methods that 1269 parse the data. e.g. 1270 1271 $packet = Net::DNS::Packet->new(\$data); 1272 $packet->answer; $packet->additional; $packet->authority; 1273 undef ($data) 1274 1275 1276Fix rt.cpan.org # 41076 and # 41071 1277 1278 Net::DNS::RR->new_from_hash function would not normalize the content 1279 of the data so that a method getting a string representation would 1280 get inconsistent results depending on whether a RR was created from 1281 a string of from a hash. 1282 1283Fix rt.cpan.org # 41296 1284 1285 Compression buggy for large packets. Fix by Kim Minh. 1286 1287 1288Fix rt.cpan.org # 35752 1289 1290 Perl 5.10.0 gave a number of issues on several platforms, preferring 1291 XSLoader over Dynaloader seemed to fix those. 1292 1293 1294Bug rt.cpan.org #34510 1295 Buggy setting of "Recursion too deep, aborted" corrected. 1296 1297Feature (rt.cpan.org #39284) 1298 1299 The ReplyHandler now also receives a variable with an anonymous hash with the connection details. Variables 1300 supplied to the Reply handler are: $qname, $qclass, $qtype, $peerhost, $query, $conn 1301 The hash referenced by $conn contains the following buckets: sockhost, sockport, peerhost, and peerport. 1302 1303 1304 1305Feature t/08-online.t and t/10-recurse.t 1306 1307 In particular environments a query for a.t. will resolve and or 1308 middleboxes will replace DNS packet content for queries to the root. 1309 A bunch of test is skipped when this (broken) environment is 1310 detected. 1311 1312 1313 1314Feature/Bug rt.cpan.org #22019 1315 1316 The initial fix for rt 22019 was to strip a trailing dot from all 1317 attributes that were provided as argument for the 1318 Net::DNS::RR::new_from_hash function. We have introduced 1319 Net::DNS::stripdot, a function that will strip the dots of domain 1320 names, taking into account possible escapes (e.g. labels like 1321 foo\\\..). As a side effect the new_from_string method will now 1322 convert possible spaces that are not trapped by some of the 1323 new_from_string functions and convert them to \032 escapes. 1324 1325 For information: The internal storage of domain names is using 1326 presentation format without trailing dots. 1327 1328 1329 1330Bug 1331 @EXPORT and @EXPORT_OK moved to a BEGIN block so that Net::DNS::SEC 1332 can make use of exported functions 1333 1334 1335Feature/Bug 1336 1337 The Notify handler introduced in 0.63 did not set the OPCODE on the 1338 reply appropriately. This has been solved generically by allowing the 1339 "Headermask" that is returned as 4th element by the reply or notify 1340 handler in the nameserver also allows for the opcode to be set. 1341 e.g. as in return ("NXDOMAIN",[],[],[],{ opcode => "NS_NOTIFY_OP" } 1342 ); 1343 1344 1345*** 0.63, 8 Feb 2008 1346 1347This version contains a Security Fix. 1348 1349Feature NotifyHandler in Nameserver 1350 1351 The NotifyHandler is a new attribute to the nameserver used in the 1352 same way as the ReplyHandler except that it is executed when the 1353 opcode is NS_NOTIFY (RFC1996). It takes the same arguments as the 1354 reply handler (i.e. $qname, $qclass, $qtype, $peerhost, and $query). 1355 Corrections made in the documentation. 1356 1357Fix rt.cpan.org #32937: 5.11 introduces new warning on uc(undef) 1358 1359 The patch supplied fixes for methods where undefined arguments were 1360 likely. For methods where undefined arguments don't make the warning 1361 will be printed. 1362 1363 1364Fix rt.cpan.org #32147: Default LocalAddr broken in Net::DNS::Nameserver 0.62 1365 1366 Listen on the default address if LocalAddr not defined. 1367 1368 1369Fix rt.cpan.org #30316 Security issue with Net::DNS Resolver. 1370 1371 Net/DNS/RR/A.pm in Net::DNS 0.60 build 654 allows remote attackers 1372 to cause a denial of service (program "croak") via a crafted DNS 1373 response (http://nvd.nist.gov/nvd.cfm?cvename=CVE-2007-6341). Packet 1374 parsing routines are now enclosed in eval blocks to trap exception 1375 and avoid premature termination of user program. 1376 1377Bug: mbox-dname and txt-dname were not allowed to be empty in the RP RR. 1378 Fix by Peter Koch 1379 1380 1381*** 0.62, 28 December 2007 1382 1383Features: Move of some functionality out of the Packet to the Question 1384 and RR classes; parsing of elements in the packet is now performed 1385 by calling the appropriate subclasses. 1386 1387 New methods were introduced: 1388 * Net::DNS::Packet->parse() 1389 * Net::DNS::RR->parse() 1390 * Net::DNS::Question->parse() 1391 1392 The Packet class now defers parsing of authority/additional until 1393 their content is really needed. This should cause a bit of 1394 performance improvement. 1395 1396 Dick Franks is acknowledged for this Good Work (TM). 1397 1398 Added 20081216 see NOTE above under rt.cpan.org # 40249 1399 1400Feature: the Net::DNS::Packet's answersize() method will from now on 1401 ignore its arguments and just return the size of the packet. 1402 1403Feature: The Net::DNS::RR->new() method used to call 1404 Net::DNS::RR->new_from_data() whenever called with the appropriate 1405 combination of arguments. That (undocumented) behavior has been deprecated. 1406 Use Net::DNS::RR->new_from_data() directly if you depended on that. 1407 1408Feature: Net::DNS::Packets unique_push now ignores the TTL in 1409 comparison of uniqueness, this is closer to the intent of 1410 RFC2181, but not yet fully compliant. 1411 1412Fix rt.cpan.org #29816 1413 Acquiring the IP address for the Resolver under Cygwin is made 1414 more resilient. 1415 1416Fix rt.cpan.org #31425 1417 Empty question section in Base.pm search method detected 1418 1419Fix rt.cpan.org #31042 1420 Makefile corrected to add a library target. 1421 1422Fix rt.cpan.org #29818 1423 10-recurse.t used to fail in very specific environment (where a query for 1424 qname="." and qtype="NS" would return with an empty additional section). 1425 Fixed by adding the hints explicitly; this also forces the tests to take 1426 place under the root served by a-m.root-servers.net 1427 1428 1429Fix rt.cpan.org #29877 1430 Made 00-version.t recognize a "GIT" environment. 1431 1432 1433 1434 1435Fix rt.cpan.org #29878 1436 1437 SPF.pm did not evaluate as true. Thanks Bjorn Hansen. 1438 1439 1440Fix rt.cpan.org #21398 1441 answersize() and answerfrom() set for persistent sockets 1442 1443Fix rt.cpan.org #29883 1444 Fix various tests only available through SVN, so they are 1445 more robust (Acknowledgements Bjoern Hansen) 1446 1447 1448Fix rt.cpan.org #24343 1449 Resolver's nameserver() method would do silly things with undefined 1450 arguments. 1451 1452Fix rt.cpan.org #29531 1453 Nameserver.pm, Packet.pm and Question.pm modified to avoid erroneous PTR 1454 lookup in response to mischievous query packet containing an IP address. 1455 1456 1457Fix rt.cpan.org #27970 better netdns.o 1458 1459 Marek Rouchal provided two minor improvements for linking the C 1460 code snippets 1461 1462 1463Fix rt.cpan 28345 1464 1465 A fix in Test::Simple revealed an off by 1 error in the testplan 1466 for 05-rr-rrsort.t. The fix is to remove a test, creating a dependency 1467 on Test::Simple 0.71 seemed overkill. 1468 1469 1470 1471*** 0.61, 1 August 2007 1472 1473Fix rt.cpan.org #28106, 28198, and 28590 1474 Modification of $_ in various places. 1475 1476Fix 1477 t/11-inet6 assumed lowercase domain names. 1478 1479*** 0.60 20 June 2007 1480 1481Fix spelling mistakes in change log using interactive spell checker (aspell). 1482 1483Fix 1484 Two redundant calls of $self->rdatastr() in Net::DNS::RR::string(). 1485 1486Fix rt.cpan.org #27285 bis 1487 Unreleased 0.59_1 dn_expand_PP() has security flaw allowing access to 1488 arbitrary data using crafted packet with out of range compression pointer. 1489 Patch by Dick Franks based on 0.59 code. 1490 1491Fix rt.cpan.org #27391 1492 dn_compress() produces corrupt packet for name containing empty label. 1493 1494Fix rt.cpan.org #26957 1495 dn_compress() croaks for name having label which exceeds 63 characters. 1496 Patch by Dick Franks truncates offending label. 1497 1498Feature check_soa test of NCACHE TTL 1499 Dick Franks supplied an improved version of check_soa script which 1500 performs a direct test of NCACHE TTL by looking up non-existent name and 1501 reporting value if it exceeds 86400. Test is skipped unless minimumTTL is 1502 above same threshold. Recent BIND implementations impose a ceiling on 1503 NCACHE TTLs internally, so a large minimumTTL value is unlikely to have 1504 damaging consequences at many sites. 1505 1506Fix rt.cpan.org #27285 1507 Break out of malformed packets with compression loops. 1508 Steffen Ullrich is acknowledged for patch and test code. 1509 1510Feature check_zone "alternate domain" and "exception file" flags 1511 Paul Archer supplied a patch for check_zone adding two new features. 1512 1513Feature Support for IPSECKEY RR 1514 Rudimentary IPSECKEY RR support added. 1515 1516Fix rt.cpan.org #25342 1517 HINFO would only accept its data fields within quotes. That has now 1518 been fixed to adhere to <character-string> by inheriting parsing functions 1519 from TXT. 1520 1521Fix rt.cpan.org #24631 / Feature IP address prefix notation 1522 Dick Franks supplied a cleaned up version of Question.pm. 1523 1524 Revised code deals with incomplete IPv6 address bug and accepts RFC4291 1525 address prefix notation. IPv4/prefix also supported for completeness. 1526 1527 This involved a minor change to the API for reverse IP lookup. Changing 1528 qtype to PTR is now performed for A and AAAA only. This allows queries 1529 for NS and SOA records at interior nodes to be specified using the address 1530 prefix. Type ANY queries now also produce the expected result. 1531 1532 Cleaned up TYPE/CLASS reversal code, exploiting fact that the intersection 1533 of the sets of class and type names contains only one member (ANY). 1534 1535 Minor cleanup of remaining code. 1536 1537 1538Fix rt.cpan.org #22019 1539 1540 Expunge trailing dots from RR->new_from_hash() FQDN arguments. 1541 Patch by Dick Franks. 1542 1543Fix Recursion and EDNS OPT record 1544 1545 The Recursive resolver process would add an OPT-RR with each recursion 1546 which causes FORMERRs with a number of authoritative servers. 1547 1548Feature SSHFP warn instead of die 1549 1550 We do not die if a not implemented fingerprint type value is read 1551 from the wire, instead we 'warn' and return undef. 1552 1553Feature NSEC3PARAM hook 1554 1555 A hook to load NSEC3PARAM when available has been added. 1556 WARNING: Both NSEC3 and NSEC3PARAM are configured with their 1557 experimental type codes. 1558 1559Feature rt r24525 1560 1561 Net::DNS::Resolver depended on Net::IP (2268 Kb) which depends on 1562 heavy module Math::BigInt (1780 Kb). Valery Studennikov suggested to 1563 ship Net::DNS::Resolver::Base with its own copies of ip_is_ipv[4|6] and 1564 supplied a patch with those functions stripped from Net::IP. 1565 1566 Note that the package still depends on Net::IP because 1567 Net::DNS::Nameserver and a few tests depend on it. 1568 1569Fix rt 22334 1570 Fixed "perl Makefile.PL --xs" behavior, patch by Tamas Palfalvi 1571 1572Fix rt 21752 and 24042 1573 Applied the patch supplied by Alexandr Ciornii to be able 1574 to compile on ActiveState perl . 1575 Slight modifications based on comments by nimnul 1576 1577 1578Fix rt 23961 1579 Randomized the ID on the queries. Thanks to "hjp" for reporting and 1580 suggesting a fix. 1581 1582 The randomization of the src port is supposed to be handled by the 1583 setting the source port to "0" (default). Overriding the default 1584 or using persistent sockets may be problematic. 1585 1586 Also see: 1587 http://www.potaroo.net/ietf/idref/draft-hubert-dns-anti-spoofing/ 1588 1589Fix 1590 Minor compile time warnings for netdns.c on Fedora Core. 1591 1592 1593 1594 1595*** 0.59 September 18, 2006 1596 1597 1598 1599Fix rt.cpan.org 20836, 20857, 20994, and 21402 1600 1601 These tickets all revolved around proper reverse mapping of IPv6 1602 addresses. 1603 1604 Acknowledgments to Dick Franks who has provided elegant solutions and 1605 cleaned a bit of code. 1606 1607 Note that directly calling Question->new() without arguments will 1608 cause the qclass,qtype to be IN, A instead of ANY, ANY. 1609 1610 Net::DNS::Resolver's search() method would always gracefully 1611 interpret a qname in the form of an IPv4 address. It would go out 1612 and do a PTR query in the reverse address tree. This behavior has 1613 also been applied to IPv6 addresses in their many shapes and 1614 forms. 1615 1616 This change did two things, 1) root zone not implicitly added to 1617 search list when looking up short name, 2) default domain appended 1618 to short name if DEFNAMES and not DNSRCH. 1619 1620 1621Fix rt.cpan.org 18113 1622 1623 Minor error due to unapplied part of patch fixed. 1624 1625Feature: Experimental NSEC3 hooks. 1626 1627 Added hook for future support of (experimental) NSEC3 support 1628 (NSEC3 having an experimental type code). 1629 1630 1631 1632 1633*** 0.58 July 4, 2006 1634 1635Feature: hooks for DLV support in Net::DNS::SEC 1636 1637 added hooks for DLV support which is/will be available in 1638 Net::DNS::SEC as of subversion version 592 (Tests are done against 1639 the subversion number, not against the perl release version) 1640 Net::DNS::SEC version 0.15 will have DLV support. 1641 1642Partly Fixed rt.cpan.org 18940 1643 1644 djhale noticed a number of error conditions under which the 1645 udp_connection in Nameserver dies. We now print a warning instead 1646 of dying. 1647 1648 1649Fix rt.cpan.org 18958 1650 1651 Fixed typebyname croak for SIGZERO. Acknowledgments to djhale. 1652 1653 1654Optimize rt.cpan.org 11931 1655 1656 Hanno Stock optimized the method to get the list of available 1657 interfaces in Win32. I have only done very rudimentary tests on 1658 my Windows XP system. 1659 1660Fix dependency on "CC" rt.cpan.org 19352 1661 1662 The Makefile.PL depended on availability of "cc" and would bail 1663 out on systems where gcc is exclusively available. Thanks to Rob 1664 Windsor for noticing and patching. 1665 1666Fix compressed dnames in NAPTR/SRV 1667 1668 Clayton O'Neill noted that the domain names in the NAPTR and 1669 SRV RRs rdata were subject to name compression which does not 1670 conform to specs. Also see RFC 2782 and 2915. 1671 1672 1673Fix rt.cpan.org 18897 1674 1675 Zero-length rdata in TXT fixed (Acknowledgments to Roy Arends) 1676 1677Fix rt.cpan.org 18785 1678 1679 SPF would not work unless the TXT RR was already loaded. 1680 SPF fully inherits TXT and loading of TXT.pm is therefore a 1681 prerequisite. 1682 1683 1684Fix rt.cpan.org 18713 1685 1686 Net::DNS::Resolver now deals gracefully with persistent sockets 1687 that got disconnected. It will first try to connect again to the 1688 socket and if that fails it will try to connect to the next 1689 available nameserver. tcp_timeout() is the parameter that 1690 determines how long to wait during a reconnect. 1691 1692Fix rt.cpan.org 18268 1693 1694 Added reference to RFC in croak message for label length > 63 in 1695 dn_comp(). 1696 1697Fix rt.cpan.org 18113 1698 1699 The inet6 tests contained another bug when online-tests were disabled. 1700 Klaus Heinz discovered and provided a patch. 1701 1702*** 0.57 February 24, 2006 1703 1704Fix rt.cpan.org 17783 1705 1706 The inet6 tests do not skip enough tests when ipv6 is not available. 1707 I did not catch this in my setup since IPv6 is available on all my 1708 machines. 1709 1710 Since this breaks automatic CPAN installs a new release is 1711 reasonable. 1712 1713 1714*** 0.56 February 20, 2006 1715 1716Fix rt.cpan.org 17694 1717 1718 Net::DNS::typesbyval() now confesses on undefined 1719 args. Acknowledgments to Dean Serenevy. 1720 1721Feature Implemented SPF (typecode 99). 1722 1723 The class completely inherits from Net::DNS::RR::TXT (the easiest 1724 RR to implement ever). 1725 1726Feature added rrsort() function. 1727 Feature was requested by Eric Hall in rt.cpan.org 13392 1728 1729 This was a little tricky as I think that the sort functions are in 1730 fact RR specific class attributes that should be accessed through 1731 class methods. This is difficult to implement. I do think I found a 1732 fairly clean manner. It does require a global variable in Net::DNS 1733 to store the functions and some trickery when the sorting functions 1734 are defined. 1735 1736 See Net::DNS and Net::DNS::RR documentation for details. 1737 1738 Defaults sorting functions are currently implemented in 1739 SRV: default sort: low priority to high priority and for 1740 same preference highest weight first. 1741 weight: sort all RRs based on weight, highest first 1742 priority: see default sort 1743 1744 MX: default sort: lowest preference first. 1745 preference: see default sort 1746 1747 NAPTR: default sort: lowest to highest order, for same order lowest 1748 preference first 1749 order: see default sort 1750 preference: order on preference, lowest first 1751 1752 PX: See MX 1753 RT: See MX 1754 1755 1756Fix rt.cpan.org 14653 and 14049 1757 TCP fallback after V6 socket failure 1758 1759 Reworked Net::DNS::Base::Nameserver::send_tcp() to fallback to IPv4 when 1760 possible. (change applied to SVN Revision 538). 1761 1762 1763Feature Cleanup duplicated code 1764 1765 axfr_send() and send_tcp() contained some duplicated code. I merged 1766 this in one "helper" method _create_tcp_socket() 1767 1768 1769 1770Fix AXFR persistent sockets colliding with query sockets. 1771 1772 I think that using the same persistent sockets for AXFR and 1773 'ordinary' queries could lead to race conditions. Better safe than 1774 sorry. For axfrs we create a different set of persistent sockets. 1775 1776 Note that this prevents performing a SOA query first and then using 1777 the same socket for the zone transfer itself(in Net::DNS these are 1778 different code paths). This behavior of SOA and transfer on the 1779 same socket-- seems to be suggested by 1035 section 4.2.2: 1780 1781 "In particular, the server should allow the SOA and AXFR request 1782 sequence (which begins a refresh operation) to be made on a 1783 single connection." 1784 1785 Obviously, on the client side this behavior is not mandatory. 1786 1787 1788Fix rt.cpan.org 17596 1789 1790 The fixes and features above also fixed the timeout problem reported by 1791 Paul Hoffman 1792 1793 1794Profiling 1795 1796 It turned out that each time we were calling 1797 Net::DNS::Resolver::Base::nameserver(); We were creating a 1798 resolver object. Now a resolver object is only called when a 1799 domain name is given as argument. 1800 1801 1802**** 0.55 December 14, 2005 1803 1804Fix Inconsistency in test 1805 1806 There was an inconsistency in the t/05-rr.t that got triggered by 1807 the release of Net::DNS::SEC version 0.13 (when installed). That 1808 has been fixed. 1809 1810Feature Net::DNS::Nameserver loop_once() 1811 1812 Uncommented the documentation of the loop_once() function and introduced 1813 get_open_tcp() that reports if there are any open TCP sockets (useful 1814 when using loop_once(). 1815 1816 loop_once() itself was introduced in version 0.53_02 1817 1818 1819Fix rt.cpan.org 16392 1820 1821 TCP Sockets stayed open even if not requested. This may cause the kernel 1822 to run out of TCP slots. 1823 1824 This bug is the reason for releasing version 0.55 shortly after 0.54. 1825 1826 Spotted and patched by Robert Felber. 1827 1828 1829*** 0.54 December 7, 2005 1830 1831 1832Fix rt.cpan.org 15947 1833 1834 Failure to bind a nameserver when specifying an IPv6 address. 1835 1836Fix rt.cpan.org 11931 1837 1838 Using Net-DNS 0.53 on Win XP, it is unable to retrieve the 1839 nameservers when the IP address of the interface is assigned by 1840 DHCP. This is due to the DHCP assigned IP address being stored in 1841 DhcpIPAddress rather than IPAddress (which is then 0.0.0.0). Adding 1842 a check of DhcpIPAddress existence and not being 0.0.0.0 fixes the 1843 problem. Applied the patch submitted by "orjan". 1844 1845Fix rt.cpan.org 15119 1846 1847 main_loop() consumed 100% of CPU, because of a bug that 1848 caused loop_once() to loop ad infinitum. 1849 1850Fix rt.cpan.org 15299 1851 1852 Defining multiple constants with 'use constant { BLA => 1, FOO =>2 }; 1853 is a backwards incompatible feature. Thanks to Ian White for spotting and 1854 fixing this. 1855 1856*** 0.53_02 Oct 18, 2005 1857 1858 1859 1860Fix rt.cpan.org 14046 1861 1862 RRSIGs verify and create failed for a number of RR types. The 1863 error message showed something like: 1864 Can't call method "dn_comp" on an undefined value 1865 This was caused by an omission in the _canonicalRdata() method 1866 in Net::DNS::RR that was inherited by all failing RR types. 1867 1868 Code was added to t/05-rr.t that will test signature creation 1869 if Net::DNS::SEC is available and can be loaded. 1870 1871 1872Feature async nameserver behaviour. 1873 1874 In rt.cpan.org 14622 Robert Stone suggested: 1875 1876 The fact that it needs to take over the main running thread 1877 limits its audience. Since many daemon programs are already 1878 driven by a top level select loop, it seems useful to provide an 1879 API for the user to integrate Net::DNS::Nameserver processing to 1880 their own select loop. 1881 1882 He also supplied example code for which he is hereby acknowledged. 1883 The patch was not used because simultaneously Robert Martin-Legène 1884 supplied a patch to Nameservers.pm that allowed the same async 1885 functionality through the use of loop_once method. Robert M-L's 1886 code also carefully manages the TCP sockets, so that they can 1887 deal with AXFRs. 1888 1889 Robert S. has been so kind to review Robert M-L's code and is hereby 1890 kindly acknowledged. 1891 1892 NB. Since the code may be subject to change the documentation of the 1893 loop_once method has been commented out. 1894 1895 1896Fix bgsend srcaddr for IPv6 Achim Adam previously noticed that the 1897 source address wildard "::" works provides better portability than 1898 "0". We forgot to fix the bgsend() part earlier. 1899 1900 1901 1902Fix rt.cpan.org 14624 1903 1904 Fixed documentation of Nameserver.pm Replyhandler and fixed a bug 1905 that prevented the peerhost to be set. 1906 1907Fix rt.cpan.org 14700 1908 1909 mistyped _name2wire helper function name. Noticed and patched by Simon 1910 Josefsson. 1911 1912Fix rt.cpan.org 13944 1913 1914 Terminating dot not printed when printing SRV record. The SRV dname should 1915 be printed as FQDN, that is, including the dot at the end. 1916 Acknowledgments Jakob Schlyter. 1917 1918 While adding the "dot" I noticed that in the fileformat parsing code 1919 there might be theoretical corner cases where rdata elements are not 1920 properly read. The code needs an audit for this. 1921 1922Fix srcport for socket creation in bgsend method 1923 1924 Lionel Cons noted and patched a small bug in bgsocket creation code for 1925 lib/Net/DNS/Resolver/Base.pm 1926 1927 1928*** 0.53_01 July 31, 2005 1929 1930Fix rt.cpan.org 13809 1931 1932 "Phar" noted that the peerhost is never passed to the make_reply function 1933 in nameserver.pm and provided the trivial patch. 1934 1935Fix rt.cpan.org 13922 1936 1937 Fixed a problem with persistent TCP sockets which was introduced 1938 because of using the address family as an index to the array of 1939 persistent sockets. 1940 1941 Used AF_UNSPEC for the array index for the TCP socket; just to choose 1942 a number. The key to the persistent sockets is the remote nameserver:port 1943 combination. 1944 1945 Acknowledgments to Mike Mitchell for reporting the bug and testing 1946 the solution. 1947 1948Feat t/01-resolve will not try to do tests from private IP space; hopefully 1949 that cuts down on the number of false positives. 1950 1951 1952*** 0.53 July 22, 2005 1953 1954Fix rt.cpan.org 13669 1955 1956 Danny Thomas provided a somewhat more elegant line of code for the 1957 typesbyval regexp. 1958 1959Fix rt.cpan.org 13534 1960 1961 Net::DNS::Resolver::Recurse would bail out when it happened to run 1962 into lame servers. 1963 1964Doc rt.cpan.org 13387 1965 1966 Documented the BUG caught by Robert Martin-Legène 1967 Net::DNS::Nameserver running with multiple IP interfaces might 1968 violate section 4 of RFC2181. 1969 1970 1971Fix IPv6 on AIX 1972 1973 Binding to the local interface did not work when local address was 1974 specified as "0" instead of "::". The problem was identified, 1975 reported and fixed by Achim Adam. 1976 1977 1978 1979Fix rt.cpan.org 13232 1980 One uncaught AF_INET6. 1981 1982*** 0.52 July 1, 2005 1983 1984Feature 1985 Net::DNS::RR::OPT 1986 1987 added the the size(), do(),set_do() and clear_do() methods. 1988 1989 1990 1991*** 0.51_02 June 22, 2005 1992 1993 1994Fix rt.cpan.org 13297 1995 1996 Persistent_udp option broken starting in version 0.50. 1997 This was fixed, based on a patch by Sidney Markowitz. 1998 Guido van Rooij independently submitted a similar patch. 1999 2000Fix rt.cpan.org 13289 2001 2002 Was caused by a typo. 2003 2004Fix rt.cpan.org 13243 and 13191 2005 2006 The escaped characters test failed on some system because the 2007 the systems dn_expand instead of the supplied dn_expand 2008 was used after the makemaker magic linked DNS.xs. 2009 2010 This was fixed by renaming the dn_expand that comes with the 2011 library to netdns_dn_expand. 2012 2013 2014Fix rt.cpan.org 13239: 2015 2016 When queries are refused the resolver would not take the next 2017 nameserver on the nameserver list for its next try but skip one. 2018 2019 I was also made aware that the "use byte" pragma is incompatible 2020 with pre 5.06 perl. 2021 2022 BEGIN { 2023 eval { require bytes; } 2024 } 2025 2026 2027 It should be noted that for perl versions < 5.006 I had to disable 2028 the escaped character test. Don't expect domain names with labels 2029 that contain anything else than host names to work for versions 2030 earlier than perl 5.6.0. 2031 2032 Thanks to Vladimir Kotal for the assistance in testing the code on 2033 his system and the members of the NL-PM list for suggestions and 2034 education. 2035 2036 2037*** 0.51_01 June 14, 2005 2038 2039Fix rt.cpan.org 13232: 2040 2041 Replaced IF_INET6 by IF_INET6() so that use strict subs does not 2042 complain in the absence of a definition of IF_INET6 in earlier 2043 versions perl that did not have IF_INET6 defined in Socket.pm 2044 The problem is similar to the problem described in: 2045 http://lists.ee.ethz.ch/mrtg-developers/msg00198.html 2046 2047 2048 2049*** 0.51 June 10, 2005 2050 2051Fix rt.cpan.org 13184: 2052 2053 Removed a 'stale' debug line (oops). A "stale" debug line may 2054 cause clutter in log files which may cause false positives on log 2055 analysis tools. Harmful enough to warrant a quick patch. 2056 2057 2058*** 0.50 June 8, 2005 2059 2060No changes with respect to 0.49_03. 2061 2062 2063*** 0.49_03 June 1, 2005 (Version 0.50 release candidate 3) 2064 2065Fix: 2066 Concatenation of scalars caused modification of data because of 2067 Perl's habit to treat scalars as utf characters instead of bytes. 2068 Inserted use bytes pragma throughout the code base. DNS is done 2069 in octets. 2070 2071Feature: 2072 Added "ignqrid" as an attribute to the Resolver. 2073 2074 use as: 2075 ok (my $res=Net::DNS::Resolver->new(nameservers => ['127.0.0.1'], 2076 port => 5354, 2077 recurse => 0, 2078 igntc => 1, 2079 ignqrid => 1, 2080 ), 2081 2082 When the attribute is set to a non-zero value replies with the 2083 qr bit clear and replies with non-matching query ids are 2084 happily accepted. This opens the possibility to accept spoofed 2085 answers. YOU CAN BURN YOURSELF WITH THIS FEATURE. 2086 2087 It is set to 0 per default and remains, except for this changes file 2088 an undocumented feature. 2089 2090 2091*** 0.49_02 May 28, 2005 (Version 0.50 release candidate 2) 2092 2093Fix: Smoking Gun tests for non-cygwin Win32. 2094 Makefile.PL failed to produce a proper Makefile under win32. 2095 (e.g. www,nntp.perl.org/group/perl.cpan.testers/210570) 2096 I worked around that by moving the library into the base 2097 directory of the distribution as the "subdir" section 2098 seemed to be all funny. 2099 2100Fix: rt.cpan.org#11931 (the off-topic part) 2101 2102 Sidney Markowitz spotted an awkward condition that rarely happens but is 2103 significant enough to be dealt with. 2104 2105 In the send_udp method there are two loops: one over the nameservers 2106 and one that waits for the sockets to come forward with data. 2107 2108 That second loop will sometimes timeout and then be entered with a 2109 repeated query to the same nameserver. It occasionally happens that the 2110 old packet arrives on the socket. That packet is discarded but the 2111 loop does not return to the loop to wait for the remainder of the 2112 timeout period for an answer on the second query, that may still arrive. 2113 This has now been fixed. 2114 2115 Thanks to Sidney for the assessment of the problem and the fix. 2116 2117 2118 2119*** 0.49_01 (Version 0.50 release candidate 1) 2120 2121Fix: Makefile.PL: Minor tweak to recognize Mac OS X 10.4 not so relevant 2122 since netdnslib is distributed with the code. 2123 2124Feature: Calling the Net::DNS::Resolver::dnssec method with a non-zero 2125 argument will set the udppacketsize to 2048. The method will 2126 also carp a warning if you pass a non-zero argument when 2127 Net::DNS::SEC is not installed. 2128 2129 2130Feature: IPv6 transport support 2131 2132 IPv6 transport has been added to the resolver and to the 2133 nameserver code. 2134 2135 To use IPv6 please make sure that you have IO::Socket::INET6 version 2136 2.01 or later installed. 2137 2138 If IPv6 transport is available Net::DNS::Resolver::Recurse will make 2139 use of it (picking randomly between IPv4 and IPv6 transport) use 2140 the force_v4() method to only force IPv4. 2141 2142 2143 2144Feature: Binary characters in labels 2145 2146 RFC 1035 3.1: 2147 2148 Domain names in messages are expressed in terms of a sequence of 2149 labels. Each label is represented as a one octet length field 2150 followed by that number of octets. Since every domain name ends 2151 with the null label of the root, a domain name is terminated by a 2152 length byte of zero. The high order two bits of every length octet 2153 must be zero, and the remaining six bits of the length field limit 2154 the label to 63 octets or less. 2155 2156 Unfortunately dname attributes are stored strings throughout 2157 Net::DNS. (With hindsight dnames should have had their own class 2158 in which one could have preserved the wire format.). 2159 2160 To be able to represent all octets that are allowed in domain 2161 names I took the approach to use the "presentation format" for 2162 the attributes. This presentation format is defined in RFC 1035 2163 5.1. 2164 2165 I added code to parse presentation format domain names that has 2166 escaped data such as \ddd and \X (where X is not a number) to 2167 wireformat and vice verse. In the conversion from wire format to 2168 presentation format the characters that have special meaning in a 2169 zone file are escaped (so that they can be cut-n-pasted without 2170 pain). 2171 2172 These are " (0x22), $ (0x24), (0x28), ) (0x29), . (0x2e) , ; 2173 (0x3b), @ (ox40) and \ (0x5c). The number between brackets 2174 representing the ascii code in hex. 2175 2176 Note that wherever a name occurs as a string in Net::DNS it is 2177 now in presentation format. 2178 2179 For those that dealt with 'hostnames' (subset of all possible 2180 domain names) this will be a completely transparent change. 2181 2182 Details: 2183 2184 I added netdnslib which contains Net::DNS's own dn_expand. Its 2185 implemented in C and the source is a hodgepodge of Berkeley based 2186 code and snippets from ISC's bind9 distribution. The behavior, in 2187 terms of which chars are escaped, is similar to bind9. 2188 2189 There are some functions added to DNS.pm that do conversion from 2190 presentation and wire format and back. They should only be used 2191 internally (although they live in EXPORT_OK.) 2192 2193 2194 For esoteric test cases see t/11-escapedchars.t. 2195 2196Fix: rt.cpan.org #11931 2197 Applied the patch suggested by "Sidney". It is a practical workaround 2198 that may not be portable to all versions of the OS from Redmond. See 2199 the ticket for details. 2200 2201 2202 2203*** 0.49 March 29, 2005 2204 2205 No changes wrt 0.48_03. 2206 2207 2208*** 0.48_03 March 22, 2005 (Version 0.49 release candidate 3) 2209 2210Fix: Only remove leading zeros in the regular expressions for typesbyval 2211 and classbyval methods. (patch by Ronald v.d. Pol) 2212 2213Fix: Properly return an empty array in the authority, additional and answer 2214 methods (patch by Ronald v.d. Pol) 2215 2216 2217Fix: rt.cpan.org #11930 2218 Incorrect searchlist duplication removal in Net::DNS::Resolver::Win32 2219 Patch courtesy Risto Kankkunen. 2220 2221Problem: rt.cpan.org #11931 2222 2223 Win32.pm used the DNSRegisteredAdapters registry key to determine which 2224 local forwarders to send queries to. This is arguably the wrong key as it 2225 is used to identify the server which to send dynamic updates to. 2226 2227 A real fix for determining the set of nameservers to query has not been 2228 implemented. For details see 2229 https://rt.cpan.org/Ticket/Display.html?id=11931 2230 2231 2232*** 0.48_02 March 14, 2005 (Version 0.49 release candidate 2) 2233 2234Fix: Bug report by Bernhard Schmidt (concerning a bug on the IPv6 branch). 2235 2236 The bug caused dname compression to fail and to create 2237 compression pointers causing loops. 2238 2239*** 0.48_01 March 7, 2005 (Version 0.49 release candidate 1) 2240 2241Fix: rt.cpan.org #8882 2242 No redundant lookups on SERVFAIL response 2243 and #6149 2244 Does not search multiple DNS servers 2245 2246 Net::DNS::Resolver will now use the other nameservers in the 2247 list if the RCODE of the answer is not NOERROR (0) or NXDOMAIN 2248 (3). When send() exhausted the last nameserver from the it will 2249 return the answer that was received from the last nameserver 2250 that responded with an RCODE. 2251 2252 The errorstring will be set to "RCODE: <rcode from last packet>" 2253 2254 2255Fix: rt.cpan.org #8803 2256 TXT records don't work with semicolons 2257 2258 Since we are expecting "zonefile" presentation at input 2259 a comment will need to be escaped ( \; ). 2260 2261 It could be argued that this is a to strict interpretation of 2262 1035 section 5.1. 2263 2264 While working on this I discovered there are more problems with 2265 TXT RRs. Eg; 0100 is a perfectly legal character string that 2266 should be represented as "\000" in a zonefile. Net::DNS does 2267 pass character strings with "non-ASCII" chars from the wire 2268 to the char_str_lst array but the print functions do not 2269 properly escape them when printing. 2270 2271 Properly dealing with zonefile presentation format and binary 2272 data is still to be done. 2273 2274 2275Fix: rt.cpan.org Ticket #8483 2276 eval tests for DNS::RR::SIG fail when using a die handler 2277 (Thanks Sebastiaan Hoogeveen) 2278 2279 Patch applied. 2280 2281Fix: rt.cpan.org: Ticket #8608 2282 Net::DNS::Packet->data makes incorrect assumptions 2283 2284 Implemented the "pop" method for the question. 2285 Since having a qcount that is not 1 is somewhat rare (it appears 2286 in TCP AXFR streams) the ability to pop the answer from a question 2287 has not been documented in the "pod" 2288 2289 Also fixed the incorrect assumption. 2290 2291 (Thanks Bruce Campbell.) 2292 2293 2294Fix: Ticket #11106 2295 Incorrect instructions in README 2296 2297 Corrected in the README and in Makefile.PL 2298 2299 2300Olaf Kolkman took over maintenance responsibility from Chris 2301Reinhardt. This involved importing the code into another subversion 2302repository. I made sure the numbers jumped, but I did not have access 2303to the "original" subversion repository so I lost some of the history. 2304 2305 2306*** 0.48 Aug 12, 2004 2307 2308 2309Net::DNS is now stored in a subversion repository, replacing cvs. 2310As such the submodule version numbers have taken another big jump. 2311Luckily those numbers don't matter as long as they work. 2312 2313Fixed a bug with Unknown RR types that broke zone signing [Olaf]. 2314 2315Added callback support to Net::DNS::Resolver::Recurse. The 2316demo/trace_dns.pl script demonstrates this. 2317 2318Added a note regarding answers with an empty answer section to the 2319Net::DNS::Resolver::search() and Net::DNS::Resolver::query() 2320documentation. 2321 2322The copyright notice for Net::DNS::RR::SSHFP was incorrect. That file 2323is Copyright (c) 2004 RIPE NCC, Olaf Kolkman. 2324 2325*** 0.47_01 May 6, 2004 2326 2327** NOTICE ** 2328 2329RR subclasses no longer pull in parts of Net::DNS; Net::DNS is assumed 2330to be up and running when the subclass is compiled. If you were using a 2331RR subclass directly, this may break your code. It was never documented 2332that you could use them directly however, so hopefully you never did... 2333 2334Fixed bug where SRV records with a priority of 0 did not function 2335correctly. CPAN #6214 2336 2337Calls to various constants where using the &NAME syntax, which is not 2338inlined. Changed to NAME(). 2339 2340Added SSHFP support. [Olaf] 2341 2342CERT fixes. [Olaf] 2343 2344*** 0.47 April 1, 2004 2345 2346safe_push() is back in Net::DNS::Packet, due to the excellent debate 2347skills of Luis E Munoz. However, the name safe_push() is deprecated, 2348use the new name unique_push() instead. 2349 2350Fixed a bug in Net::DNS::Nameserver which caused the class to build 2351packets incorrectly in some cases. [Ask Bjorn Hansen] 2352 2353Error message cleanups in Net::DNS::typesbyname() 2354and Net::DNS::typesbyval() [Ask Bjorn Hansen] 2355 2356Net::DNS::RR::new_from_hash() now works with unknown RR types [Olaf]. 2357 2358*** 0.46 February 21, 2004 2359 2360IPv6 reverse lookups can now be done with Net::DNS::Resolver::search(), 2361as well as with query(). 2362 2363Hostnames can now be used in the 'nameservers' argument to 2364Net::DNS::Resolver->new() 2365 2366*** 0.45_01 February 9, 2004 2367 2368Net::DNS now uses UDP on windows. 2369 2370Removed Net::DNS::Select from the package. IO::Select appears to work 2371on windows just fine. 2372 2373Fixed a bug that caused MXes with a preference of 0 to function 2374incorrectly, reported by Dick Franks. 2375 2376Net::DNS had a few problems running under taint mode, especially under 2377cygwin. These issues have been fixed. More issues with taint mode may 2378lie undiscovered. 2379 2380Applied Matthew Darwin's patch added support for IPv6 reverse lookups to 2381Net::DNS::Resolver::query. 2382 2383*** 0.45 January 8, 2004 2384 2385No changes from 0.44_02. 2386 2387** 0.44_02 January 3, 2004 2388 2389The XS detection code was broken. We actually use the XS bits now. 2390 2391Major cleanups/optimizations of the various RR subclasses. This release 2392of Net::DNS is over twice as fast at parsing dns packets as 0.44. 2393 2394** NOTICE ** 2395 2396$rr->rdatastr no longer returns '; no data' if the RR record has no 2397data. This happens in $rr->string now. 2398 2399Net::DNS::Packet::safe_push() no longer exists. The method is now only 2400available from Net::DNS::Update objects. 2401 2402 2403** 0.44_01 January 3, 2004 2404 2405Net::DNS::RR objects were not playing nice with Storable, this caused 2406the axfr demo script to fail. Thanks to Joe Dial for the report. 2407 2408** NOTICE ** 2409This may cause RR objects that are already serialize to not deserialize 2410correctly. 2411 2412Reply handlers in Net::DNS::Nameserver are now passed the query object. 2413 2414Fixed a nasty bug in Nameserver.pm related to the qr bit. As Olaf 2415explained: 2416 2417 Replies are sent if the query has its "qr" bit set. The "qr" bit is an 2418 indication that the packet is sent as a response to a query. Since 2419 there are more implementations that suffer from this bug one can cause 2420 all kinds of nasty ping-pong loops by spoofing the initial packet or 2421 have an infinite query loop by spoofing a query from the localhost:53 2422 address. 2423 2424Various Win32/Cygwin cleanups from Sidney Markowitz. 2425 2426 2427*** 0.44 December 12, 2003 2428 2429 The Wrath of CPAN Release. 2430 2431CPAN.pm doesn't understand the nature of revision numbers. 1.10 is 2432newer than 1.9; but CPAN.pm treats them as floats. This is bad. 2433All the internal version numbers in Net::DNS have been bumped to 24342.100 in order to fix this. 2435 2436No actual code changes in this release. 2437 2438 2439*** 0.43 December 11, 2003 2440 2441Added warning of deprecation of Net::DNS::Packet::safe_push. This will 2442move into Net::DNS::Update, as Net::DNS::Update is now a proper subclass 2443of Net::DNS::Packet. 2444 2445** 0.42_02 December 11, 2003 2446 2447Fixed a long standing bug with zone transfers in the "many-answers" format. 2448CPAN #1903. 2449 2450Added the '--online-tests' flag to Makefile.PL. This activates the online 2451tests without asking the user interactively. "--no-online-tests" turns 2452the tests off. 2453 2454Cleaned up Makefile.PL a little. The "--pm" flag is now deprecated, use 2455"--no-xs" instead. 2456 2457Added support for unknown RR types (rfc3597). Note for developers: the 2458typesbyname, typesbyval, classesbyname and classesbyval hashes should 2459not be used directly, use the same named wrapper functions 2460instead. [Olaf Kolkman] 2461 2462Added two hashes for administrative use; they store which types are 2463qtypes and metatypes (rfc2929). [Olaf Kolkman] 2464 2465** 0.42_01 November 30, 2003 2466 2467Major work to get Net::DNS functioning properly on Cygwin by Sidney 2468Markowitz. 2469 2470Fixed a bug in Net::DNS::Nameserver's error handling. CPAN #4195 2471 2472*** 0.42 October 26, 2003 2473 2474Fixed compilation problems on panther (Mac OS 10.3). 2475 2476Fixed a bug in Net::DNS::Resolver::Recurse which allowed an endless 2477loop to arise in certain situations. (cpan #3969, patch 2478by Rob Brown) 2479 2480Applied Mike Mitchell's patch implementing a persistent UDP socket. 2481See the Net::DNS::Resolver documentation for details. 2482 2483*** 0.41 October 3, 2003 2484 2485Added some documentation about modifying the behavior of Net::DNS::Resolver. 2486 2487** 0.40_01 September 26, 2003 2488 2489Fixed some uninitialized value warnings when running under windows. 2490 2491Fixed a bug in the test suite that caused 00-version.t to fail with 2492certain versions of ExtUtils::MakeMaker. Thanks to David James, Jos 2493Boumans and others for reporting it. 2494 2495Reply handlers in Net::DNS::Nameserver are now passed the peerhost. 2496(Assen Totin <assen@online.bg>) 2497 2498Reply handlers in Net::DNS::Nameserver can now tweak the header bits 2499that the nameserver returns. [Olaf] 2500 2501The AD header bit is now documented, and twiddlable. [Olaf] 2502 2503The change log has been trimmed, entries for versions older than 0.21 2504have been removed. 2505 2506** NOTICE ** 2507Net::DNS::Resolver::axfr_old() has been removed from the package. 2508An exception will be thrown if you attempt to use this method. Use 2509axfr() or axfr_start() instead. 2510 2511*** 0.40 September 1, 2003 2512 2513Various POD tweaks. 2514 2515** 0.39_02 August 28, 2003 2516 2517Net-DNS-SEC updates, seems that IETF has been busy redefining DNSSEC. 2518[Olaf] 2519 2520Added version to all the modules in the distribution. 2521 2522** 0.39_01 August 12 2003 2523 2524Added a META.yaml. The crystal ball says an upgrade to Module::Install may 2525be coming soon. 2526 2527Changed how the versions of the various submodules were set. The CPAN 2528indexer cannot execute "$VERSION = $Net::DNS::VERSION". The single line 2529with the $VERSION assignment is pulled out of the file and eval'ed; at 2530that time, Net::DNS is not loaded. The submodules now pull their version 2531numbers out of CVS. 2532 2533*** 0.39 August 7 2003 2534 2535Fixed a bug on Win32 where some machines separated lists with commas, 2536not whitespace. Thanks to Jim White for pointing it out. 2537 2538** 0.38_02 July 29 2003 2539 2540Reworked the POD for Net::DNS::Resolver. 2541 2542When parsing resolver configuration files, IPv6 addresses are now skipped, 2543as Net::DNS does not yet have IPv6 support. 2544 2545** 0.38_01 Jun 22 2003 2546 2547Broke Net::DNS::Resolver into separate classes. UNIX and Win32 2548classes are currently implemented. Many of the globals in 2549Net::DNS::Resolver no longer exist. They were never documented 2550so you never used them.... right? 2551 2552Options to Net::DNS::Resolver->new() are now supported, including 2553using your own configuration file. See the Net::DNS::Resolver man 2554page for details. 2555 2556Tweaked Net::DNS::RR::TXT to fail more gracefully when the quotes 2557in the data section are not balanced. 2558 2559Add more tests (of course). 2560 2561Moved next_id() from Resolver.pm to Header.pm (which is where it is 2562used). 2563 2564Net::DNS::Select now uses $^O directly, this means that the second 2565argument to Net::DNS::Select::new() (the OS) is now ignored. 2566 2567*** 0.38 Jun 5 2003 2568 2569Various buglets fixed in the new Makefile.PL. 2570 2571Use Dynaloader instead of XSLoader. Turns out that XSLoader is only 2572in more recent perls. 2573 2574Added deprecation warning to Net::DNS::Resolver::axfr_old(). 2575 2576HP-UX fixes [cpan #2710], I don't have the name of the reporter/patcher. 2577 2578*** 0.37 May 28 2003 2579 2580Renamed the test C file to compile.c, test.c was confusing the 'make test' 2581target. 2582 2583*** 0.36 May 28 2003 2584 2585Removed Rob Brown's RPM stuff. Something odd happened in the 0.35 tarball 2586and at the moment I don't have the time to investigate. 2587 2588*** 0.35 May 26 2003 2589 2590POD fixes, added tests for POD. 2591 2592*** 0.34_03 May 22 2003 2593 2594Reworked Makefile.PL to try and detect if you have a working C compiler. 2595 2596Added '--pm' and '--xs' command line options to Makefile.PL 2597 2598Fixed linking problem on linux. 2599 2600Tie::DNSHash removed from the package, see Tie::DNS from CPAN for a more 2601complete implementation of a DNS hash. 2602 2603*** 0.34_02 May 21 2003 2604 2605Net::DNS::Packet::dn_expand is now implemented using the function of the 2606same name from libresolv. This method of decompressing names is around 2607twice as fast as the perl implementation. 2608 2609Applied Jan Dubois's patch to fix nameserver lookup on Windows 2000/95/98/ME. 2610 2611*** 0.34 6 Mar 2003 2612 2613Applied David Carmean's patch for handling more than one string in a 2614TXT RR's RDATA section. 2615 2616Applied Net::DNS::Resolver::Recurse bug fixes from Rob Brown. 2617 2618Added check of the answer's rcode in Net::DNS::Resolver::axfr_next(). 2619 2620Applied Kenneth Olving <kenneth.olving@eoncompany.com> Windows changes. 2621 2622Applied patch from Dan Sully (daniel@electricrain.com) allowing multiple 2623questions to be part of a DNS packet. 2624 2625*** 0.33 8 Jan 2003 2626 2627Fixed 00-load.t to skip the Net::DNS::SEC modules. The test suite 2628should now pass if you have Net::DNS::SEC installed. 2629 2630Fixed the regular expression in RR.pm to comply with the RFCs, turns 2631out we were _too_ paranoid. [Olaf] 2632 2633 2634*** 0.32 5 Jan 2003 2635 2636Various cleanups for perl 5.004. Thanks to nathan@anderson-net.com 2637([cpan #1847]) 2638 2639Applied Olaf's SIG patch (thanks as always). 2640 2641Win32 now looks at the environment variables when building the 2642configuration defaults. Thanks to net-dns-bug@oak-wood.co.uk 2643(That's the only name I have... [cpan #1819]) 2644 2645Added Rob Brown's Net::DNS::Resolver::Recurse module. 2646 2647 2648*** 0.31 17 Nov 2002 2649 2650Applied Olaf's patch for an initialization bug in OPT.pm 2651 2652Applied Rob Brown's patch for udp timeouts. 2653 2654Added stuff from Rob Brown for making RPM creation easier. 2655 2656Fixed a typo in FAQ.pod that was making apropos and whatis 2657grumpy. Thanks to Florian Hinzmann for pointing it out and a patch. 2658 2659 2660*** 0.30 7 Nov 2002 2661 2662Applied Andrew Tridgell's (tridge@samba.org) patch for TKEY support. 2663 2664Added Net::DNS::Packet->safe_push() to allow for automatically 2665checking for duplicate RRs being pushed into a packet. Inspired by Luis 2666Munoz. 2667 2668Added more tests. 2669 2670 2671*** 0.29 2 Oct 2002 2672 2673Fixed $_ from creeping out of scope in Resolver.pm. Thanks to 2674Ilya Martynov for finding the problem and the patch to fix it. 2675 2676Fixed divide by zero bug there is no usable network interface(s). 2677Thanks to twilliams@tfcci.com, misiek@pld.ORG.PL (and one other 2678person that I can't seem to find the address of) for reports. 2679 2680 2681*** 0.28 20 Aug 2002 2682 2683Fixed a bug in the new AUTOLOAD routines that made it impossible to set 2684attributes to '0'. 2685 2686Fixed a bug in the RR patch that broke many updates. 2687 2688 2689*** 0.27 15 Aug 2002 2690 2691Added (untested) support for perl 5.004. 2692 2693We now allow whitespace at the beginning of a RR. 2694 2695Fixed an issue that gave Net::DNS::SEC problems, %Net::DNS::RR::RR is now 2696in a scope that the Net::DNS::SEC hook can see it from. 2697 2698Fixed SRV records. 2699 2700Fixed debug message in Net::DNS::Resolver::bgread(). 2701 2702 2703*** 0.26 5 Aug 2002 2704 2705Fixed various bugs in the test suite. 2706 2707Fixed warning in Net::DNS::RR::AUTOLOAD with perl 5.005. 2708 2709--- 2710Olaf Kolkman <olaf@net-dns.org> 2711Chris Reinhardt 2712Michael Fuhr 2713 2714 2715