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