Net-DNS
view release on metacpan or search on metacpan
directory of the distribution as the "subdir" section
seemed to be all funny.
Fix: rt.cpan.org#11931 (the off-topic part)
Sidney Markowitz spotted an awkward condition that rarely happens but is
significant enough to be dealt with.
In the send_udp method there are two loops: one over the nameservers
and one that waits for the sockets to come forward with data.
That second loop will sometimes timeout and then be entered with a
repeated query to the same nameserver. It occasionally happens that the
old packet arrives on the socket. That packet is discarded but the
loop does not return to the loop to wait for the remainder of the
timeout period for an answer on the second query, that may still arrive.
This has now been fixed.
Thanks to Sidney for the assessment of the problem and the fix.
*** 0.49_01 (Version 0.50 release candidate 1)
Fix: Makefile.PL: Minor tweak to recognize Mac OS X 10.4 not so relevant
since netdnslib is distributed with the code.
Feature: Calling the Net::DNS::Resolver::dnssec method with a non-zero
argument will set the udppacketsize to 2048. The method will
also carp a warning if you pass a non-zero argument when
Net::DNS::SEC is not installed.
Feature: IPv6 transport support
IPv6 transport has been added to the resolver and to the
nameserver code.
To use IPv6 please make sure that you have IO::Socket::INET6 version
2.01 or later installed.
If IPv6 transport is available Net::DNS::Resolver::Recurse will make
use of it (picking randomly between IPv4 and IPv6 transport) use
the force_v4() method to only force IPv4.
Feature: Binary characters in labels
RFC 1035 3.1:
Domain names in messages are expressed in terms of a sequence of
labels. Each label is represented as a one octet length field
followed by that number of octets. Since every domain name ends
with the null label of the root, a domain name is terminated by a
length byte of zero. The high order two bits of every length octet
must be zero, and the remaining six bits of the length field limit
the label to 63 octets or less.
Unfortunately dname attributes are stored strings throughout
Net::DNS. (With hindsight dnames should have had their own class
in which one could have preserved the wire format.).
To be able to represent all octets that are allowed in domain
names I took the approach to use the "presentation format" for
the attributes. This presentation format is defined in RFC 1035
5.1.
I added code to parse presentation format domain names that has
escaped data such as \ddd and \X (where X is not a number) to
wireformat and vice verse. In the conversion from wire format to
presentation format the characters that have special meaning in a
zone file are escaped (so that they can be cut-n-pasted without
pain).
These are " (0x22), $ (0x24), (0x28), ) (0x29), . (0x2e) , ;
(0x3b), @ (ox40) and \ (0x5c). The number between brackets
representing the ascii code in hex.
Note that wherever a name occurs as a string in Net::DNS it is
now in presentation format.
For those that dealt with 'hostnames' (subset of all possible
domain names) this will be a completely transparent change.
Details:
I added netdnslib which contains Net::DNS's own dn_expand. Its
implemented in C and the source is a hodgepodge of Berkeley based
code and snippets from ISC's bind9 distribution. The behavior, in
terms of which chars are escaped, is similar to bind9.
There are some functions added to DNS.pm that do conversion from
presentation and wire format and back. They should only be used
internally (although they live in EXPORT_OK.)
For esoteric test cases see t/11-escapedchars.t.
Fix: rt.cpan.org #11931
Applied the patch suggested by "Sidney". It is a practical workaround
that may not be portable to all versions of the OS from Redmond. See
the ticket for details.
*** 0.49 March 29, 2005
No changes wrt 0.48_03.
*** 0.48_03 March 22, 2005 (Version 0.49 release candidate 3)
Fix: Only remove leading zeros in the regular expressions for typesbyval
and classbyval methods. (patch by Ronald v.d. Pol)
Fix: Properly return an empty array in the authority, additional and answer
methods (patch by Ronald v.d. Pol)
Fix: rt.cpan.org #11930
( run in 1.191 second using v1.01-cache-2.11-cpan-71847e10f99 )