Subject: CVS commit: pkgsrc/net/p5-Net-DNS
To: None <pkgsrc-changes@NetBSD.org>
From: Klaus Heinz <heinz@netbsd.org>
List: pkgsrc-changes
Date: 02/09/2006 21:35:46
Module Name:	pkgsrc
Committed By:	heinz
Date:		Thu Feb  9 21:35:46 UTC 2006

Modified Files:
	pkgsrc/net/p5-Net-DNS: DESCR Makefile distinfo
Removed Files:
	pkgsrc/net/p5-Net-DNS: hacks.mk

Log Message:
Updated to version 0.55.

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.


To generate a diff of this commit:
cvs rdiff -r1.3 -r1.4 pkgsrc/net/p5-Net-DNS/DESCR
cvs rdiff -r1.29 -r1.30 pkgsrc/net/p5-Net-DNS/Makefile
cvs rdiff -r1.13 -r1.14 pkgsrc/net/p5-Net-DNS/distinfo
cvs rdiff -r1.1 -r0 pkgsrc/net/p5-Net-DNS/hacks.mk

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.