d01d93f3dd
Pkgsrc changes: - Removed hacks.mk. Net::DNS should work on Mac OS 10.4 withouth this workaround. - The package has two options now: "inet6" and "online-tests". - p5-Net-DNS requires an additional package, p5-Net-IP. Relevant changes since version 0.49: ==================================== - many bug fixes (see Changes and rt.cpan.org) Feature Net::DNS::Nameserver loop_once() Uncommented the documentation of the loop_once() function and introduced get_open_tcp() that reports if there are any open TCP sockets (useful when using loop_once(). loop_once() itself was introduced in version 0.53_02 Feature async nameserver behaviour. Fix IPv6 on AIX Binding to the local interface did not work when local address was specified as "0" instead of "::". The problem was identified, reported and fixed by Achim Adam. Feature Net::DNS::RR::OPT added the the size(), do(),set_do() and clear_do() methods. Feature: Added "ignqrid" as an attribute to the Resolver. use as: ok (my $res=Net::DNS::Resolver->new(nameservers => ['127.0.0.1'], port => 5354, recurse => 0, igntc => 1, ignqrid => 1, ), When the attribute is set to a non-zero value replies with the qr bit clear and replies with non-matching query ids are happily accepted. This opens the possibility to accept spoofed answers. YOU CAN BURN YOURSELF WITH THIS FEATURE. It is set to 0 per default and remains, except for this changes file an undocumented feature. 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. Unfortunatelly 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 escpaped 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 dealth with 'hostnames' (subset of all possible domain names) this will be a completely transparent change. Details: I added netdnslib wich contains Net::DNS's own dn_expand. Its implemented in C and the source is a hodgepodge of Berkeley based code and sniplets from ISC's bind9 distribution. The behavior, in terms of which chars are escaped, is similare 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 esotheric test cases see t/11-escapedchars.t.
15 lines
680 B
Text
15 lines
680 B
Text
Net::DNS is a Perl interface to the DNS resolver. It allows the
|
|
programmer to perform any type of DNS query from a Perl script.
|
|
For details and examples, please read the Net::DNS documentation page
|
|
('perldoc Net::DNS')
|
|
|
|
Features include a simple nameserver (Net::DNS::Nameserver), dynamic
|
|
DNS updates, signed queries (TSIG), support for DNAME resource records
|
|
and IPv6.
|
|
|
|
The author invites feedback on Net::DNS, especially on new features
|
|
like dynamic updates und TSIG. If there's something you'd like to
|
|
have added, please let him know (http://www.net-dns.org/).
|
|
|
|
Future versions may contain some C to increase speed or for those who
|
|
wish to link against libresolv or libbind.
|