diff options
author | Jocelyn Turcotte <jocelyn.turcotte@digia.com> | 2014-08-08 14:30:41 +0200 |
---|---|---|
committer | Jocelyn Turcotte <jocelyn.turcotte@digia.com> | 2014-08-12 13:49:54 +0200 |
commit | ab0a50979b9eb4dfa3320eff7e187e41efedf7a9 (patch) | |
tree | 498dfb8a97ff3361a9f7486863a52bb4e26bb898 /chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net | |
parent | 4ce69f7403811819800e7c5ae1318b2647e778d1 (diff) |
Update Chromium to beta version 37.0.2062.68
Change-Id: I188e3b5aff1bec75566014291b654eb19f5bc8ca
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Diffstat (limited to 'chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net')
49 files changed, 0 insertions, 12809 deletions
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS.pm deleted file mode 100644 index d8162e93d39..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS.pm +++ /dev/null @@ -1,967 +0,0 @@ - -package Net::DNS; -# -# $Id: DNS.pm 710 2008-02-08 15:22:21Z olaf $ -# -use strict; - - -BEGIN { - eval { require bytes; } -} - - - -use vars qw( - $HAVE_XS - $VERSION - $SVNVERSION - $DNSSEC - $DN_EXPAND_ESCAPES - @ISA - @EXPORT - @EXPORT_OK - %typesbyname - %typesbyval - %qtypesbyname - %qtypesbyval - %metatypesbyname - %metatypesbyval - %classesbyname - %classesbyval - %opcodesbyname - %opcodesbyval - %rcodesbyname - %rcodesbyval -); - - - -BEGIN { - require DynaLoader; - require Exporter; - @ISA = qw(Exporter DynaLoader); - - - $VERSION = '0.63'; - $SVNVERSION = (qw$LastChangedRevision: 710 $)[1]; - - $HAVE_XS = eval { - local $SIG{'__DIE__'} = 'DEFAULT'; - __PACKAGE__->bootstrap(); 1 - } ? 1 : 0; - -} - - - -BEGIN { - - $DNSSEC = eval { - local $SIG{'__DIE__'} = 'DEFAULT'; - require Net::DNS::SEC; - 1 - } ? 1 : 0; - - -} - - -use Net::DNS::Resolver; -use Net::DNS::Packet; -use Net::DNS::Update; -use Net::DNS::Header; -use Net::DNS::Question; -use Net::DNS::RR; # use only after $Net::DNS::DNSSEC has been evaluated -use Carp; - -@EXPORT = qw(mx yxrrset nxrrset yxdomain nxdomain rr_add rr_del); -@EXPORT_OK= qw(name2labels wire2presentation rrsort); - - -# -# If you implement an RR record make sure you also add it to -# %Net::DNS::RR::RR hash otherwise it will be treated as unknown type. -# - -# Do not use these tybesby hashes directly. Use the interface -# functions, see below. - -%typesbyname = ( - 'SIGZERO' => 0, # RFC2931 consider this a pseudo type - 'A' => 1, # RFC 1035, Section 3.4.1 - 'NS' => 2, # RFC 1035, Section 3.3.11 - 'MD' => 3, # RFC 1035, Section 3.3.4 (obsolete) - 'MF' => 4, # RFC 1035, Section 3.3.5 (obsolete) - 'CNAME' => 5, # RFC 1035, Section 3.3.1 - 'SOA' => 6, # RFC 1035, Section 3.3.13 - 'MB' => 7, # RFC 1035, Section 3.3.3 - 'MG' => 8, # RFC 1035, Section 3.3.6 - 'MR' => 9, # RFC 1035, Section 3.3.8 - 'NULL' => 10, # RFC 1035, Section 3.3.10 - 'WKS' => 11, # RFC 1035, Section 3.4.2 (deprecated) - 'PTR' => 12, # RFC 1035, Section 3.3.12 - 'HINFO' => 13, # RFC 1035, Section 3.3.2 - 'MINFO' => 14, # RFC 1035, Section 3.3.7 - 'MX' => 15, # RFC 1035, Section 3.3.9 - 'TXT' => 16, # RFC 1035, Section 3.3.14 - 'RP' => 17, # RFC 1183, Section 2.2 - 'AFSDB' => 18, # RFC 1183, Section 1 - 'X25' => 19, # RFC 1183, Section 3.1 - 'ISDN' => 20, # RFC 1183, Section 3.2 - 'RT' => 21, # RFC 1183, Section 3.3 - 'NSAP' => 22, # RFC 1706, Section 5 - 'NSAP_PTR' => 23, # RFC 1348 (obsolete) - # The following 2 RRs are impemented in Net::DNS::SEC - 'SIG' => 24, # RFC 2535, Section 4.1 - 'KEY' => 25, # RFC 2535, Section 3.1 - 'PX' => 26, # RFC 2163, - 'GPOS' => 27, # RFC 1712 (obsolete) - 'AAAA' => 28, # RFC 1886, Section 2.1 - 'LOC' => 29, # RFC 1876 - # The following RR is impemented in Net::DNS::SEC - 'NXT' => 30, # RFC 2535, Section 5.2 obsoleted by RFC3755 - 'EID' => 31, # draft-ietf-nimrod-dns-xx.txt - 'NIMLOC' => 32, # draft-ietf-nimrod-dns-xx.txt - 'SRV' => 33, # RFC 2052 - 'ATMA' => 34, # ??? - 'NAPTR' => 35, # RFC 2168 - 'KX' => 36, # RFC 2230 - 'CERT' => 37, # RFC 2538 - 'DNAME' => 39, # RFC 2672 - 'OPT' => 41, # RFC 2671 - 'DS' => 43, # RFC 4034 # in Net::DNS::SEC - 'SSHFP' => 44, # draft-ietf-secsh-dns (No RFC # yet at time of coding) - 'IPSECKEY' => 45, # RFC 4025 - 'RRSIG' => 46, # RFC 4034 in Net::DNS::SEC - 'NSEC' => 47, # RFC 4034 in Net::DNS::SEC - 'DNSKEY' => 48, # RFC 4034 in Net::DNS::SEC - 'NSEC3' => 50, # draft-ietf-dnsext-nsec3-10 (assignment made at time of code release) - 'NSEC3PARAM' => 51, # draft-ietf-dnsext-nsec3-10 (assignment made at time of code release) - - 'SPF' => 99, # RFC 4408 - 'UINFO' => 100, # non-standard - 'UID' => 101, # non-standard - 'GID' => 102, # non-standard - 'UNSPEC' => 103, # non-standard - 'TKEY' => 249, # RFC 2930 - 'TSIG' => 250, # RFC 2931 - 'IXFR' => 251, # RFC 1995 - 'AXFR' => 252, # RFC 1035 - 'MAILB' => 253, # RFC 1035 (MB, MG, MR) - 'MAILA' => 254, # RFC 1035 (obsolete - see MX) - 'ANY' => 255, # RFC 1035 - 'DLV' => 32769 # RFC 4431 in Net::DNS::SEC -); -%typesbyval = reverse %typesbyname; - - -# -# typesbyval and typesbyname functions are wrappers around the similarly named -# hashes. They are used for 'unknown' DNS RR types (RFC3597) - -# typesbyname returns they TYPEcode as a function of the TYPE -# mnemonic. If the TYPE mapping is not specified the generic mnemonic -# TYPE### is returned. - - -# typesbyval returns they TYPE mnemonic as a function of the TYPE -# code. If the TYPE mapping is not specified the generic mnemonic -# TYPE### is returned. -# - -sub typesbyname { - my $name = uc shift; - - return $typesbyname{$name} if defined $typesbyname{$name}; - - confess "Net::DNS::typesbyname() argument ($name) is not TYPE###" unless - $name =~ m/^\s*TYPE(\d+)\s*$/o; - - my $val = $1; - - confess 'Net::DNS::typesbyname() argument larger than ' . 0xffff if $val > 0xffff; - - return $val; -} - - - -sub typesbyval { - my $val = shift; - confess "Net::DNS::typesbyval() argument is not defined" unless defined $val; - confess "Net::DNS::typesbyval() argument ($val) is not numeric" unless - $val =~ s/^\s*0*(\d+)\s*$/$1/o; - - - - return $typesbyval{$val} if $typesbyval{$val}; - - confess 'Net::DNS::typesbyval() argument larger than '. 0xffff if - $val > 0xffff; - - return "TYPE$val"; -} - - - -# -# Do not use these classesby hashes directly. See below. -# - -%classesbyname = ( - 'IN' => 1, # RFC 1035 - 'CH' => 3, # RFC 1035 - 'HS' => 4, # RFC 1035 - 'NONE' => 254, # RFC 2136 - 'ANY' => 255, # RFC 1035 -); -%classesbyval = reverse %classesbyname; - - - -# classesbyval and classesbyname functions are wrappers around the -# similarly named hashes. They are used for 'unknown' DNS RR classess -# (RFC3597) - -# See typesbyval and typesbyname, these beasts have the same functionality - -sub classesbyname { - my $name = uc shift; - return $classesbyname{$name} if $classesbyname{$name}; - - confess "Net::DNS::classesbyval() argument is not CLASS### ($name)" unless - $name =~ m/^\s*CLASS(\d+)\s*$/o; - - my $val = $1; - - confess 'Net::DNS::classesbyval() argument larger than '. 0xffff if $val > 0xffff; - - return $val; -} - - - -sub classesbyval { - my $val = shift; - - confess "Net::DNS::classesbyname() argument is not numeric ($val)" unless - $val =~ s/^\s*0*([0-9]+)\s*$/$1/o; - - return $classesbyval{$val} if $classesbyval{$val}; - - confess 'Net::DNS::classesbyname() argument larger than ' . 0xffff if $val > 0xffff; - - return "CLASS$val"; -} - - - -# The qtypesbyval and metatypesbyval specify special typecodes -# See rfc2929 and the relevant IANA registry -# http://www.iana.org/assignments/dns-parameters - - -%qtypesbyname = ( - 'IXFR' => 251, # incremental transfer [RFC1995] - 'AXFR' => 252, # transfer of an entire zone [RFC1035] - 'MAILB' => 253, # mailbox-related RRs (MB, MG or MR) [RFC1035] - 'MAILA' => 254, # mail agent RRs (Obsolete - see MX) [RFC1035] - 'ANY' => 255, # all records [RFC1035] -); -%qtypesbyval = reverse %qtypesbyname; - - -%metatypesbyname = ( - 'TKEY' => 249, # Transaction Key [RFC2930] - 'TSIG' => 250, # Transaction Signature [RFC2845] - 'OPT' => 41, # RFC 2671 -); -%metatypesbyval = reverse %metatypesbyname; - - -%opcodesbyname = ( - 'QUERY' => 0, # RFC 1035 - 'IQUERY' => 1, # RFC 1035 - 'STATUS' => 2, # RFC 1035 - 'NS_NOTIFY_OP' => 4, # RFC 1996 - 'UPDATE' => 5, # RFC 2136 -); -%opcodesbyval = reverse %opcodesbyname; - - -%rcodesbyname = ( - 'NOERROR' => 0, # RFC 1035 - 'FORMERR' => 1, # RFC 1035 - 'SERVFAIL' => 2, # RFC 1035 - 'NXDOMAIN' => 3, # RFC 1035 - 'NOTIMP' => 4, # RFC 1035 - 'REFUSED' => 5, # RFC 1035 - 'YXDOMAIN' => 6, # RFC 2136 - 'YXRRSET' => 7, # RFC 2136 - 'NXRRSET' => 8, # RFC 2136 - 'NOTAUTH' => 9, # RFC 2136 - 'NOTZONE' => 10, # RFC 2136 -); -%rcodesbyval = reverse %rcodesbyname; - - -sub version { $VERSION; } -sub PACKETSZ () { 512; } -sub HFIXEDSZ () { 12; } -sub QFIXEDSZ () { 4; } -sub RRFIXEDSZ () { 10; } -sub INT32SZ () { 4; } -sub INT16SZ () { 2; } - - - -# mx() -# -# Usage: -# my @mxes = mx('example.com', 'IN'); -# -sub mx { - my $res = ref $_[0] ? shift : Net::DNS::Resolver->new; - - my ($name, $class) = @_; - $class ||= 'IN'; - - my $ans = $res->query($name, 'MX', $class) || return; - - # This construct is best read backwords. - # - # First we take the answer secion of the packet. - # Then we take just the MX records from that list - # Then we sort the list by preference - # Then we return it. - # We do this into an array to force list context. - my @ret = sort { $a->preference <=> $b->preference } - grep { $_->type eq 'MX'} $ans->answer; - - - return @ret; -} - -sub yxrrset { - return Net::DNS::RR->new_from_string(shift, 'yxrrset'); -} - -sub nxrrset { - return Net::DNS::RR->new_from_string(shift, 'nxrrset'); -} - -sub yxdomain { - return Net::DNS::RR->new_from_string(shift, 'yxdomain'); -} - -sub nxdomain { - return Net::DNS::RR->new_from_string(shift, 'nxdomain'); -} - -sub rr_add { - return Net::DNS::RR->new_from_string(shift, 'rr_add'); -} - -sub rr_del { - return Net::DNS::RR->new_from_string(shift, 'rr_del'); -} - - - -# Utility function -# -# name2labels to translate names from presentation format into an -# array of "wire-format" labels. - - -# in: $dname a string with a domain name in presentation format (1035 -# sect 5.1) -# out: an array of labels in wire format. - - -sub name2labels { - my $dname=shift; - my @names; - my $j=0; - while ($dname){ - ($names[$j],$dname)=presentation2wire($dname); - $j++; - } - - return @names; -} - - - - -sub wire2presentation { - my $wire=shift; - my $presentation=""; - my $length=length($wire); - # There must be a nice regexp to do this.. but since I failed to - # find one I scan the name string until I find a '\', at that time - # I start looking forward and do the magic. - - my $i=0; - - while ($i < $length ){ - my $char=unpack("x".$i."C1",$wire); - if ( $char < 33 || $char > 126 ){ - $presentation.= sprintf ("\\%03u" ,$char); - }elsif ( $char == ord( "\"" )) { - $presentation.= "\\\""; - }elsif ( $char == ord( "\$" )) { - $presentation.= "\\\$"; - }elsif ( $char == ord( "(" )) { - $presentation.= "\\("; - }elsif ( $char == ord( ")" )) { - $presentation.= "\\)"; - }elsif ( $char == ord( ";" )) { - $presentation.= "\\;"; - }elsif ( $char == ord( "@" )) { - $presentation.= "\\@"; - }elsif ( $char == ord( "\\" )) { - $presentation.= "\\\\" ; - }elsif ( $char==ord (".") ){ - $presentation.= "\\." ; - }else{ - $presentation.=chr($char) ; - } - $i++; - } - - return $presentation; - -} - - - -# ($wire,$leftover)=presentation2wire($leftover); - -# Will parse the input presentation format and return everything before -# the first non-escaped "." in the first element of the return array and -# all that has not been parsed yet in the 2nd argument. - - -sub presentation2wire { - my $presentation=shift; - my $wire=""; - my $length=length($presentation); - - my $i=0; - - while ($i < $length ){ - my $char=unpack("x".$i."C1",$presentation); - if ( $char == ord ('.')){ - return ($wire,substr($presentation,$i+1)); - } - if ( $char == ord ('\\')){ - #backslash found - pos($presentation)=$i+1; - if ($presentation=~/\G(\d\d\d)/){ - $wire.=pack("C",$1); - $i+=3; - }elsif($presentation=~/\Gx([0..9a..fA..F][0..9a..fA..F])/){ - $wire.=pack("H*",$1); - $i+=3; - }elsif($presentation=~/\G\./){ - $wire.="\."; - $i+=1; - }elsif($presentation=~/\G@/){ - $wire.="@"; - $i+=1; - }elsif($presentation=~/\G\(/){ - $wire.="("; - $i+=1; - }elsif($presentation=~/\G\)/){ - $wire.=")"; - $i+=1; - }elsif($presentation=~/\G\\/){ - $wire.="\\"; - $i+=1; - } - }else{ - $wire .= pack("C",$char); - } - $i++; - } - - return $wire; -} - - - - - -sub rrsort { - my ($rrtype,$attribute,@rr_array)=@_; - unless (exists($Net::DNS::typesbyname{uc($rrtype)})){ - # unvalid error type - return(); - } - unless (defined($attribute)){ - # no second argument... hence no array. - return(); - } - - # attribute is empty or not specified. - - if( ref($attribute)=~/^Net::DNS::RR::.*/){ - # push the attribute back on the array. - push @rr_array,$attribute; - undef($attribute); - - } - - my @extracted_rr; - foreach my $rr (@rr_array){ - push( @extracted_rr, $rr )if (uc($rr->type) eq uc($rrtype)); - } - return () unless @extracted_rr; - my $func=("Net::DNS::RR::".$rrtype)->get_rrsort_func($attribute); - my @sorted=sort $func @extracted_rr; - return @sorted; - -} - - - - - - - - - -1; -__END__ - -=head1 NAME - -Net::DNS - Perl interface to the DNS resolver - -=head1 SYNOPSIS - -C<use Net::DNS;> - -=head1 DESCRIPTION - -Net::DNS is a collection of Perl modules that act as a Domain -Name System (DNS) resolver. It allows the programmer to perform -DNS queries that are beyond the capabilities of C<gethostbyname> -and C<gethostbyaddr>. - -The programmer should be somewhat familiar with the format of -a DNS packet and its various sections. See RFC 1035 or -I<DNS and BIND> (Albitz & Liu) for details. - -=head2 Resolver Objects - -A resolver object is an instance of the -L<Net::DNS::Resolver|Net::DNS::Resolver> class. A program can have -multiple resolver objects, each maintaining its own state information -such as the nameservers to be queried, whether recursion is desired, -etc. - -=head2 Packet Objects - -L<Net::DNS::Resolver|Net::DNS::Resolver> queries return -L<Net::DNS::Packet|Net::DNS::Packet> objects. Packet objects have five -sections: - -=over 3 - -=item * - -The header section, a L<Net::DNS::Header|Net::DNS::Header> object. - -=item * - -The question section, a list of L<Net::DNS::Question|Net::DNS::Question> -objects. - -=item * - -The answer section, a list of L<Net::DNS::RR|Net::DNS::RR> objects. - -=item * - -The authority section, a list of L<Net::DNS::RR|Net::DNS::RR> objects. - -=item * - -The additional section, a list of L<Net::DNS::RR|Net::DNS::RR> objects. - -=back - -=head2 Update Objects - -The L<Net::DNS::Update|Net::DNS::Update> package is a subclass of -L<Net::DNS::Packet|Net::DNS::Packet> for creating packet objects to be -used in dynamic updates. - -=head2 Header Objects - -L<Net::DNS::Header|Net::DNS::Header> objects represent the header -section of a DNS packet. - -=head2 Question Objects - -L<Net::DNS::Question|Net::DNS::Question> objects represent the question -section of a DNS packet. - -=head2 RR Objects - -L<Net::DNS::RR|Net::DNS::RR> is the base class for DNS resource record -(RR) objects in the answer, authority, and additional sections of a DNS -packet. - -Don't assume that RR objects will be of the type you requested -- always -check an RR object's type before calling any of its methods. - -=head1 METHODS - -See the manual pages listed above for other class-specific methods. - -=head2 version - - print Net::DNS->version, "\n"; - -Returns the version of Net::DNS. - -=head2 mx - - # Use a default resolver -- can't get an error string this way. - use Net::DNS; - my @mx = mx("example.com"); - - # Use your own resolver object. - use Net::DNS; - my $res = Net::DNS::Resolver->new; - my @mx = mx($res, "example.com"); - -Returns a list of L<Net::DNS::RR::MX|Net::DNS::RR::MX> objects -representing the MX records for the specified name; the list will be -sorted by preference. Returns an empty list if the query failed or no MX -records were found. - -This method does not look up A records -- it only performs MX queries. - -See L</EXAMPLES> for a more complete example. - -=head2 yxrrset - -Use this method to add an "RRset exists" prerequisite to a dynamic -update packet. There are two forms, value-independent and -value-dependent: - - # RRset exists (value-independent) - $update->push(pre => yxrrset("host.example.com A")); - -Meaning: At least one RR with the specified name and type must -exist. - - # RRset exists (value-dependent) - $packet->push(pre => yxrrset("host.example.com A 10.1.2.3")); - -Meaning: At least one RR with the specified name and type must -exist and must have matching data. - -Returns a C<Net::DNS::RR> object or C<undef> if the object couldn't -be created. - -=head2 nxrrset - -Use this method to add an "RRset does not exist" prerequisite to -a dynamic update packet. - - $packet->push(pre => nxrrset("host.example.com A")); - -Meaning: No RRs with the specified name and type can exist. - -Returns a C<Net::DNS::RR> object or C<undef> if the object couldn't -be created. - -=head2 yxdomain - -Use this method to add a "name is in use" prerequisite to a dynamic -update packet. - - $packet->push(pre => yxdomain("host.example.com")); - -Meaning: At least one RR with the specified name must exist. - -Returns a C<Net::DNS::RR> object or C<undef> if the object couldn't -be created. - -=head2 nxdomain - -Use this method to add a "name is not in use" prerequisite to a -dynamic update packet. - - $packet->push(pre => nxdomain("host.example.com")); - -Meaning: No RR with the specified name can exist. - -Returns a C<Net::DNS::RR> object or C<undef> if the object couldn't -be created. - -=head2 rr_add - -Use this method to add RRs to a zone. - - $packet->push(update => rr_add("host.example.com A 10.1.2.3")); - -Meaning: Add this RR to the zone. - -RR objects created by this method should be added to the "update" -section of a dynamic update packet. The TTL defaults to 86400 -seconds (24 hours) if not specified. - -Returns a C<Net::DNS::RR> object or C<undef> if the object couldn't -be created. - -=head2 rr_del - -Use this method to delete RRs from a zone. There are three forms: -delete an RRset, delete all RRsets, and delete an RR. - - # Delete an RRset. - $packet->push(update => rr_del("host.example.com A")); - -Meaning: Delete all RRs having the specified name and type. - - # Delete all RRsets. - $packet->push(update => rr_del("host.example.com")); - -Meaning: Delete all RRs having the specified name. - - # Delete an RR. - $packet->push(update => rr_del("host.example.com A 10.1.2.3")); - -Meaning: Delete all RRs having the specified name, type, and data. - -RR objects created by this method should be added to the "update" -section of a dynamic update packet. - -Returns a C<Net::DNS::RR> object or C<undef> if the object couldn't -be created. - - -=head2 Sorting of RR arrays - -As of version 0.55 there is functionality to help you sort RR -arrays. 'rrsort()' is the function that is available to do the -sorting. In most cases rrsort will give you the answer that you -want but you can specify your own sorting method by using the -Net::DNS::RR::FOO->set_rrsort_func() class method. See L<Net::DNS::RR> -for details. - -=head3 rrsort() - - use Net::DNS qw(rrsort); - - my @prioritysorted=rrsort("SRV","priority",@rr_array); - - -rrsort() selects all RRs from the input array that are of the type -that are defined in the first argument. Those RRs are sorted based on -the attribute that is specified as second argument. - -There are a number of RRs for which the sorting function is -specifically defined for certain attributes. If such sorting function -is defined in the code (it can be set or overwritten using the -set_rrsort_func() class method) that function is used. - -For instance: - my @prioritysorted=rrsort("SRV","priority",@rr_array); -returns the SRV records sorted from lowest to heighest priority and -for equal priorities from heighes to lowes weight. - -If the function does not exist then a numerical sort on the attribute -value is performed. - my @portsorted=rrsort("SRV","port",@rr_array); - -If the attribute does not exist for a certain RR than the RRs are -sorted on string comparrisson of the rdata. - -If the attribute is not defined than either the default_sort function -will be defined or "Canonical sorting" (as defined by DNSSEC) will be -used. - -rrsort() returns a sorted array with only elements of the specified -RR type or undef. - -rrsort() returns undef when arguments are incorrect. - - - -=head1 EXAMPLES - -The following examples show how to use the C<Net::DNS> modules. -See the other manual pages and the demo scripts included with the -source code for additional examples. - -See the C<Net::DNS::Update> manual page for an example of performing -dynamic updates. - -=head2 Look up a host's addresses. - - use Net::DNS; - my $res = Net::DNS::Resolver->new; - my $query = $res->search("host.example.com"); - - if ($query) { - foreach my $rr ($query->answer) { - next unless $rr->type eq "A"; - print $rr->address, "\n"; - } - } else { - warn "query failed: ", $res->errorstring, "\n"; - } - -=head2 Find the nameservers for a domain. - - use Net::DNS; - my $res = Net::DNS::Resolver->new; - my $query = $res->query("example.com", "NS"); - - if ($query) { - foreach $rr (grep { $_->type eq 'NS' } $query->answer) { - print $rr->nsdname, "\n"; - } - } - else { - warn "query failed: ", $res->errorstring, "\n"; - } - -=head2 Find the MX records for a domain. - - use Net::DNS; - my $name = "example.com"; - my $res = Net::DNS::Resolver->new; - my @mx = mx($res, $name); - - if (@mx) { - foreach $rr (@mx) { - print $rr->preference, " ", $rr->exchange, "\n"; - } - } else { - warn "Can't find MX records for $name: ", $res->errorstring, "\n"; - } - - -=head2 Print a domain's SOA record in zone file format. - - use Net::DNS; - my $res = Net::DNS::Resolver->new; - my $query = $res->query("example.com", "SOA"); - - if ($query) { - ($query->answer)[0]->print; - } else { - print "query failed: ", $res->errorstring, "\n"; - } - -=head2 Perform a zone transfer and print all the records. - - use Net::DNS; - my $res = Net::DNS::Resolver->new; - $res->nameservers("ns.example.com"); - - my @zone = $res->axfr("example.com"); - - foreach $rr (@zone) { - $rr->print; - } - -=head2 Perform a background query and do some other work while waiting -for the answer. - - use Net::DNS; - my $res = Net::DNS::Resolver->new; - my $socket = $res->bgsend("host.example.com"); - - until ($res->bgisready($socket)) { - # do some work here while waiting for the answer - # ...and some more here - } - - my $packet = $res->bgread($socket); - $packet->print; - - -=head2 Send a background query and use select to determine when the answer -has arrived. - - use Net::DNS; - use IO::Select; - - my $timeout = 5; - my $res = Net::DNS::Resolver->new; - my $bgsock = $res->bgsend("host.example.com"); - my $sel = IO::Select->new($bgsock); - - # Add more sockets to $sel if desired. - my @ready = $sel->can_read($timeout); - if (@ready) { - foreach my $sock (@ready) { - if ($sock == $bgsock) { - my $packet = $res->bgread($bgsock); - $packet->print; - $bgsock = undef; - } - # Check for the other sockets. - $sel->remove($sock); - $sock = undef; - } - } else { - warn "timed out after $timeout seconds\n"; - } - -=head1 BUGS - -C<Net::DNS> is slow. - -For other items to be fixed, please see the TODO file included with -the source distribution. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. -Portions Copyright (c) 2002-2004 Chris Reinhardt. -Portions Copyright (c) 2005 Olaf Kolkman (RIPE NCC) -Portions Copyright (c) 2006 Olaf Kolkman (NLnet Labs) - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 AUTHOR INFORMATION - -Net::DNS is currently maintained at NLnet Labs (www.nlnetlabs.nl) by: - Olaf Kolkman - olaf@net-dns.org - -Between 2002 and 2004 Net::DNS was maintained by: - Chris Reinhardt - - -Net::DNS was created by: - Michael Fuhr - mike@fuhr.org - - - -For more information see: - http://www.net-dns.org/ - -Stay tuned and syncicate: - http://www.net-dns.org/blog/ - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, L<Net::DNS::Update>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, RFC 1035, -I<DNS and BIND> by Paul Albitz & Cricket Liu - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/FAQ.pod b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/FAQ.pod deleted file mode 100644 index f1b4e5c707e..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/FAQ.pod +++ /dev/null @@ -1,45 +0,0 @@ -=head1 NAME - -Net::DNS::FAQ - Frequently Asked Net::DNS Questions - -=head1 SYNOPSIS - - perldoc Net::DNS::FAQ - -=head1 DESCRIPTION - -This document serves to answer the most frequently asked questions on both the -Net::DNS Mailing List and those sent to the author. - -The latest version of this FAQ can be found at - http://www.net-dns.org/docs/FAQ.html - -=head1 GENERAL - -=head2 What is Net::DNS? - -Net::DNS is a perl implementation of a DNS resolver. - -=head1 INSTALLATION - -=head2 Where can I find Test::More? - -Test::More is part of the Test-Simple packge, by Michael G Schwern. -You should be able to find the distrubution here: - - http://search.cpan.org/dist/Test-Simple/ - -=head1 USAGE - -=head2 Why does Net::DNS::Resolver::query() return undef when the ANSWER section is empty? - -The short answer is, don't use query(). Net::DNS::Resolver::send() -will always return the answer packet, as long as an answer was received. - -The longer answer is that query() is modeled after the res_query() function -from the libresolv C library, which has similar behaviors. - -=head1 VERSION - - $Id: FAQ.pod 264 2005-04-06 09:16:15Z olaf $ - diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Header.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Header.pm deleted file mode 100644 index 26627accdc7..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Header.pm +++ /dev/null @@ -1,371 +0,0 @@ -package Net::DNS::Header; -# -# $Id: Header.pm 704 2008-02-06 21:30:59Z olaf $ -# - -use strict; - -BEGIN { - eval { require bytes; } -} - - -use vars qw($VERSION $AUTOLOAD); - -use Carp; -use Net::DNS; - -use constant MAX_ID => 65535; - -$VERSION = (qw$LastChangedRevision: 704 $)[1]; - -=head1 NAME - -Net::DNS::Header - DNS packet header class - -=head1 SYNOPSIS - -C<use Net::DNS::Header;> - -=head1 DESCRIPTION - -A C<Net::DNS::Header> object represents the header portion of a DNS -packet. - -=head1 METHODS - -=head2 new - - $header = Net::DNS::Header->new; - -C<new> creates a header object appropriate for making a DNS query. - -=cut - -{ - sub nextid { - int rand(MAX_ID); - } -} - -sub new { - my $class = shift; - - my $self = { id => nextid(), - qr => 0, - opcode => $Net::DNS::opcodesbyval{0}, - aa => 0, - tc => 0, - rd => 1, - ra => 0, - ad => 0, - cd => 0, - rcode => $Net::DNS::rcodesbyval{0}, - qdcount => 0, - ancount => 0, - nscount => 0, - arcount => 0, - }; - - bless $self, $class; -} - - -=head2 parse - - ($header, $offset) = Net::DNS::Header->parse(\$data); - -Parses the header record at the start of a DNS packet. -The argument is a reference to the packet data. - -Returns a Net::DNS::Header object and the offset of the next location -in the packet. - -Parsing is aborted if the header object cannot be created (e.g., -corrupt or insufficient data). - -=cut - -use constant PACKED_LENGTH => length pack 'n C2 n4', (0)x7; - -sub parse { - my ($class, $data) = @_; - - die 'Exception: incomplete data' if length($$data) < PACKED_LENGTH; - - my ($id, $b2, $b3, $qd, $an, $ns, $ar) = unpack('n C2 n4', $$data); - - my $opval = ($b2 >> 3) & 0xf; - my $opcode = $Net::DNS::opcodesbyval{$opval} || $opval; - my $rval = $b3 & 0xf; - my $rcode = $Net::DNS::rcodesbyval{$rval} || $rval; - - my $self = { id => $id, - qr => ($b2 >> 7) & 0x1, - opcode => $opcode, - aa => ($b2 >> 2) & 0x1, - tc => ($b2 >> 1) & 0x1, - rd => $b2 & 0x1, - ra => ($b3 >> 7) & 0x1, - ad => ($b3 >> 5) & 0x1, - cd => ($b3 >> 4) & 0x1, - rcode => $rcode, - qdcount => $qd, - ancount => $an, - nscount => $ns, - arcount => $ar - }; - - bless $self, $class; - - return wantarray ? ($self, PACKED_LENGTH) : $self; -} - -# -# Some people have reported that Net::DNS dies because AUTOLOAD picks up -# calls to DESTROY. -# -sub DESTROY {} - -=head2 print - - $header->print; - -Prints the header record on the standard output. - -=cut - -sub print { print &string, "\n"; } - -=head2 string - - print $header->string; - -Returns a string representation of the header object. - -=cut - -sub string { - my $self = shift; - my $retval = ""; - - $retval .= ";; id = $self->{id}\n"; - - if ($self->{"opcode"} eq "UPDATE") { - $retval .= ";; qr = $self->{qr} " . - "opcode = $self->{opcode} " . - "rcode = $self->{rcode}\n"; - - $retval .= ";; zocount = $self->{qdcount} " . - "prcount = $self->{ancount} " . - "upcount = $self->{nscount} " . - "adcount = $self->{arcount}\n"; - } - else { - $retval .= ";; qr = $self->{qr} " . - "opcode = $self->{opcode} " . - "aa = $self->{aa} " . - "tc = $self->{tc} " . - "rd = $self->{rd}\n"; - - $retval .= ";; ra = $self->{ra} " . - "ad = $self->{ad} " . - "cd = $self->{cd} " . - "rcode = $self->{rcode}\n"; - - $retval .= ";; qdcount = $self->{qdcount} " . - "ancount = $self->{ancount} " . - "nscount = $self->{nscount} " . - "arcount = $self->{arcount}\n"; - } - - return $retval; -} - -=head2 id - - print "query id = ", $header->id, "\n"; - $header->id(1234); - -Gets or sets the query identification number. - -=head2 qr - - print "query response flag = ", $header->qr, "\n"; - $header->qr(0); - -Gets or sets the query response flag. - -=head2 opcode - - print "query opcode = ", $header->opcode, "\n"; - $header->opcode("UPDATE"); - -Gets or sets the query opcode (the purpose of the query). - -=head2 aa - - print "answer is ", $header->aa ? "" : "non-", "authoritative\n"; - $header->aa(0); - -Gets or sets the authoritative answer flag. - -=head2 tc - - print "packet is ", $header->tc ? "" : "not ", "truncated\n"; - $header->tc(0); - -Gets or sets the truncated packet flag. - -=head2 rd - - print "recursion was ", $header->rd ? "" : "not ", "desired\n"; - $header->rd(0); - -Gets or sets the recursion desired flag. - - -=head2 cd - - print "checking was ", $header->cd ? "not" : "", "desired\n"; - $header->cd(0); - -Gets or sets the checking disabled flag. - - - -=head2 ra - - print "recursion is ", $header->ra ? "" : "not ", "available\n"; - $header->ra(0); - -Gets or sets the recursion available flag. - - -=head2 ad - - print "The result has ", $header->ad ? "" : "not", "been verified\n" - - -Relevant in DNSSEC context. - -(The AD bit is only set on answers where signatures have been -cryptographically verified or the server is authoritative for the data -and is allowed to set the bit by policy.) - - -=head2 rcode - - print "query response code = ", $header->rcode, "\n"; - $header->rcode("SERVFAIL"); - -Gets or sets the query response code (the status of the query). - -=head2 qdcount, zocount - - print "# of question records: ", $header->qdcount, "\n"; - $header->qdcount(2); - -Gets or sets the number of records in the question section of the packet. -In dynamic update packets, this field is known as C<zocount> and refers -to the number of RRs in the zone section. - -=head2 ancount, prcount - - print "# of answer records: ", $header->ancount, "\n"; - $header->ancount(5); - -Gets or sets the number of records in the answer section of the packet. -In dynamic update packets, this field is known as C<prcount> and refers -to the number of RRs in the prerequisite section. - -=head2 nscount, upcount - - print "# of authority records: ", $header->nscount, "\n"; - $header->nscount(2); - -Gets or sets the number of records in the authority section of the packet. -In dynamic update packets, this field is known as C<upcount> and refers -to the number of RRs in the update section. - -=head2 arcount, adcount - - print "# of additional records: ", $header->arcount, "\n"; - $header->arcount(3); - -Gets or sets the number of records in the additional section of the packet. -In dynamic update packets, this field is known as C<adcount>. - -=cut - -sub zocount { &qdcount; } -sub prcount { &ancount; } -sub upcount { &nscount; } -sub adcount { &arcount; } - - -sub AUTOLOAD { - my $self = shift; - - my $name = $AUTOLOAD; - $name =~ s/.*://o; - - croak "$AUTOLOAD: no such method" unless exists $self->{$name}; - - return $self->{$name} unless @_; - - my $value = shift; - $self->{$name} = $value; -} - - -=head2 data - - $hdata = $header->data; - -Returns the header data in binary format, appropriate for use in a -DNS query packet. - -=cut - -sub data { - my $self = shift; - - my $opcode = $Net::DNS::opcodesbyname{ $self->{opcode} }; - my $rcode = $Net::DNS::rcodesbyname{ $self->{rcode} }; - - my $byte2 = ($self->{qr} ? 0x80 : 0) - | ($opcode << 3) - | ($self->{aa} ? 0x04 : 0) - | ($self->{tc} ? 0x02 : 0) - | ($self->{rd} ? 0x01 : 0); - - my $byte3 = ($self->{ra} ? 0x80 : 0) - | ($self->{ad} ? 0x20 : 0) - | ($self->{cd} ? 0x10 : 0) - | ($rcode || 0); - - pack('n C2 n4', $self->{id}, $byte2, $byte3, - map{$self->{$_} || 0} qw(qdcount ancount nscount arcount) ); -} - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -Portions Copyright (c) 2007 Dick Franks. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Update>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1035 Section 4.1.1 - -=cut - -1; diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Nameserver.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Nameserver.pm deleted file mode 100644 index a0ad2f34f5d..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Nameserver.pm +++ /dev/null @@ -1,703 +0,0 @@ -package Net::DNS::Nameserver; -# -# $Id: Nameserver.pm 709 2008-02-06 22:40:42Z olaf $ -# - -use Net::DNS; -use IO::Socket; -use IO::Socket::INET; -use IO::Select; -use Carp qw(cluck); - -use strict; -use vars qw( $VERSION - $has_inet6 - ); - -use constant FORCE_INET4 => 0; - -use constant DEFAULT_ADDR => 0; -use constant DEFAULT_PORT => 53; - -use constant STATE_ACCEPTED => 1; -use constant STATE_GOT_LENGTH => 2; -use constant STATE_SENDING => 3; - -$VERSION = (qw$LastChangedRevision: 709 $)[1]; - - - -BEGIN { - if ( FORCE_INET4 ) { - $has_inet6 = 0; - } elsif ( eval {require Socket6;} && - # INET6 earlier than V2.01 will not work; sorry. - eval {require IO::Socket::INET6; IO::Socket::INET6->VERSION("2.01");} ) { - import Socket6; - $has_inet6 = 1; - } else { - $has_inet6=0; - } -} - - -#------------------------------------------------------------------------------ - - -#------------------------------------------------------------------------------ -# Constructor. -#------------------------------------------------------------------------------ - -sub new { - my ($class, %self) = @_; - - unless ( ref $self{ReplyHandler} ) { - cluck "No reply handler!"; - return; - } - - # local server addresses must also be accepted by a resolver - my @LocalAddr = ref $self{LocalAddr} ? @{$self{LocalAddr}} : ($self{LocalAddr}); - my $resolver = Net::DNS::Resolver->new; - $resolver->force_v4(1) unless $has_inet6; - $resolver->nameservers(undef); - my @localaddresses = $resolver->nameservers(@LocalAddr); - - my $port = $self{LocalPort} || DEFAULT_PORT; - - my @sock_tcp; # All the TCP sockets we will listen to. - my @sock_udp; # All the UDP sockets we will listen to. - - # while we are here, print incomplete lines as they come along. - local $| = 1 if $self{Verbose}; - - foreach my $addr ( @localaddresses ? @localaddresses : DEFAULT_ADDR ){ - - #-------------------------------------------------------------------------- - # Create the TCP socket. - #-------------------------------------------------------------------------- - - print "\nCreating TCP socket $addr#$port - " if $self{Verbose}; - - my $sock_tcp = inet_new( - LocalAddr => $addr, - LocalPort => $port, - Listen => 64, - Proto => "tcp", - Reuse => 1, - ); - if ( $sock_tcp ) { - push @sock_tcp, $sock_tcp; - print "done.\n" if $self{Verbose}; - } else { - cluck "Couldn't create TCP socket: $!"; - } - - #-------------------------------------------------------------------------- - # Create the UDP Socket. - #-------------------------------------------------------------------------- - - print "Creating UDP socket $addr#$port - " if $self{Verbose}; - - my $sock_udp = inet_new( - LocalAddr => $addr, - LocalPort => $port, - Proto => "udp", - ); - - if ( $sock_udp ) { - push @sock_udp, $sock_udp; - print "done.\n" if $self{Verbose}; - } else { - cluck "Couldn't create UDP socket: $!"; - } - - } - - #-------------------------------------------------------------------------- - # Create the Select object. - #-------------------------------------------------------------------------- - - my $select = $self{select} = IO::Select->new; - - $select->add(@sock_tcp); - $select->add(@sock_udp); - - return undef unless $select->count; - - #-------------------------------------------------------------------------- - # Return the object. - #-------------------------------------------------------------------------- - - my $self = bless \%self, $class; - return $self; -} - -#------------------------------------------------------------------------------ -# inet_new - Calls the constructor in the correct module for making sockets. -#------------------------------------------------------------------------------ - -sub inet_new { - if ($has_inet6) { - return IO::Socket::INET6->new(@_); - } else { - return IO::Socket::INET->new(@_); - } -} - -#------------------------------------------------------------------------------ -# make_reply - Make a reply packet. -#------------------------------------------------------------------------------ - -sub make_reply { - my ($self, $query, $peerhost) = @_; - - my $reply = Net::DNS::Packet->new(); # create empty reply packet - $reply->header->qr(1); - - my $headermask; - - unless ($query) { - print "ERROR: invalid packet\n" if $self->{"Verbose"}; - $reply->header->rcode("FORMERR"); - return $reply; - } - - if ($query->header->qr()) { - print "ERROR: invalid packet (qr was set, dropping)\n" if $self->{"Verbose"}; - return; - } - - - # question section returned to caller - my @q = $query->question; - @q=( Net::DNS::Question->new('', 'ANY', 'ANY') ) unless @q; - - $reply->push("question", @q); - - if ($query->header->opcode eq "QUERY" || - $query->header->opcode eq "NS_NOTIFY_OP" #RFC1996 - ) { - if ($query->header->qdcount == 1) { - my ($qr) = @q; - my $qname = $qr->qname; - my $qtype = $qr->qtype; - my $qclass = $qr->qclass; - - print "query ", $query->header->id, - ": ($qname, $qclass, $qtype) - " if $self->{"Verbose"}; - - my ($rcode, $ans, $auth, $add); - - if ($query->header->opcode eq "QUERY"){ - ($rcode, $ans, $auth, $add, $headermask) = - &{$self->{"ReplyHandler"}}($qname, $qclass, $qtype, $peerhost, $query); - }else{ - $reply->header->rcode("SERVFAIL") unless - ( ref $self->{"NotifyHandler"} eq "CODE"); - ($rcode, $ans, $auth, $add, $headermask) = - &{$self->{"NotifyHandler"}}($qname, $qclass, $qtype, $peerhost, $query); - } - print "$rcode\n" if $self->{"Verbose"}; - - $reply->header->rcode($rcode); - - $reply->push("answer", @$ans) if $ans; - $reply->push("authority", @$auth) if $auth; - $reply->push("additional", @$add) if $add; - } else { - print "ERROR: qdcount ", $query->header->qdcount, - "unsupported\n" if $self->{"Verbose"}; - $reply->header->rcode("FORMERR"); - } - } else { - print "ERROR: opcode ", $query->header->opcode, " unsupported\n" - if $self->{"Verbose"}; - $reply->header->rcode("FORMERR"); - } - - - - if (!defined ($headermask)) { - $reply->header->ra(1); - $reply->header->ad(0); - } else { - $reply->header->aa(1) if $headermask->{'aa'}; - $reply->header->ra(1) if $headermask->{'ra'}; - $reply->header->ad(1) if $headermask->{'ad'}; - } - - - $reply->header->cd($query->header->cd); - $reply->header->rd($query->header->rd); - $reply->header->id($query->header->id); - - $reply->header->print if $self->{"Verbose"} && defined $headermask; - - return $reply; -} - -#------------------------------------------------------------------------------ -# readfromtcp - read from a TCP client -#------------------------------------------------------------------------------ - -sub readfromtcp { - my ($self, $sock) = @_; - return -1 unless defined $self->{"_tcp"}{$sock}; - my $peer = $self->{"_tcp"}{$sock}{"peer"}; - my $charsread = $sock->sysread( - $self->{"_tcp"}{$sock}{"inbuffer"}, - 16384); - $self->{"_tcp"}{$sock}{"timeout"} = time()+120; # Reset idle timer - print "Received $charsread octets from $peer\n" if $self->{"Verbose"}; - if ($charsread == 0) { # 0 octets means socket has closed - print "Connection to $peer closed or lost.\n" if $self->{"Verbose"}; - $self->{"select"}->remove($sock); - $sock->close(); - delete $self->{"_tcp"}{$sock}; - return $charsread; - } - return $charsread; -} - -#------------------------------------------------------------------------------ -# tcp_connection - Handle a TCP connection. -#------------------------------------------------------------------------------ - -sub tcp_connection { - my ($self, $sock) = @_; - - if (not $self->{"_tcp"}{$sock}) { - # We go here if we are called with a listener socket. - my $client = $sock->accept; - if (not defined $client) { - print "TCP connection closed by peer before we could accept it.\n" if $self->{"Verbose"}; - return 0; - } - my $peerport= $client->peerport; - my $peerhost = $client->peerhost; - - print "TCP connection from $peerhost:$peerport\n" if $self->{"Verbose"}; - $client->blocking(0); - $self->{"_tcp"}{$client}{"peer"} = "tcp:".$peerhost.":".$peerport; - $self->{"_tcp"}{$client}{"state"} = STATE_ACCEPTED; - $self->{"_tcp"}{$client}{"socket"} = $client; - $self->{"_tcp"}{$client}{"timeout"} = time()+120; - $self->{"select"}->add($client); - # After we accepted we will look at the socket again - # to see if there is any data there. ---Olaf - $self->loop_once(0); - } else { - # We go here if we are called with a client socket - my $peer = $self->{"_tcp"}{$sock}{"peer"}; - - if ($self->{"_tcp"}{$sock}{"state"} == STATE_ACCEPTED) { - if (not $self->{"_tcp"}{$sock}{"inbuffer"} =~ s/^(..)//s) { - return; # Still not 2 octets ready - } - my $msglen = unpack("n", $1); - print "Removed 2 octets from the input buffer from $peer.\n". - "$peer said his query contains $msglen octets.\n" - if $self->{"Verbose"}; - $self->{"_tcp"}{$sock}{"state"} = STATE_GOT_LENGTH; - $self->{"_tcp"}{$sock}{"querylength"} = $msglen; - } - # Not elsif, because we might already have all the data - if ($self->{"_tcp"}{$sock}{"state"} == STATE_GOT_LENGTH) { - # return if not all data has been received yet. - return if $self->{"_tcp"}{$sock}{"querylength"} > length $self->{"_tcp"}{$sock}{"inbuffer"}; - - my $qbuf = substr($self->{"_tcp"}{$sock}{"inbuffer"}, 0, $self->{"_tcp"}{$sock}{"querylength"}); - substr($self->{"_tcp"}{$sock}{"inbuffer"}, 0, $self->{"_tcp"}{$sock}{"querylength"}) = ""; - my $query = Net::DNS::Packet->new(\$qbuf); - my $reply = $self->make_reply($query, $sock->peerhost); - if (not defined $reply) { - print "I couldn't create a reply for $peer. Closing socket.\n" - if $self->{"Verbose"}; - $self->{"select"}->remove($sock); - $sock->close(); - delete $self->{"_tcp"}{$sock}; - return; - } - my $reply_data = $reply->data; - my $len = length $reply_data; - $self->{"_tcp"}{$sock}{"outbuffer"} = pack("n", $len) . $reply_data; - print "Queued ", - length $self->{"_tcp"}{$sock}{"outbuffer"}, - " octets to $peer\n" - if $self->{"Verbose"}; - # We are done. - $self->{"_tcp"}{$sock}{"state"} = STATE_SENDING; - } - } -} - -#------------------------------------------------------------------------------ -# udp_connection - Handle a UDP connection. -#------------------------------------------------------------------------------ - -sub udp_connection { - my ($self, $sock) = @_; - - my $buf = ""; - - $sock->recv($buf, &Net::DNS::PACKETSZ); - my ($peerhost,$peerport) = ($sock->peerhost, $sock->peerport); - - print "UDP connection from $peerhost:$peerport\n" if $self->{"Verbose"}; - - my $query = Net::DNS::Packet->new(\$buf); - - my $reply = $self->make_reply($query, $peerhost) || return; - my $reply_data = $reply->data; - - local $| = 1 if $self->{"Verbose"}; - print "Writing response - " if $self->{"Verbose"}; - - if ($sock->send($reply_data)) { # - print "done\n" if $self->{"Verbose"}; - } - else { - print "failed to send reply: $!\n" if $self->{"Verbose"}; - } - } - - -sub get_open_tcp { - my $self=shift; - return keys %{$self->{"_tcp"}}; -} - - -#------------------------------------------------------------------------------ -# loop_once - Just check "once" on sockets already set up -#------------------------------------------------------------------------------ - -# This function might not actually return immediately. If an AXFR request is -# coming in which will generate a huge reply, we will not relinquish control -# until our outbuffers are empty. - -# -# NB this method may be subject to change and is therefore left 'undocumented' -# - -sub loop_once { - my ($self, $timeout) = @_; - $timeout=0 unless defined($timeout); - print ";loop_once called with $timeout \n" if $self->{"Verbose"} >4; - foreach my $sock (keys %{$self->{"_tcp"}}) { - $timeout = 0.1 if $self->{"_tcp"}{$sock}{"outbuffer"}; - } - my @ready = $self->{"select"}->can_read($timeout); - - foreach my $sock (@ready) { - my $protonum = $sock->protocol; - # This is a weird and nasty hack. Although not incorrect, - # I just don't know why ->protocol won't tell me the protocol - # on a connected socket. --robert - $protonum = getprotobyname('tcp') if not defined $protonum and $self->{"_tcp"}{$sock}; - - my $proto = getprotobynumber($protonum); - if (!$proto) { - print "ERROR: connection with unknown protocol\n" - if $self->{"Verbose"}; - } elsif (lc($proto) eq "tcp") { - - $self->readfromtcp($sock) && - $self->tcp_connection($sock); - } elsif (lc($proto) eq "udp") { - $self->udp_connection($sock); - } else { - print "ERROR: connection with unsupported protocol $proto\n" - if $self->{"Verbose"}; - } - } - my $now = time(); - # Lets check if any of our TCP clients has pending actions. - # (outbuffer, timeout) - foreach my $s (keys %{$self->{"_tcp"}}) { - my $sock = $self->{"_tcp"}{$s}{"socket"}; - if ($self->{"_tcp"}{$s}{"outbuffer"}) { - # If we have buffered output, then send as much as the OS will accept - # and wait with the rest - my $len = length $self->{"_tcp"}{$s}{"outbuffer"}; - my $charssent = $sock->syswrite($self->{"_tcp"}{$s}{"outbuffer"}); - print "Sent $charssent of $len octets to ",$self->{"_tcp"}{$s}{"peer"},".\n" - if $self->{"Verbose"}; - substr($self->{"_tcp"}{$s}{"outbuffer"}, 0, $charssent) = ""; - if (length $self->{"_tcp"}{$s}{"outbuffer"} == 0) { - delete $self->{"_tcp"}{$s}{"outbuffer"}; - $self->{"_tcp"}{$s}{"state"} = STATE_ACCEPTED; - if (length $self->{"_tcp"}{$s}{"inbuffer"} >= 2) { - # See if the client has send us enough data to process the - # next query. - # We do this here, because we only want to process (and buffer!!) - # a single query at a time, per client. If we allowed a STATE_SENDING - # client to have new requests processed. We could be easilier - # victims of DoS (client sending lots of queries and never reading - # from it's socket). - # Note that this does not disable serialisation on part of the - # client. The split second it should take for us to lookip the - # next query, is likely faster than the time it takes to - # send the response... well, unless it's a lot of tiny queries, - # in which case we will be generating an entire TCP packet per - # reply. --robert - $self->tcp_connection($self->{"_tcp"}{"socket"}); - } - } - $self->{"_tcp"}{$s}{"timeout"} = time()+120; - } else { - # Get rid of idle clients. - my $timeout = $self->{"_tcp"}{$s}{"timeout"}; - if ($timeout - $now < 0) { - print $self->{"_tcp"}{$s}{"peer"}," has been idle for too long and will be disconnected.\n" - if $self->{"Verbose"}; - $self->{"select"}->remove($sock); - $sock->close(); - delete $self->{"_tcp"}{$s}; - } - } - } -} - -#------------------------------------------------------------------------------ -# main_loop - Main nameserver loop. -#------------------------------------------------------------------------------ - -sub main_loop { - my $self = shift; - - while (1) { - print "Waiting for connections...\n" if $self->{"Verbose"}; - # You really need an argument otherwise you'll be burning - # CPU. - $self->loop_once(10); - } -} - -1; - -__END__ - -=head1 NAME - -Net::DNS::Nameserver - DNS server class - -=head1 SYNOPSIS - -C<use Net::DNS::Nameserver;> - -=head1 DESCRIPTION - -Instances of the C<Net::DNS::Nameserver> class represent DNS server -objects. See L</EXAMPLE> for an example. - -=head1 METHODS - -=head2 new - - my $ns = Net::DNS::Nameserver->new( - LocalAddr => "10.1.2.3", - LocalPort => "5353", - ReplyHandler => \&reply_handler, - Verbose => 1 - ); - - - - my $ns = Net::DNS::Nameserver->new( - LocalAddr => ['::1' , '127.0.0.1' ], - LocalPort => "5353", - ReplyHandler => \&reply_handler, - Verbose => 1 - ); - -Creates a nameserver object. Attributes are: - - LocalAddr IP address on which to listen. Defaults to INADDR_ANY. - LocalPort Port on which to listen. Defaults to 53. - ReplyHandler Reference to reply-handling - subroutine Required. - NotifyHandler Reference to reply-handling - subroutine for queries with - opdcode NS_NOTIFY (RFC1996) - Verbose Print info about received - queries. Defaults to 0 (off). - - -The LocalAddr attribute may alternatively be specified as a list of IP -addresses to listen to. - -If IO::Socket::INET6 and Socket6 are available on the system you can -also list IPv6 addresses and the default is '0' (listen on all interfaces on -IPv6 and IPv4); - - -The ReplyHandler subroutine is passed the query name, query class, -query type and optionally an argument containing the peerhost the -incoming query. It must return the response code and references to the -answer, authority, and additional sections of the response. Common -response codes are: - - NOERROR No error - FORMERR Format error - SERVFAIL Server failure - NXDOMAIN Non-existent domain (name doesn't exist) - NOTIMP Not implemented - REFUSED Query refused - -For advanced usage it may also contain a headermaks containing an -hashref with the settings for the C<aa>, C<ra>, and C<ad> -header bits. The argument is of the form -C<< { ad => 1, aa => 0, ra => 1 } >>. - - -See RFC 1035 and the IANA dns-parameters file for more information: - - ftp://ftp.rfc-editor.org/in-notes/rfc1035.txt - http://www.isi.edu/in-notes/iana/assignments/dns-parameters - -The nameserver will listen for both UDP and TCP connections. On -Unix-like systems, the program will probably have to run as root -to listen on the default port, 53. A non-privileged user should -be able to listen on ports 1024 and higher. - -Returns a Net::DNS::Nameserver object, or undef if the object -couldn't be created. - -See L</EXAMPLE> for an example. - -=head2 main_loop - - $ns->main_loop; - -Start accepting queries. Calling main_loop never returns. - -=cut - -##### -# -# The functionality might change. Left "undocumented" for now. -# -=head2 loop_once - - $ns->loop_once( [TIMEOUT_IN_SECONDS] ); - -Start accepting queries, but returns. If called without a parameter, -the call will not return until a request has been received (and -replied to). If called with a number, that number specifies how many -seconds (even fractional) to maximum wait before returning. If called -with 0 it will return immediately unless there's something to do. - -Handling a request and replying obviously depends on the speed of -ReplyHandler. Assuming ReplyHandler is super fast, loop_once should spend -just a fraction of a second, if called with a timeout value of 0 seconds. -One exception is when an AXFR has requested a huge amount of data that -the OS is not ready to receive in full. In that case, it will keep -running through a loop (while servicing new requests) until the reply -has been sent. - -In case loop_once accepted a TCP connection it will immediatly check -if there is data to be read from the socket. If not it will return and -you will have to call loop_once() again to check if there is any data -waiting on the socket to be processed. In most cases you will have to -count on calling "loop_once" twice. - -A code fragment like: - $ns->loop_once(10); - while( $ns->get_open_tcp() ){ - $ns->loop_once(0); - } - -Would wait for 10 seconds for the initial connection and would then -process all TCP sockets until none is left. - -=head2 get_open_tcp - -In scalar context returns the number of TCP connections for which state -is maintained. In array context it returns IO::Socket objects, these could -be useful for troubleshooting but be careful using them. - -=head1 EXAMPLE - -The following example will listen on port 5353 and respond to all queries -for A records with the IP address 10.1.2.3. All other queries will be -answered with NXDOMAIN. Authority and additional sections are left empty. -The $peerhost variable catches the IP address of the peer host, so that -additional filtering on its basis may be applied. - - #!/usr/bin/perl - - use Net::DNS::Nameserver; - use strict; - use warnings; - - sub reply_handler { - my ($qname, $qclass, $qtype, $peerhost,$query) = @_; - my ($rcode, @ans, @auth, @add); - - print "Received query from $peerhost\n"; - $query->print; - - - if ($qtype eq "A" && $qname eq "foo.example.com" ) { - my ($ttl, $rdata) = (3600, "10.1.2.3"); - push @ans, Net::DNS::RR->new("$qname $ttl $qclass $qtype $rdata"); - $rcode = "NOERROR"; - }elsif( $qname eq "foo.example.com" ) { - $rcode = "NOERROR"; - - }else{ - $rcode = "NXDOMAIN"; - } - - - # mark the answer as authoritive (by setting the 'aa' flag - return ($rcode, \@ans, \@auth, \@add, { aa => 1 }); - } - - my $ns = Net::DNS::Nameserver->new( - LocalPort => 5353, - ReplyHandler => \&reply_handler, - Verbose => 1, - ) || die "couldn't create nameserver object\n"; - - $ns->main_loop; - -=head1 BUGS - -Limitations in perl 5.8.6 makes it impossible to guarantee that -replies to UDP queries from Net::DNS::Nameserver are sent from the -IP-address they were received on. This is a problem for machines with -multiple IP-addresses and causes violation of RFC2181 section 4. -Thus a UDP socket created listening to INADDR_ANY (all available -IP-addresses) will reply not necessarily with the source address being -the one to which the request was sent, but rather with the address that -the operating system choses. This is also often called "the closest -address". This should really only be a problem on a server which has -more than one IP-address (besides localhost - any experience with IPv6 -complications here, would be nice). If this is a problem for you, a -work-around would be to not listen to INADDR_ANY but to specify each -address that you want this module to listen on. A seperate set of -sockets will then be created for each IP-address. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -Portions Copyright (c) 2005-2007 O.M, Kolkman, RIPE NCC. - -Portions Copyright (c) 2005 Robert Martin-Legene. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Update>, L<Net::DNS::Header>, L<Net::DNS::Question>, -L<Net::DNS::RR>, RFC 1035 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Packet.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Packet.pm deleted file mode 100644 index 9aabcac01e4..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Packet.pm +++ /dev/null @@ -1,749 +0,0 @@ -package Net::DNS::Packet; -# -# $Id: Packet.pm 704 2008-02-06 21:30:59Z olaf $ -# -use strict; - -BEGIN { - eval { require bytes; } -} - -use vars qw(@ISA @EXPORT_OK $VERSION $AUTOLOAD); - -use Carp; -use Net::DNS ; -use Net::DNS::Question; -use Net::DNS::RR; - - - -require Exporter; -@ISA = qw(Exporter); -@EXPORT_OK = qw(dn_expand); - - -$VERSION = (qw$LastChangedRevision: 704 $)[1]; - - - -=head1 NAME - -Net::DNS::Packet - DNS packet object class - -=head1 SYNOPSIS - -C<use Net::DNS::Packet;> - -=head1 DESCRIPTION - -A C<Net::DNS::Packet> object represents a DNS packet. - -=head1 METHODS - -=head2 new - - $packet = Net::DNS::Packet->new("example.com"); - $packet = Net::DNS::Packet->new("example.com", "MX", "IN"); - - $packet = Net::DNS::Packet->new(\$data); - $packet = Net::DNS::Packet->new(\$data, 1); # set debugging - - ($packet, $err) = Net::DNS::Packet->new(\$data); - - $packet = Net::DNS::Packet->new(); - -If passed a domain, type, and class, C<new> creates a packet -object appropriate for making a DNS query for the requested -information. The type and class can be omitted; they default -to A and IN. - -If passed a reference to a scalar containing DNS packet data, -C<new> creates a packet object from that data. A second argument -can be passed to turn on debugging output for packet parsing. - -If called in array context, returns a packet object and an -error string. The error string will only be defined if the -packet object is undefined (i.e., couldn't be created). - -Returns B<undef> if unable to create a packet object (e.g., if -the packet data is truncated). - -If called with an empty argument list, C<new> creates an empty packet. - -=cut - -sub new { - my $class = shift; - my ($data) = @_; - return $class->parse(@_) if ref $data; - - my %self = ( header => Net::DNS::Header->new, - question => [], - answer => [], - authority => [], - additional => [] ); - - push @{$self{question}}, Net::DNS::Question->new(@_) if @_; - - bless \%self, $class; -} - - - -sub parse { - my $class = shift; - my $data = shift; - my $debug = shift || 0; - - my %self = ( question => [], - answer => [], - authority => [], - additional => [], - answersize => length $$data, - buffer => $data ); - - my $self = eval { - # Parse header section - my ($header, $offset) = Net::DNS::Header->parse($data); - $self{header} = $header; - - # Parse question/zone section - for ( 1 .. $header->qdcount ) { - my $qd; - ($qd, $offset) = Net::DNS::Question->parse($data, $offset); - push(@{$self{question}}, $qd); - } - - # Retain offset for on-demand parse of remaining data - $self{offset} = $offset; - - bless \%self, $class; - }; - - ($self || die $@)->print if $debug; - - return wantarray ? ($self, $@) : $self; -} - - - -=head2 data - - $data = $packet->data; - -Returns the packet data in binary format, suitable for sending to -a nameserver. - -=cut - -sub data { - my $self = shift; - my $data = ''; - my $header = $self->{header}; - - # Default question for empty packet - $self->push('question', Net::DNS::Question->new('','ANY','ANY')) - unless @{$self->{question}}; - - #---------------------------------------------------------------------- - # Set record counts in packet header - #---------------------------------------------------------------------- - $header->qdcount( scalar @{$self->{question}} ); - $header->ancount( scalar @{$self->{answer}} ); - $header->nscount( scalar @{$self->{authority}} ); - $header->arcount( scalar @{$self->{additional}} ); - - #---------------------------------------------------------------------- - # Get the data for each section in the packet - #---------------------------------------------------------------------- - $self->{compnames} = {}; - foreach my $component ( $header, - @{$self->{question}}, - @{$self->{answer}}, - @{$self->{authority}}, - @{$self->{additional}} ) { - $data .= $component->data($self, length $data); - } - - return $data; -} - - -=head2 header - - $header = $packet->header; - -Returns a C<Net::DNS::Header> object representing the header section -of the packet. - -=cut - -sub header { - return shift->{header}; -} - -=head2 question, zone - - @question = $packet->question; - -Returns a list of C<Net::DNS::Question> objects representing the -question section of the packet. - -In dynamic update packets, this section is known as C<zone> and -specifies the zone to be updated. - -=cut - -sub question { - return @{shift->{question}}; -} - -sub zone { &question } - -=head2 answer, pre, prerequisite - - @answer = $packet->answer; - -Returns a list of C<Net::DNS::RR> objects representing the answer -section of the packet. - -In dynamic update packets, this section is known as C<pre> or -C<prerequisite> and specifies the RRs or RRsets which must or -must not preexist. - -=cut - -sub answer { - my @rr = eval { &_answer }; - carp "$@ caught" if $@; - return @rr; -} - -sub _answer { - my ($self) = @_; - - my @rr = @{$self->{answer}}; - return @rr if @rr; # return if already parsed - - my $data = $self->{buffer}; # parse answer data - my $offset = $self->{offset} || return; - undef $self->{offset}; - my $ancount = $self->{header}->ancount; - my $rr; - while ( $ancount-- ) { - ($rr, $offset) = Net::DNS::RR->parse($data, $offset); - push(@rr, $rr); - } - $self->{offset} = $offset; # index next section - @{$self->{answer}} = @rr; -} - -sub pre { &answer } -sub prerequisite { &answer } - -=head2 authority, update - - @authority = $packet->authority; - -Returns a list of C<Net::DNS::RR> objects representing the authority -section of the packet. - -In dynamic update packets, this section is known as C<update> and -specifies the RRs or RRsets to be added or deleted. - -=cut - -sub authority { - my @rr = eval { &_authority }; - carp "$@ caught" if $@; - return @rr; -} - -sub _authority { - my ($self) = @_; - - my @rr = @{$self->{authority}}; - return @rr if @rr; # return if already parsed - - &_answer unless @{$self->{answer}}; # parse answer data - - my $data = $self->{buffer}; # parse authority data - my $offset = $self->{offset} || return; - undef $self->{offset}; - my $nscount = $self->{header}->nscount; - my $rr; - while ( $nscount-- ) { - ($rr, $offset) = Net::DNS::RR->parse($data, $offset); - push(@rr, $rr); - } - $self->{offset} = $offset; # index next section - @{$self->{authority}} = @rr; -} - -sub update { &authority } - -=head2 additional - - @additional = $packet->additional; - -Returns a list of C<Net::DNS::RR> objects representing the additional -section of the packet. - -=cut - -sub additional { - my @rr = eval { &_additional }; - carp "$@ caught" if $@; - return @rr; -} - -sub _additional { - my ($self) = @_; - - my @rr = @{$self->{additional}}; - return @rr if @rr; # return if already parsed - - &_authority unless @{$self->{authority}}; # parse authority data - - my $data = $self->{buffer}; # parse additional data - undef $self->{buffer}; # discard raw data after use - my $offset = $self->{offset} || return; - undef $self->{offset}; - my $arcount = $self->{header}->arcount; - my $rr; - while ( $arcount-- ) { - ($rr, $offset) = Net::DNS::RR->parse($data, $offset); - push(@rr, $rr); - } - @{$self->{additional}} = @rr; -} - - -=head2 print - - $packet->print; - -Prints the packet data on the standard output in an ASCII format -similar to that used in DNS zone files. - -=cut - -sub print { print &string; } - -=head2 string - - print $packet->string; - -Returns a string representation of the packet. - -=cut - -sub string { - my $self = shift; - - my $header = $self->{header}; - my $update = $header->opcode eq 'UPDATE'; - - my $server = $self->{answerfrom}; - my $string = $server ? ";; Answer received from $server ($self->{answersize} bytes)\n" : ""; - - $string .= ";; HEADER SECTION\n".$header->string; - - my $question = $update ? 'ZONE' : 'QUESTION'; - my @question = map{$_->string} $self->question; - my $qdcount = @question; - my $qds = $qdcount != 1 ? 's' : ''; - $string .= join "\n;; ", "\n;; $question SECTION ($qdcount record$qds)", @question; - - my $answer = $update ? 'PREREQUISITE' : 'ANSWER'; - my @answer = map{$_->string} $self->answer; - my $ancount = @answer; - my $ans = $ancount != 1 ? 's' : ''; - $string .= join "\n", "\n\n;; $answer SECTION ($ancount record$ans)", @answer; - - my $authority = $update ? 'UPDATE' : 'AUTHORITY'; - my @authority = map{$_->string} $self->authority; - my $nscount = @authority; - my $nss = $nscount != 1 ? 's' : ''; - $string .= join "\n", "\n\n;; $authority SECTION ($nscount record$nss)", @authority; - - my @additional = map{$_->string} $self->additional; - my $arcount = @additional; - my $ars = $arcount != 1 ? 's' : ''; - $string .= join "\n", "\n\n;; ADDITIONAL SECTION ($arcount record$ars)", @additional; - - return $string."\n\n"; -} - -=head2 answerfrom - - print "packet received from ", $packet->answerfrom, "\n"; - -Returns the IP address from which we received this packet. User-created -packets will return undef for this method. - -=cut - -sub answerfrom { - my $self = shift; - - return $self->{answerfrom} = shift if @_; - - return $self->{answerfrom}; -} - -=head2 answersize - - print "packet size: ", $packet->answersize, " bytes\n"; - -Returns the size of the packet in bytes as it was received from a -nameserver. User-created packets will return undef for this method -(use C<< length $packet->data >> instead). - -=cut - -sub answersize { - return shift->{answersize}; -} - -=head2 push - - $ancount = $packet->push(pre => $rr); - $nscount = $packet->push(update => $rr); - $arcount = $packet->push(additional => $rr); - - $nscount = $packet->push(update => $rr1, $rr2, $rr3); - $nscount = $packet->push(update => @rr); - -Adds RRs to the specified section of the packet. - -Returns the number of resource records in the specified section. - - -=cut - -sub push { - my $self = shift; - my $section = lc shift || ''; - my @rr = map{ref $_ ? $_ : ()} @_; - - my $hdr = $self->{header}; - for ( $section ) { - return $hdr->qdcount(push(@{$self->{question}}, @rr)) if /^question/; - - if ( $hdr->opcode eq 'UPDATE' ) { - my ($zone) = $self->zone; - my $zclass = $zone->zclass; - foreach ( @rr ) { - $_->class($zclass) unless $_->class =~ /ANY|NONE/; - } - } - - return $hdr->ancount(push(@{$self->{answer}}, @rr)) if /^ans|^pre/; - return $hdr->nscount(push(@{$self->{authority}}, @rr)) if /^auth|^upd/; - return $hdr->adcount(push(@{$self->{additional}}, @rr)) if /^add/; - } - - carp qq(invalid section "$section"); - return undef; # undefined record count -} - - -=head2 unique_push - - $ancount = $packet->unique_push(pre => $rr); - $nscount = $packet->unique_push(update => $rr); - $arcount = $packet->unique_push(additional => $rr); - - $nscount = $packet->unique_push(update => $rr1, $rr2, $rr3); - $nscount = $packet->unique_push(update => @rr); - -Adds RRs to the specified section of the packet provided that -the RRs do not already exist in the packet. - -Returns the number of resource records in the specified section. - -=cut - -sub unique_push { - my $self = shift; - my $section = shift; - my @rr = map{ref $_ ? $_ : ()} @_; - - my @unique = map{$self->{seen}->{ (lc $_->name) . $_->class . $_->type . $_->rdatastr }++ ? () : $_} @rr; - - return $self->push($section, @unique); -} - -=head2 safe_push - -A deprecated name for C<unique_push()>. - -=cut - -sub safe_push { - carp('safe_push() is deprecated, use unique_push() instead,'); - &unique_push; -} - - -=head2 pop - - my $rr = $packet->pop("pre"); - my $rr = $packet->pop("update"); - my $rr = $packet->pop("additional"); - my $rr = $packet->pop("question"); - -Removes RRs from the specified section of the packet. - -=cut - -sub pop { - my $self = shift; - my $section = lc shift || ''; - - for ( $section ) { - return pop(@{$self->{answer}}) if /^ans|^pre/; - return pop(@{$self->{question}}) if /^question/; - - $self->additional if $self->{buffer}; # parse remaining data - - return pop(@{$self->{authority}}) if /^auth|^upd/; - return pop(@{$self->{additional}}) if /^add/; - } - - carp qq(invalid section "$section"); - return undef; -} - - -=head2 dn_comp - - $compname = $packet->dn_comp("foo.example.com", $offset); - -Returns a domain name compressed for a particular packet object, to -be stored beginning at the given offset within the packet data. The -name will be added to a running list of compressed domain names for -future use. - -=cut - -sub dn_comp { - my ($self, $name, $offset) = @_; - # The Exporter module does not seem to catch this baby... - my @names=Net::DNS::name2labels($name); - my $namehash = $self->{compnames}; - my $compname=''; - - while (@names) { - my $dname = join('.', @names); - - if ( my $pointer = $namehash->{$dname} ) { - $compname .= pack('n', 0xc000 | $pointer); - last; - } - $namehash->{$dname} = $offset; - - my $label = shift @names; - my $length = length $label || next; # skip if null - if ( $length > 63 ) { - $length = 63; - $label = substr($label, 0, $length); - carp "\n$label...\ntruncated to $length octets (RFC1035 2.3.1)"; - } - $compname .= pack('C a*', $length, $label); - $offset += $length + 1; - } - - $compname .= pack('C', 0) unless @names; - - return $compname; -} - -=head2 dn_expand - - use Net::DNS::Packet qw(dn_expand); - ($name, $nextoffset) = dn_expand(\$data, $offset); - - ($name, $nextoffset) = Net::DNS::Packet::dn_expand(\$data, $offset); - -Expands the domain name stored at a particular location in a DNS -packet. The first argument is a reference to a scalar containing -the packet data. The second argument is the offset within the -packet where the (possibly compressed) domain name is stored. - -Returns the domain name and the offset of the next location in the -packet. - -Returns B<(undef)> if the domain name couldn't be expanded. - -=cut -# ' - -# This is very hot code, so we try to keep things fast. This makes for -# odd style sometimes. - -sub dn_expand { -#FYI my ($packet, $offset) = @_; - return dn_expand_XS(@_) if $Net::DNS::HAVE_XS; -# warn "USING PURE PERL dn_expand()\n"; - return dn_expand_PP(@_, {} ); # $packet, $offset, anonymous hash -} - -sub dn_expand_PP { - my ($packet, $offset, $visited) = @_; - my $packetlen = length $$packet; - my $name = ''; - - while ( $offset < $packetlen ) { - unless ( my $length = unpack("\@$offset C", $$packet) ) { - $name =~ s/\.$//o; - return ($name, ++$offset); - - } elsif ( ($length & 0xc0) == 0xc0 ) { # pointer - my $point = 0x3fff & unpack("\@$offset n", $$packet); - die 'Exception: unbounded name expansion' if $visited->{$point}++; - - my ($suffix) = dn_expand_PP($packet, $point, $visited); - - return ($name.$suffix, $offset+2) if defined $suffix; - - } else { - my $element = substr($$packet, ++$offset, $length); - $name .= Net::DNS::wire2presentation($element).'.'; - $offset += $length; - } - } - return undef; -} - -=head2 sign_tsig - - $key_name = "tsig-key"; - $key = "awwLOtRfpGE+rRKF2+DEiw=="; - - $update = Net::DNS::Update->new("example.com"); - $update->push("update", rr_add("foo.example.com A 10.1.2.3")); - - $update->sign_tsig($key_name, $key); - - $response = $res->send($update); - -Signs a packet with a TSIG resource record (see RFC 2845). Uses the -following defaults: - - algorithm = HMAC-MD5.SIG-ALG.REG.INT - time_signed = current time - fudge = 300 seconds - -If you wish to customize the TSIG record, you'll have to create it -yourself and call the appropriate Net::DNS::RR::TSIG methods. The -following example creates a TSIG record and sets the fudge to 60 -seconds: - - $key_name = "tsig-key"; - $key = "awwLOtRfpGE+rRKF2+DEiw=="; - - $tsig = Net::DNS::RR->new("$key_name TSIG $key"); - $tsig->fudge(60); - - $query = Net::DNS::Packet->new("www.example.com"); - $query->sign_tsig($tsig); - - $response = $res->send($query); - -You shouldn't modify a packet after signing it; otherwise authentication -will probably fail. - -=cut - -sub sign_tsig { - my $self = shift; - my $tsig = shift || return undef; - - unless ( ref $tsig && ($tsig->type eq "TSIG") ) { - my $key = shift || return undef; - $tsig = Net::DNS::RR->new("$tsig TSIG $key"); - } - - $self->push('additional', $tsig) if $tsig; - return $tsig; -} - - - -=head2 sign_sig0 - -SIG0 support is provided through the Net::DNS::RR::SIG class. This class is not part -of the default Net::DNS distribution but resides in the Net::DNS::SEC distribution. - - $update = Net::DNS::Update->new("example.com"); - $update->push("update", rr_add("foo.example.com A 10.1.2.3")); - $update->sign_sig0("Kexample.com+003+25317.private"); - - -SIG0 support is experimental see Net::DNS::RR::SIG for details. - -The method will call C<Carp::croak()> if Net::DNS::RR::SIG cannot be found. - - -=cut - -sub sign_sig0 { - my $self = shift; - my $arg = shift || return undef; - my $sig0; - - croak('sign_sig0() is only available when Net::DNS::SEC is installed') - unless $Net::DNS::DNSSEC; - - if ( ref $arg ) { - if ( UNIVERSAL::isa($arg,'Net::DNS::RR::SIG') ) { - $sig0 = $arg; - - } elsif ( UNIVERSAL::isa($arg,'Net::DNS::SEC::Private') ) { - $sig0 = Net::DNS::RR::SIG->create('', $arg); - - } elsif ( UNIVERSAL::isa($arg,'Net::DNS::RR::SIG::Private') ) { - carp ref($arg).' is deprecated - use Net::DNS::SEC::Private instead'; - $sig0 = Net::DNS::RR::SIG->create('', $arg); - - } else { - croak 'Incompatible class as argument to sign_sig0: '.ref($arg); - - } - - } else { - $sig0 = Net::DNS::RR::SIG->create('', $arg); - } - - $self->push('additional', $sig0) if $sig0; - return $sig0; -} - - - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -Portions Copyright (c) 2002-2005 Olaf Kolkman - -Portions Copyright (c) 2007-2008 Dick Franks - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - - - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Update>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1035 Section 4.1, RFC 2136 Section 2, RFC 2845 - -=cut - -1; diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Question.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Question.pm deleted file mode 100644 index a2094383e5e..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Question.pm +++ /dev/null @@ -1,260 +0,0 @@ -package Net::DNS::Question; -# -# $Id: Question.pm 704 2008-02-06 21:30:59Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} - -use vars qw($VERSION $AUTOLOAD); - -use Carp; -use Net::DNS; - -$VERSION = (qw$LastChangedRevision: 704 $)[1]; - -=head1 NAME - -Net::DNS::Question - DNS question class - -=head1 SYNOPSIS - -C<use Net::DNS::Question> - -=head1 DESCRIPTION - -A C<Net::DNS::Question> object represents a record in the -question section of a DNS packet. - -=head1 METHODS - -=head2 new - - $question = Net::DNS::Question->new("example.com", "MX", "IN"); - -Creates a question object from the domain, type, and class passed -as arguments. - -RFC4291 and RFC4632 IP address/prefix notation is supported for -queries in in-addr.arpa and ip6.arpa subdomains. - -=cut - -sub new { - my $class = shift; - - my $qname = shift; - my $qtype = uc (shift || 'A'); - my $qclass = uc (shift || 'IN'); - - $qname = '' unless defined $qname; # || ''; is NOT same! - $qname =~ s/\.+$//o; # strip gratuitous trailing dot - - # Check if the caller has the type and class reversed. - # We are not that kind for unknown types.... :-) - ($qtype, $qclass) = ($qclass, $qtype) - if exists $Net::DNS::classesbyname{$qtype} - and exists $Net::DNS::typesbyname{$qclass}; - - # if argument is an IP address, do appropriate reverse lookup - my $reverse = _dns_addr($qname) if $qname =~ m/:|\d$/o; - if ( $reverse ) { - $qname = $reverse; - $qtype = 'PTR' if $qtype =~ m/^(A|AAAA)$/o; - } - - my $self = { qname => $qname, - qtype => $qtype, - qclass => $qclass - }; - - bless $self, $class; -} - - -sub _dns_addr { - my $arg = shift; # name or IP address - - # IP address must contain address characters only - return undef if $arg =~ m#[^a-fA-F0-9:./]#o; - - # if arg looks like IPv4 address then map to in-addr.arpa space - if ( $arg =~ m#(^|:.*:)((^|\d+\.)+\d+)(/(\d+))?$#o ) { - my @parse = split /\./, $2; - my $prefx = $5 || @parse<<3; - my $last = $prefx > 24 ? 3 : ($prefx-1)>>3; - return join '.', reverse( (@parse,(0)x3)[0 .. $last] ), 'in-addr.arpa'; - } - - # if arg looks like IPv6 address then map to ip6.arpa space - if ( $arg =~ m#^((\w*:)+)(\w*)(/(\d+))?$#o ) { - my @parse = split /:/, (reverse "0${1}0${3}"), 9; - my @xpand = map{/./ ? $_ : ('0')x(9-@parse)} @parse; # expand :: - my $prefx = $5 || @xpand<<4; # implicit length if unspecified - my $hex = pack 'A4'x8, map{$_.'000'} ('0')x(8-@xpand), @xpand; - my $len = $prefx > 124 ? 32 : ($prefx+3)>>2; - return join '.', split(//, substr($hex,-$len) ), 'ip6.arpa'; - } - - return undef; -} - - -=head2 parse - - ($question, $offset) = Net::DNS::Question->parse(\$data, $offset); - -Parses a question section record at the specified location within a DNS packet. -The first argument is a reference to the packet data. -The second argument is the offset within the packet where the question record begins. - -Returns a Net::DNS::Question object and the offset of the next location in the packet. - -Parsing is aborted if the question object cannot be created (e.g., corrupt or insufficient data). - -=cut - -use constant PACKED_LENGTH => length pack 'n2', (0)x2; - -sub parse { - my ($class, $data, $offset) = @_; - - my ($qname, $index) = Net::DNS::Packet::dn_expand($data, $offset); - die 'Exception: corrupt or incomplete data' unless $index; - - my $next = $index + PACKED_LENGTH; - die 'Exception: incomplete data' if length $$data < $next; - my ($qtype, $qclass) = unpack("\@$index n2", $$data); - - my $self = { qname => $qname, - qtype => Net::DNS::typesbyval($qtype), - qclass => Net::DNS::classesbyval($qclass) - }; - - bless $self, $class; - - return wantarray ? ($self, $next) : $self; -} - - -# -# Some people have reported that Net::DNS dies because AUTOLOAD picks up -# calls to DESTROY. -# -sub DESTROY {} - -=head2 qname, zname - - print "qname = ", $question->qname, "\n"; - print "zname = ", $question->zname, "\n"; - -Returns the domain name. In dynamic update packets, this field is -known as C<zname> and refers to the zone name. - -=head2 qtype, ztype - - print "qtype = ", $question->qtype, "\n"; - print "ztype = ", $question->ztype, "\n"; - -Returns the record type. In dymamic update packets, this field is -known as C<ztype> and refers to the zone type (must be SOA). - -=head2 qclass, zclass - - print "qclass = ", $question->qclass, "\n"; - print "zclass = ", $question->zclass, "\n"; - -Returns the record class. In dynamic update packets, this field is -known as C<zclass> and refers to the zone's class. - -=cut - -sub zname { &qname; } -sub ztype { &qtype; } -sub zclass { &qclass; } - - -sub AUTOLOAD { - my $self = shift; - - my $name = $AUTOLOAD; - $name =~ s/.*://o; - - croak "$AUTOLOAD: no such method" unless exists $self->{$name}; - - return $self->{$name} unless @_; - - my $value = shift; - $value =~ s/\.+$//o if defined $value; # strip gratuitous trailing dot - $self->{$name} = $value; -} - -=head2 print - - $question->print; - -Prints the question record on the standard output. - -=cut - -sub print { print &string, "\n"; } - -=head2 string - - print $qr->string, "\n"; - -Returns a string representation of the question record. - -=cut - -sub string { - my $self = shift; - return "$self->{qname}.\t$self->{qclass}\t$self->{qtype}"; -} - -=head2 data - - $qdata = $question->data($packet, $offset); - -Returns the question record in binary format suitable for inclusion -in a DNS packet. - -Arguments are a C<Net::DNS::Packet> object and the offset within -that packet's data where the C<Net::DNS::Question> record is to -be stored. This information is necessary for using compressed -domain names. - -=cut - -sub data { - my ($self, $packet, $offset) = @_; - - my $data = $packet->dn_comp($self->{qname}, $offset); - - $data .= pack('n2', Net::DNS::typesbyname(uc $self->{qtype}), - Net::DNS::classesbyname(uc $self->{qclass}) - ); - return $data; -} - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -Portions Copyright (c) 2003,2006-2007 Dick Franks. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Update>, L<Net::DNS::Header>, L<Net::DNS::RR>, -RFC 1035 Section 4.1.2 - -=cut - -1; diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR.pm deleted file mode 100644 index c3e2b829f8d..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR.pm +++ /dev/null @@ -1,1022 +0,0 @@ -package Net::DNS::RR; -# -# $Id: RR.pm 705 2008-02-06 21:59:18Z olaf $ -# -use strict; - -BEGIN { - eval { require bytes; } -} - - -use vars qw($VERSION $AUTOLOAD %rrsortfunct ); -use Carp; -use Net::DNS; -use Net::DNS::RR::Unknown; - - - -$VERSION = (qw$LastChangedRevision: 705 $)[1]; - -=head1 NAME - -Net::DNS::RR - DNS Resource Record class - -=head1 SYNOPSIS - -C<use Net::DNS::RR> - -=head1 DESCRIPTION - -C<Net::DNS::RR> is the base class for DNS Resource Record (RR) objects. -See also the manual pages for each RR type. - -=head1 METHODS - -B<WARNING!!!> Don't assume the RR objects you receive from a query -are of a particular type -- always check an object's type before calling -any of its methods. If you call an unknown method, you'll get a nasty -warning message and C<Net::DNS::RR> will return C<undef> to the caller. - -=cut -#' Stupid Emacs (I Don't even USE emacs!) ' - -# %RR needs to be available within the scope of the BEGIN block. -# $RR_REGEX is a global just to be on the safe side. -# %_LOADED is used internally for autoloading the RR subclasses. -use vars qw(%RR %_LOADED $RR_REGEX); - -BEGIN { - - %RR = map { $_ => 1 } qw( - A - AAAA - AFSDB - CNAME - CERT - DNAME - EID - HINFO - ISDN - LOC - MB - MG - MINFO - MR - MX - NAPTR - NIMLOC - NS - NSAP - NULL - PTR - PX - RP - RT - SOA - SRV - TKEY - TSIG - TXT - X25 - OPT - SSHFP - SPF - IPSECKEY - ); - - # Only load DNSSEC if available - - eval { - local $SIG{'__DIE__'} = 'DEFAULT'; - require Net::DNS::RR::SIG; - }; - - unless ($@) { - $RR{'SIG'} = 1; - eval { - local $SIG{'__DIE__'} = 'DEFAULT'; - require Net::DNS::RR::NXT; - }; - - unless ($@) { - $RR{'NXT'} = 1; - } else { - die $@; - } - - eval { - local $SIG{'__DIE__'} = 'DEFAULT'; - require Net::DNS::RR::KEY; - }; - - unless ($@) { - $RR{'KEY'} = 1; - } else { - die $@; - } - - eval { - local $SIG{'__DIE__'} = 'DEFAULT'; - require Net::DNS::RR::DS; - }; - - unless ($@) { - $RR{'DS'} = 1; - - } else { - die $@; - } - - eval { - local $SIG{'__DIE__'} = 'DEFAULT'; - require Net::DNS::RR::RRSIG; - }; - - unless ($@) { - $RR{'RRSIG'} = 1; - # If RRSIG is available so should the other DNSSEC types - eval { - local $SIG{'__DIE__'} = 'DEFAULT'; - require Net::DNS::RR::NSEC; - }; - unless ($@) { - $RR{'NSEC'} = 1; - } else { - die $@; - } - eval { - local $SIG{'__DIE__'} = 'DEFAULT'; - require Net::DNS::RR::DNSKEY; - }; - - unless ($@) { - $RR{'DNSKEY'} = 1; - } else { - die $@; - } - } - - eval { - local $SIG{'__DIE__'} = 'DEFAULT'; - require Net::DNS::RR::DLV; - }; - - unless ($@) { - $RR{'DLV'} =1; - } else { - # Die only if we are dealing with a version for which DLV is - # available - die $@ if defined ($Net::DNS::SEC::HAS_DLV) ; - - } - - eval { - local $SIG{'__DIE__'} = 'DEFAULT'; - require Net::DNS::RR::NSEC3; - }; - - unless ($@) { - $RR{'NSEC3'} =1; - } else { - # Die only if we are dealing with a version for which NSEC3 is # available - die $@ if defined ($Net::DNS::SEC::HAS_NSEC3); - } - - - eval { - local $SIG{'__DIE__'} = 'DEFAULT'; - require Net::DNS::RR::NSEC3PARAM; - }; - - unless ($@) { - $RR{'NSEC3PARAM'} =1; - } else { - # Die only if we are dealing with a version for which NSEC3 is - # available - - die $@ if defined($Net::DNS::SEC::SVNVERSION) && $Net::DNS::SEC::SVNVERSION > 619; # In the code since. (for users of the SVN trunk) - } - - - - } -} - -sub build_regex { - my $classes = join('|', keys %Net::DNS::classesbyname, 'CLASS\\d+'); - - # Longest ones go first, so the regex engine will match AAAA before A. - my $types = join('|', sort { length $b <=> length $a } keys %Net::DNS::typesbyname); - - $types .= '|TYPE\\d+'; - - $RR_REGEX = " ^ - \\s* - (\\S+) # name anything non-space will do - \\s* - (\\d+)? - \\s* - ($classes)? - \\s* - ($types)? - \\s* - (.*) - \$"; - -# print STDERR "Regex: $RR_REGEX\n"; -} - - -=head2 new (from string) - - $a = Net::DNS::RR->new("foo.example.com. 86400 A 10.1.2.3"); - $mx = Net::DNS::RR->new("example.com. 7200 MX 10 mailhost.example.com."); - $cname = Net::DNS::RR->new("www.example.com 300 IN CNAME www1.example.com"); - $txt = Net::DNS::RR->new('baz.example.com 3600 HS TXT "text record"'); - -Returns a C<Net::DNS::RR> object of the appropriate type and -initialized from the string passed by the user. The format of the -string is that used in zone files, and is compatible with the string -returned by C<< Net::DNS::RR->string >>. - -The name and RR type are required; all other information is optional. -If omitted, the TTL defaults to 0 and the RR class defaults to IN. -Omitting the optional fields is useful for creating the empty RDATA -sections required for certain dynamic update operations. See the -C<Net::DNS::Update> manual page for additional examples. - -All names must be fully qualified. The trailing dot (.) is optional. - -=head2 new (from hash) - - $rr = Net::DNS::RR->new( - name => "foo.example.com", - ttl => 86400, - class => "IN", - type => "A", - address => "10.1.2.3", - ); - - $rr = Net::DNS::RR->new( - name => "foo.example.com", - type => "A", - ); - -Returns an RR object of the appropriate type, or a C<Net::DNS::RR> -object if the type isn't implemented. See the manual pages for -each RR type to see what fields the type requires. - -The C<Name> and C<Type> fields are required; all others are optional. -If omitted, C<TTL> defaults to 0 and C<Class> defaults to IN. Omitting -the optional fields is useful for creating the empty RDATA sections -required for certain dynamic update operations. - -The fields are case-insensitive, but starting each with uppercase -is recommended. - -=cut - -#' Stupid Emacs - - -sub new { - return new_from_string(@_) if @_ == 2; - return new_from_string(@_) if @_ == 3; - - return new_from_hash(@_); -} - - -sub new_from_data { - my $class = shift; - my ($name, $rrtype, $rrclass, $ttl, $rdlength, $data, $offset) = @_; - - my $self = { name => $name, - type => $rrtype, - class => $rrclass, - ttl => $ttl, - rdlength => $rdlength, - rdata => substr($$data, $offset, $rdlength) - }; - - if ($RR{$rrtype}) { - my $subclass = $class->_get_subclass($rrtype); - return $subclass->new($self, $data, $offset); - } else { - return Net::DNS::RR::Unknown->new($self, $data, $offset); - } - -} - -sub new_from_string { - my ($class, $rrstring, $update_type) = @_; - - build_regex() unless $RR_REGEX; - - # strip out comments - # Test for non escaped ";" by means of the look-behind assertion - # (the backslash is escaped) - $rrstring =~ s/(?<!\\);.*//og; - - ($rrstring =~ m/$RR_REGEX/xso) || - confess qq|qInternal Error: "$rrstring" did not match RR pat.\nPlease report this to the author!\n|; - - my $name = $1; - my $ttl = $2 || 0; - my $rrclass = $3 || ''; - - - my $rrtype = $4 || ''; - my $rdata = $5 || ''; - - $rdata =~ s/\s+$//o if $rdata; - $name =~ s/\.$//o if $name; - - - - # RFC3597 tweaks - # This converts to known class and type if specified as TYPE### - $rrtype = Net::DNS::typesbyval(Net::DNS::typesbyname($rrtype)) if $rrtype =~ m/^TYPE\d+/o; - $rrclass = Net::DNS::classesbyval(Net::DNS::classesbyname($rrclass)) if $rrclass =~ m/^CLASS\d+/o; - - - if (!$rrtype && $rrclass && $rrclass eq 'ANY') { - $rrtype = 'ANY'; - $rrclass = 'IN'; - } elsif (!$rrclass) { - $rrclass = 'IN'; - } - - $rrtype ||= 'ANY'; - - - if ($update_type) { - $update_type = lc $update_type; - - if ($update_type eq 'yxrrset') { - $ttl = 0; - $rrclass = 'ANY' unless $rdata; - } elsif ($update_type eq 'nxrrset') { - $ttl = 0; - $rrclass = 'NONE'; - $rdata = ''; - } elsif ($update_type eq 'yxdomain') { - $ttl = 0; - $rrclass = 'ANY'; - $rrtype = 'ANY'; - $rdata = ''; - } elsif ($update_type eq 'nxdomain') { - $ttl = 0; - $rrclass = 'NONE'; - $rrtype = 'ANY'; - $rdata = ''; - } elsif ($update_type =~ /^(rr_)?add$/o) { - $ttl = 86400 unless $ttl; - } elsif ($update_type =~ /^(rr_)?del(ete)?$/o) { - $ttl = 0; - $rrclass = $rdata ? 'NONE' : 'ANY'; - } - } - - # We used to check if $rrtype was defined at this point. However, - # we just defaulted it to ANY earlier.... - - my $self = { - 'name' => $name, - 'type' => $rrtype, - 'class' => $rrclass, - 'ttl' => $ttl, - 'rdlength' => 0, - 'rdata' => '', - }; - - if ($RR{$rrtype} && $rdata !~ m/^\s*\\#/o ) { - my $subclass = $class->_get_subclass($rrtype); - return $subclass->new_from_string($self, $rdata); - } elsif ($RR{$rrtype}) { # A RR type known to Net::DNS starting with \# - $rdata =~ m/\\\#\s+(\d+)\s+(.*)$/o; - - my $rdlength = $1; - my $hexdump = $2; - $hexdump =~ s/\s*//og; - - die "$rdata is inconsistent; length does not match content" - if length($hexdump) != $rdlength*2; - - $rdata = pack('H*', $hexdump); - - return Net::DNS::RR->new_from_data( - $name, - $rrtype, - $rrclass, - $ttl, - $rdlength, - \$rdata, - length($rdata) - $rdlength - ); - } elsif ($rdata=~/\s*\\\#\s+\d+\s+/o) { - #We are now dealing with the truly unknown. - die 'Expected RFC3597 representation of RDATA' - unless $rdata =~ m/\\\#\s+(\d+)\s+(.*)$/o; - - my $rdlength = $1; - my $hexdump = $2; - $hexdump =~ s/\s*//og; - - die "$rdata is inconsistent; length does not match content" - if length($hexdump) != $rdlength*2; - - $rdata = pack('H*', $hexdump); - - return Net::DNS::RR->new_from_data( - $name, - $rrtype, - $rrclass, - $ttl, - $rdlength, - \$rdata, - length($rdata) - $rdlength - ); - } else { - #God knows how to handle these... bless them in the RR class. - bless $self, $class; - return $self - } - -} - -sub new_from_hash { - my $class = shift; - my %keyval = @_; - my $self = {}; - - while ( my ($key, $val) = each %keyval ) { - ( $self->{lc $key} = $val ) =~ s/\.+$// if defined $val; - } - - croak('RR name not specified') unless defined $self->{name}; - croak('RR type not specified') unless defined $self->{type}; - - $self->{'ttl'} ||= 0; - $self->{'class'} ||= 'IN'; - - $self->{'rdlength'} = length $self->{'rdata'} - if $self->{'rdata'}; - - if ($RR{$self->{'type'}}) { - my $subclass = $class->_get_subclass($self->{'type'}); - - if (uc $self->{'type'} ne 'OPT') { - bless $self, $subclass; - - return $self; - } else { - # Special processing of OPT. Since TTL and CLASS are - # set by other variables. See Net::DNS::RR::OPT - # documentation - return $subclass->new_from_hash($self); - } - } elsif ($self->{'type'} =~ /TYPE\d+/o) { - bless $self, 'Net::DNS::RR::Unknown'; - return $self; - } else { - bless $self, $class; - return $self; - } -} - - -=head2 parse - - ($rrobj, $offset) = Net::DNS::RR->parse(\$data, $offset); - -Parses a DNS resource record at the specified location within a DNS packet. -The first argument is a reference to the packet data. -The second argument is the offset within the packet where the resource record begins. - -Returns a Net::DNS::RR object and the offset of the next location in the packet. - -Parsing is aborted if the object could not be created (e.g., corrupt or insufficient data). - -=cut - -use constant PACKED_LENGTH => length pack 'n2 N n', (0)x4; - -sub parse { - my ($objclass, $data, $offset) = @_; - - my ($name, $index) = Net::DNS::Packet::dn_expand($data, $offset); - die 'Exception: corrupt or incomplete data' unless $index; - - my $rdindex = $index + PACKED_LENGTH; - die 'Exception: incomplete data' if length $$data < $rdindex; - my ($type, $class, $ttl, $rdlength) = unpack("\@$index n2 N n", $$data); - - my $next = $rdindex + $rdlength; - die 'Exception: incomplete data' if length $$data < $next; - - $type = Net::DNS::typesbyval($type) || $type; - - # Special case for OPT RR where CLASS should be - # interpreted as 16 bit unsigned (RFC2671, 4.3) - if ($type ne 'OPT') { - $class = Net::DNS::classesbyval($class) || $class; - } - # else just retain numerical value - - my $self = $objclass->new_from_data($name, $type, $class, $ttl, $rdlength, $data, $rdindex); - die 'Exception: corrupt or incomplete RR subtype data' unless defined $self; - - return wantarray ? ($self, $next) : $self; -} - - -# -# Some people have reported that Net::DNS dies because AUTOLOAD picks up -# calls to DESTROY. -# -sub DESTROY {} - -=head2 print - - $rr->print; - -Prints the record to the standard output. Calls the -B<string> method to get the RR's string representation. - -=cut -#' someone said that emacs gets screwy here. Who am I to claim otherwise... - -sub print { print &string, "\n"; } - -=head2 string - - print $rr->string, "\n"; - -Returns a string representation of the RR. Calls the -B<rdatastr> method to get the RR-specific data. - -=cut - -sub string { - my $self = shift; - my $data = $self->rdatastr || '; no data'; - - join "\t", "$self->{name}.", $self->{ttl}, $self->{class}, $self->{type}, $data; -} - -=head2 rdatastr - - $s = $rr->rdatastr; - -Returns a string containing RR-specific data. Subclasses will need -to implement this method. - -=cut - -sub rdatastr { - my $self = shift; - return exists $self->{'rdlength'} - ? "; rdlength = $self->{'rdlength'}" - : ''; -} - -=head2 name - - $name = $rr->name; - -Returns the record's domain name. - -=head2 type - - $type = $rr->type; - -Returns the record's type. - -=head2 class - - $class = $rr->class; - -Returns the record's class. - -=cut - -# Used to AUTOLOAD this, but apparently some versions of Perl (specifically -# 5.003_07, included with some Linux distributions) would return the -# class the object was blessed into, instead of the RR's class. - -sub class { - my $self = shift; - - if (@_) { - $self->{'class'} = shift; - } elsif (!exists $self->{'class'}) { - Carp::carp('class: no such method'); - return undef; - } - return $self->{'class'}; -} - - -=head2 ttl - - $ttl = $rr->ttl; - -Returns the record's time-to-live (TTL). - -=head2 rdlength - - $rdlength = $rr->rdlength; - -Returns the length of the record's data section. - -=head2 rdata - - $rdata = $rr->rdata - -Returns the record's data section as binary data. - -=cut -#' -sub rdata { - my $self = shift; - my $retval = undef; - - if (@_ == 2) { - my ($packet, $offset) = @_; - $retval = $self->rr_rdata($packet, $offset); - } - elsif (exists $self->{'rdata'}) { - $retval = $self->{'rdata'}; - } - - return $retval; -} - -sub rr_rdata { - my $self = shift; - return exists $self->{'rdata'} ? $self->{'rdata'} : ''; -} - -#------------------------------------------------------------------------------ -# sub data -# -# This method is called by Net::DNS::Packet->data to get the binary -# representation of an RR. -#------------------------------------------------------------------------------ - -sub data { - my ($self, $packet, $offset) = @_; - my $data; - - - # Don't compress TSIG or TKEY names and don't mess with EDNS0 packets - if (uc($self->{'type'}) eq 'TSIG' || uc($self->{'type'}) eq 'TKEY') { - my $tmp_packet = Net::DNS::Packet->new(); - $data = $tmp_packet->dn_comp($self->{'name'}, 0); - return undef unless defined $data; - } elsif (uc($self->{'type'}) eq 'OPT') { - my $tmp_packet = Net::DNS::Packet->new(); - $data = $tmp_packet->dn_comp('', 0); - } else { - $data = $packet->dn_comp($self->{'name'}, $offset); - return undef unless defined $data; - } - - my $qtype = uc($self->{'type'}); - my $qtype_val = ($qtype =~ m/^\d+$/o) ? $qtype : Net::DNS::typesbyname($qtype); - $qtype_val = 0 if !defined($qtype_val); - - my $qclass = uc($self->{'class'}); - my $qclass_val = ($qclass =~ m/^\d+$/o) ? $qclass : Net::DNS::classesbyname($qclass); - $qclass_val = 0 if !defined($qclass_val); - $data .= pack('n', $qtype_val); - - # If the type is OPT then class will need to contain a decimal number - # containing the UDP payload size. (RFC2671 section 4.3) - if (uc($self->{'type'}) ne 'OPT') { - $data .= pack('n', $qclass_val); - } else { - $data .= pack('n', $self->{'class'}); - } - - $data .= pack('N', $self->{'ttl'}); - - $offset += length($data) + &Net::DNS::INT16SZ; # allow for rdlength - - my $rdata = $self->rdata($packet, $offset); - - $data .= pack('n', length $rdata); - $data.=$rdata; - - return $data; -} - - - - - -#------------------------------------------------------------------------------ -# This method is called by SIG objects verify method. -# It is almost the same as data but needed to get an representation of the -# packets in wire format withoud domain name compression. -# It is essential to DNSSEC RFC 2535 section 8 -#------------------------------------------------------------------------------ - -sub _canonicaldata { - my $self = shift; - my $data=''; - { - my $name=$self->{'name'}; - my @dname=Net::DNS::name2labels($name); - for (my $i=0;$i<@dname;$i++){ - $data .= pack ('C',length $dname[$i] ); - $data .= lc($dname[$i] ); - } - $data .= pack ('C','0'); - } - $data .= pack('n', Net::DNS::typesbyname(uc($self->{'type'}))); - $data .= pack('n', Net::DNS::classesbyname(uc($self->{'class'}))); - $data .= pack('N', $self->{'ttl'}); - - - my $rdata = $self->_canonicalRdata; - - $data .= pack('n', length $rdata); - $data .= $rdata; - return $data; - - -} - -# These are methods that are used in the DNSSEC context... Some RR -# have domain names in them. Verification works only on RRs with -# uncompressed domain names. (Canonical format as in sect 8 of -# RFC2535) _canonicalRdata is overwritten in those RR objects that -# have domain names in the RDATA and _name2wire is used to convert a -# domain name to "wire format" - - -sub _canonicalRdata { - my $self=shift; - my $packet=Net::DNS::Packet->new(); - my $rdata = $self->rr_rdata($packet,0); - return $rdata; -} - - - - - -sub _name2wire { - my ($self, $name) = @_; - - my $rdata=""; - my $compname = ""; - my @dname = Net::DNS::name2labels($name); - - - for (@dname) { - $rdata .= pack('C', length $_); - $rdata .= $_ ; - } - - $rdata .= pack('C', '0'); - return $rdata; -} - - - - - -sub AUTOLOAD { - my ($self) = @_; # If we do shift here, it will mess up the goto below. - my ($name) = $AUTOLOAD =~ m/^.*::(.*)$/o; - if ($name =~ /set_rrsort_func/){ - return Net::DNS::RR::set_rrsort_func(@_); - } - if ($name =~ /get_rrsort_func/){ - return Net::DNS::RR::get_rrsort_func(@_); - } - # XXX -- We should test that we do in fact carp on unknown methods. - unless (exists $self->{$name}) { - my $rr_string = $self->string; - Carp::carp(<<"AMEN"); - -*** -*** WARNING!!! The program has attempted to call the method -*** "$name" for the following RR object: -*** -*** $rr_string -*** -*** This object does not have a method "$name". THIS IS A BUG -*** IN THE CALLING SOFTWARE, which has incorrectly assumed that -*** the object would be of a particular type. The calling -*** software should check the type of each RR object before -*** calling any of its methods. -*** -*** Net::DNS has returned undef to the caller. -*** - -AMEN -return; - } - - no strict q/refs/; - - # Build a method in the class. - *{$AUTOLOAD} = sub { - my ($self, $new_val) = @_; - - if (defined $new_val) { - $self->{$name} = $new_val; - } - - return $self->{$name}; - }; - - # And jump over to it. - goto &{$AUTOLOAD}; -} - - - -# -# Net::DNS::RR->_get_subclass($type) -# -# Return a subclass, after loading a subclass (if needed) -# -sub _get_subclass { - my ($class, $type) = @_; - - return unless $type and $RR{$type}; - - my $subclass = join('::', $class, $type); - - unless ($_LOADED{$subclass}) { - eval "require $subclass"; - die $@ if $@; - $_LOADED{$subclass}++; - } - - return $subclass; -} - - - - -=head1 Sorting of RR arrays - -As of version 0.55 there is functionality to help you sort RR -arrays. The sorting is done by Net::DNS::rrsort(), see the -L<Net::DNS> documentation. This package provides class methods to set -the sorting functions used for a particular RR based on a particular -attribute. - - -=head2 set_rrsort_func - -Net::DNS::RR::SRV->set_rrsort_func("priority", - sub { - my ($a,$b)=($Net::DNS::a,$Net::DNS::b); - $a->priority <=> $b->priority - || - $b->weight <=> $a->weight - } - -Net::DNS::RR::SRV->set_rrsort_func("default_sort", - sub { - my ($a,$b)=($Net::DNS::a,$Net::DNS::b); - $a->priority <=> $b->priority - || - $b->weight <=> $a->weight - } - -set_rrsort_func needs to be called as a class method. The first -argument is the attribute name on which the sorting will need to take -place. If you specify "default_sort" than that is the sort algorithm -that will be used in the case that rrsort() is called without an RR -attribute as argument. - -The second argument is a reference to a function that uses the -variables $a and $b global to the C<from Net::DNS>(!!)package for the -sorting. During the sorting $a and $b will contain references to -objects from the class you called the set_prop_sort from. In other -words, you can rest assured that the above sorting function will only -get Net::DNS::RR::SRV objects. - -The above example is the sorting function that actually is implemented in -SRV. - -=cut - - - - -sub set_rrsort_func{ - my $class=shift; - my $attribute=shift; - my $funct=shift; -# print "Using ".__PACKAGE__."set_rrsort: $class\n"; - my ($type) = $class =~ m/^.*::(.*)$/o; - $Net::DNS::RR::rrsortfunct{$type}{$attribute}=$funct; -} - -sub get_rrsort_func { - my $class=shift; - my $attribute=shift; #can be undefined. - my $sortsub; - my ($type) = $class =~ m/^.*::(.*)$/o; - - -# print "Using ".__PACKAGE__." get_rrsort: $class ($type,$attribute)\n"; -# use Data::Dumper; -# print Dumper %Net::DNS::rrsortfunct; - - if (defined($attribute) && - exists($Net::DNS::RR::rrsortfunct{$type}) && - exists($Net::DNS::RR::rrsortfunct{$type}{$attribute}) - ){ - # The default overwritten by the class variable in Net::DNS - return $Net::DNS::RR::rrsortfunct{$type}{$attribute}; - }elsif( - ! defined($attribute) && - exists($Net::DNS::RR::rrsortfunct{$type}) && - exists($Net::DNS::RR::rrsortfunct{$type}{'default_sort'}) - ){ - # The default overwritten by the class variable in Net::DNS - return $Net::DNS::RR::rrsortfunct{$type}{'default_sort'}; - } - elsif( defined($attribute) ){ - - return sub{ - my ($a,$b)=($Net::DNS::a,$Net::DNS::b); - ( exists($a->{$attribute}) && - $a->{$attribute} <=> $b->{$attribute}) - || - $a->_canonicaldata() cmp $b->_canonicaldata() - }; - }else{ - return sub{ - my ($a,$b)=($Net::DNS::a,$Net::DNS::b); - $a->_canonicaldata() cmp $b->_canonicaldata() - }; - } - - return $sortsub; -} - - - - - - - -sub STORABLE_freeze { - my ($self, $cloning) = @_; - - return if $cloning; - - return ('', {%$self}); -} - -sub STORABLE_thaw { - my ($self, $cloning, undef, $data) = @_; - - %{$self} = %{$data}; - - __PACKAGE__->_get_subclass($self->{'type'}); - - return $self; -} - -=head1 BUGS - -This version of C<Net::DNS::RR> does little sanity checking on user-created -RR objects. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -Portions Copyright (c) 2005-2007 Olaf Kolkman - -Portions Copyright (c) 2007 Dick Franks - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -EDNS0 extensions by Olaf Kolkman. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Update>, L<Net::DNS::Header>, L<Net::DNS::Question>, -RFC 1035 Section 4.1.3 - -=cut - -1; diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/A.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/A.pm deleted file mode 100644 index 0ff7be36f75..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/A.pm +++ /dev/null @@ -1,95 +0,0 @@ -package Net::DNS::RR::A; -# -# $Id: A.pm 546 2005-12-16 15:23:03Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} - - -use vars qw(@ISA $VERSION); - -use Socket; - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 546 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - $self->{"address"} = inet_ntoa(substr($$data, $offset, 4)); - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string && ($string =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)\s*$/o) - && ($1 >= 0) && ($1 <= 255) - && ($2 >= 0) && ($2 <= 255) - && ($3 >= 0) && ($3 <= 255) - && ($4 >= 0) && ($4 <= 255) ) { - - $self->{"address"} = "$1.$2.$3.$4"; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - - return $self->{"address"} || ''; -} - -sub rr_rdata { - my $self = shift; - - return exists $self->{"address"} - ? inet_aton($self->{"address"}) - : ""; -} - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::A - DNS A resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Address (A) resource records. - -=head1 METHODS - -=head2 address - - print "address = ", $rr->address, "\n"; - -Returns the RR's address field. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1035 Section 3.4.1 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/AAAA.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/AAAA.pm deleted file mode 100644 index f8c6a212465..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/AAAA.pm +++ /dev/null @@ -1,124 +0,0 @@ -package Net::DNS::RR::AAAA; -# -# $Id: AAAA.pm 388 2005-06-22 10:06:05Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} - -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 388 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - my @addr = unpack("\@$offset n8", $$data); - $self->{"address"} = sprintf("%x:%x:%x:%x:%x:%x:%x:%x", @addr); - } - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string) { - my @addr; - - # I think this is correct, per RFC 1884 Sections 2.2 & 2.4.4. - if ($string =~ /^(.*):(\d+)\.(\d+)\.(\d+)\.(\d+)$/) { - my ($front, $a, $b, $c, $d) = ($1, $2, $3, $4, $5); - $string = $front . sprintf(":%x:%x", - ($a << 8 | $b), - ($c << 8 | $d)); - } - - if ($string =~ /^(.*)::(.*)$/) { - my ($front, $back) = ($1, $2); - my @front = split(/:/, $front); - my @back = split(/:/, $back); - my $fill = 8 - (@front ? $#front + 1 : 0) - - (@back ? $#back + 1 : 0); - my @middle = (0) x $fill; - @addr = (@front, @middle, @back); - } - else { - @addr = split(/:/, $string); - if (@addr < 8) { - @addr = ((0) x (8 - @addr), @addr); - } - } - - $self->{"address"} = sprintf("%x:%x:%x:%x:%x:%x:%x:%x", - map { hex $_ } @addr); - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - - return $self->{"address"} || ''; -} - -sub rr_rdata { - my $self = shift; - my $rdata = ""; - - if (exists $self->{"address"}) { - my @addr = split(/:/, $self->{"address"}); - $rdata .= pack("n8", map { hex $_ } @addr); - } - - return $rdata; -} - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::AAAA - DNS AAAA resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS IPv6 Address (AAAA) resource records. - -=head1 METHODS - -=head2 address - - print "address = ", $rr->address, "\n"; - -Returns the RR's address field. - -=head1 BUGS - -The C<string> method returns only the preferred method of address -representation ("x:x:x:x:x:x:x:x", as documented in RFC 1884, -Section 2.2, Para 1). - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1886 Section 2, RFC 1884 Sections 2.2 & 2.4.4 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/AFSDB.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/AFSDB.pm deleted file mode 100644 index 8b941adbfff..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/AFSDB.pm +++ /dev/null @@ -1,122 +0,0 @@ -package Net::DNS::RR::AFSDB; -# -# $Id: AFSDB.pm 632 2007-03-12 13:24:21Z olaf $ -# -use strict; - -BEGIN { - eval { require bytes; } -} - -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 632 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - my ($subtype) = unpack("\@$offset n", $$data); - $offset += Net::DNS::INT16SZ(); - my($hostname) = Net::DNS::Packet::dn_expand($data, $offset); - $self->{"subtype"} = $subtype; - $self->{"hostname"} = $hostname; - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string && ($string =~ /^(\d+)\s+(\S+)$/)) { - $self->{"subtype"} = $1; - $self->{"hostname"} = $2; - $self->{"hostname"} =~ s/\.+$//;; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - - return exists $self->{"subtype"} - ? "$self->{subtype} $self->{hostname}." - : ''; -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - if (exists $self->{"subtype"}) { - $rdata .= pack("n", $self->{"subtype"}); - $rdata .= $packet->dn_comp($self->{"hostname"}, - $offset + length $rdata); - } - - return $rdata; -} - - - -sub _canonicalRdata { - # rdata contains a compressed domainname... we should not have that. - my ($self) = @_; - my $rdata; - if (exists $self->{"subtype"}) { - $rdata .= pack("n", $self->{"subtype"}); - $rdata .= $self->_name2wire(lc($self->{"hostname"})); - } - return $rdata; -} - - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::AFSDB - DNS AFSDB resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS AFS Data Base (AFSDB) resource records. - -=head1 METHODS - -=head2 subtype - - print "subtype = ", $rr->subtype, "\n"; - -Returns the RR's subtype field. Use of the subtype field is documented -in RFC 1183. - -=head2 hostname - - print "hostname = ", $rr->hostname, "\n"; - -Returns the RR's hostname field. See RFC 1183. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1183 Section 1 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/CERT.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/CERT.pm deleted file mode 100644 index 011d7871474..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/CERT.pm +++ /dev/null @@ -1,178 +0,0 @@ -package Net::DNS::RR::CERT; -# -# $Id: CERT.pm 388 2005-06-22 10:06:05Z olaf $ -# -# Written by Mike Schiraldi <raldi@research.netsol.com> for VeriSign - -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -use MIME::Base64; - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 388 $)[1]; - -my %formats = ( - PKIX => 1, - SPKI => 2, - PGP => 3, - URI => 253, - OID => 254, -); - -my %r_formats = reverse %formats; - -my %algorithms = ( - RSAMD5 => 1, - DH => 2, - DSA => 3, - ECC => 4, - INDIRECT => 252, - PRIVATEDNS => 253, - PRIVATEOID => 254, -); - -my %r_algorithms = reverse %algorithms; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - my ($format, $tag, $algorithm) = unpack("\@$offset n2C", $$data); - - $offset += 2 * Net::DNS::INT16SZ() + 1; - - my $length = $self->{"rdlength"} - (2 * Net::DNS::INT16SZ() + 1); - my $certificate = substr($$data, $offset, $length); - - $self->{"format"} = $format; - $self->{"tag"} = $tag; - $self->{"algorithm"} = $algorithm; - $self->{"certificate"} = $certificate; - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - $string or return bless $self, $class; - - my ($format, $tag, $algorithm, @rest) = split " ", $string; - @rest or return bless $self, $class; - - # look up mnemonics - # the "die"s may be rash, but proceeding would be dangerous - if ($algorithm =~ /\D/) { - $algorithm = $algorithms{$algorithm} || die "Unknown algorithm mnemonic: '$algorithm'"; - } - - if ($format =~ /\D/) { - $format = $formats{$format} || die "Unknown format mnemonic: '$format'"; - } - - $self->{"format"} = $format; - $self->{"tag"} = $tag; - $self->{"algorithm"} = $algorithm; - $self->{"certificate"} = MIME::Base64::decode(join('', @rest)); - - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - my $rdatastr; - - if (exists $self->{"format"}) { - my $cert = MIME::Base64::encode $self->{certificate}; - $cert =~ s/\n//g; - - my $format = defined $r_formats{$self->{"format"}} - ? $r_formats{$self->{"format"}} : $self->{"format"}; - - my $algorithm = defined $r_algorithms{$self->{algorithm}} - ? $r_algorithms{$self->{algorithm}} : $self->{algorithm}; - - $rdatastr = "$format $self->{tag} $algorithm $cert"; - } else { - $rdatastr = ''; - } - - return $rdatastr; -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - - my $rdata = ""; - - if (exists $self->{"format"}) { - $rdata .= pack("n2", $self->{"format"}, $self->{tag}); - $rdata .= pack("C", $self->{algorithm}); - $rdata .= $self->{certificate}; - } - - return $rdata; -} - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::CERT - DNS CERT resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Certificate (CERT) resource records. (see RFC 2538) - -=head1 METHODS - -=head2 format - - print "format = ", $rr->format, "\n"; - -Returns the format code for the certificate (in numeric form) - -=head2 tag - - print "tag = ", $rr->tag, "\n"; - -Returns the key tag for the public key in the certificate - -=head2 algorithm - - print "algorithm = ", $rr->algorithm, "\n"; - -Returns the algorithm used by the certificate (in numeric form) - -=head2 certificate - - print "certificate = ", $rr->certificate, "\n"; - -Returns the data comprising the certificate itself (in raw binary form) - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 2782 - diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/CNAME.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/CNAME.pm deleted file mode 100644 index d74a816beb1..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/CNAME.pm +++ /dev/null @@ -1,97 +0,0 @@ -package Net::DNS::RR::CNAME; -# -# $Id: CNAME.pm 632 2007-03-12 13:24:21Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} - -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 632 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - ($self->{"cname"}) = Net::DNS::Packet::dn_expand($data, $offset); - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string) { - $string =~ s/\.+$//; - $self->{"cname"} = $string; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - - return $self->{"cname"} ? "$self->{cname}." : ''; -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - if (exists $self->{"cname"}) { - $rdata = $packet->dn_comp($self->{"cname"}, $offset); - } - - return $rdata; -} - -# rdata contains a compressed domainname... we should not have that. -sub _canonicalRdata { - my ($self) = @_; - return $self->_name2wire(lc($self->{"cname"})); -} - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::CNAME - DNS CNAME resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Canonical Name (CNAME) resource records. - -=head1 METHODS - -=head2 cname - - print "cname = ", $rr->cname, "\n"; - -Returns the RR's canonical name. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1035 Section 3.3.1 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/DNAME.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/DNAME.pm deleted file mode 100644 index c64eea25d14..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/DNAME.pm +++ /dev/null @@ -1,90 +0,0 @@ -package Net::DNS::RR::DNAME; -# -# $Id: DNAME.pm 388 2005-06-22 10:06:05Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 388 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - ($self->{"dname"}) = Net::DNS::Packet::dn_expand($data, $offset); - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string) { - $string =~ s/\.+$//; - $self->{"dname"} = $string; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - - return $self->{"dname"} ? "$self->{dname}." : ''; -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - if (exists $self->{"dname"}) { - $rdata = $packet->dn_comp($self->{"dname"}, $offset); - } - - return $rdata; -} - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::DNAME - DNS DNAME resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Non-Terminal Name Redirection (DNAME) resource records. - -=head1 METHODS - -=head2 dname - - print "dname = ", $rr->dname, "\n"; - -Returns the DNAME target. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 2672 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/EID.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/EID.pm deleted file mode 100644 index f46f584ecb5..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/EID.pm +++ /dev/null @@ -1,63 +0,0 @@ -package Net::DNS::RR::EID; -# -# $Id: EID.pm 388 2005-06-22 10:06:05Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 388 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - return bless $self, $class; -} - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::EID - DNS EID resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Endpoint Identifier (EID) resource records. - -=head1 METHODS - -=head2 rdlength - - print "rdlength = ", $rr->rdlength, "\n"; - -Returns the length of the record's data section. - -=head2 rdata - - $rdata = $rr->rdata; - -Returns the record's data section as binary data. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -draft-ietf-nimrod-dns-I<xx>.txt - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/HINFO.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/HINFO.pm deleted file mode 100644 index b062a4371be..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/HINFO.pm +++ /dev/null @@ -1,125 +0,0 @@ -package Net::DNS::RR::HINFO; -# -# $Id: HINFO.pm 639 2007-05-25 12:00:15Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); -use Net::DNS::RR::TXT; - -@ISA = qw(Net::DNS::RR Net::DNS::RR::TXT); -$VERSION = (qw$LastChangedRevision: 639 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - my ($cpu, $os, $len); - - ($len) = unpack("\@$offset C", $$data); - ++$offset; - $cpu = substr($$data, $offset, $len); - $offset += $len; - - ($len) = unpack("\@$offset C", $$data); - ++$offset; - $os = substr($$data, $offset, $len); - $offset += $len; - - $self->{"cpu"} = $cpu; - $self->{"os"} = $os; - } - - return bless $self, $class; -} - -sub new_from_string { - my ( $class, $self, $rdata_string ) = @_ ; - - bless $self, $class; - - $self->_build_char_str_list($rdata_string); - my @elements= $self->char_str_list(); - if (@elements==2){ - - - $self->{"cpu"} = $elements[0]; - $self->{"os"} = $elements[1]; - }else{ - return; - } - - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - - return $self->{"cpu"} - ? qq("$self->{cpu}" "$self->{os}") - : ''; -} - -sub rr_rdata { - my $self = shift; - my $rdata = ""; - - if (exists $self->{"cpu"}) { - $rdata .= pack("C", length $self->{"cpu"}); - $rdata .= $self->{"cpu"}; - - $rdata .= pack("C", length $self->{"os"}); - $rdata .= $self->{"os"}; - } - - return $rdata; -} - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::HINFO - DNS HINFO resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Host Information (HINFO) resource records. - -=head1 METHODS - -=head2 cpu - - print "cpu = ", $rr->cpu, "\n"; - -Returns the CPU type for this RR. - -=head2 os - - print "os = ", $rr->os, "\n"; - -Returns the operating system type for this RR. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. -Portions Copyright (c) 2002-2004 Chris Reinhardt -Portions Copyright (c) 2007 NLnet Labs - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1035 Section 3.3.2 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/IPSECKEY.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/IPSECKEY.pm deleted file mode 100644 index dff03952617..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/IPSECKEY.pm +++ /dev/null @@ -1,237 +0,0 @@ -package Net::DNS::RR::IPSECKEY; - - -# -# $Id: IPSECKEY.pm 654 2007-06-20 15:02:50Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION ); -use Socket; - -use MIME::Base64; - -$VERSION = (qw$LastChangedRevision: 654 $)[1]; - -@ISA = qw(Net::DNS::RR); - - -#my %gatetype = ( -# 0 => "No gateway is present.", -# 1 => "A 4-byte IPv4 address is present.", -# 2 => "A 16-byte IPv6 address is present.", -# 3 => "A wire-encoded domain name is present.", -# ); - -#my %algtype = ( -# RSA => 1, -# DSA => 2, -#); - -#my %fingerprinttype = ( -# 'SHA-1' => 1, -#); - -#my %fingerprinttypebyval = reverse %fingerprinttype; -#my %gatetypebyval= reverse %gatetype; -#my %algtypebyval = reverse %algtype; - - -sub new { - my ($class, $self, $data, $offset) = @_; - - my $offsettoprec = $offset; - my $offsettogatetype = $offset+1; - my $offsettoalgor = $offset+2; - my $offsettogateway = $offset+3; - my $offsettopubkey; - - $self->{'precedence'} = unpack('C', substr($$data, $offsettoprec, 1)); - $self->{'gatetype'} = unpack('C', substr($$data, $offsettogatetype, 1)); - $self->{'algorithm'} = unpack('C', substr($$data, $offsettoalgor, 1)); - - if ($self->{'gatetype'}==0){ - $self->{'gateway'}='.'; - $offsettopubkey= $offsettogateway; - }elsif($self->{'gatetype'}==1){ - $self->{'gateway'} = inet_ntoa(substr($$data, $offsettogateway, 4)); - $offsettopubkey= $offsettogateway+4; - }elsif($self->{'gatetype'}==2){ - $offsettopubkey= $offsettogateway+16; - my @addr = unpack("\@$offsettogateway n8", $$data); - $self->{'gateway'} = sprintf("%x:%x:%x:%x:%x:%x:%x:%x", @addr); - }elsif($self->{'gatetype'}==3){ - ($self->{'gateway'}, $offsettopubkey) = Net::DNS::Packet::dn_expand($data, $offsettogateway); - - }else{ - die "Could not parse packet, no known gateway type (".$self->{'gatetype'}.")"; - } - my($pubmaterial)=substr($$data, $offsettopubkey, - ($self->{"rdlength"}-$offsettopubkey+$offset)); - - $self->{"pubbin"}=$pubmaterial; - - return bless $self, $class; -} - - - -sub new_from_string { - my ($class, $self, $string) = @_; - if ($string && ($string =~ /^(\d+)\s+(\d)\s+(\d)\s+(\S+)\s+(\S+)$/)) { - $self->{"precedence"} = $1; - $self->{"gatetype"} = $2; - $self->{"algorithm"} = $3; - if ($self->{"gatetype"}==2){ - # Using the AAAA.pm parsing functionality. - my $AAAA=Net::DNS::RR->new("FOO AAAA ".$4); - $self->{"gateway"}=$AAAA->rdatastr; - }else - { - $self->{"gateway"}= $4; - } - $self->{"pubkey"}= $5; - } - - - return bless $self, $class; -} - - -sub pubkey { - my $self=shift; - - $self->{"pubkey"}= encode_base64($self->{"pubbin"},"") unless defined $self->{"pubkey"}; - - return $self->{"pubkey"}; -} - - -sub pubbin { - my $self=shift; - $self->{"pubbin"}= decode_base64($self->{"pubkey"}) unless defined $self->{"pubbin"}; - - return $self->{"pubbin"}; -} - - -sub rdatastr { - my $self = shift; - my $rdatastr = ''; - return "" unless defined $self->{precedence}; - $rdatastr .= $self->{"precedence"} . " ". $self->{"gatetype"} . " " . - $self->{"algorithm"}. " "; - if ($self->{"gatetype"}==0){ - $rdatastr .= ". "; - }else{ - $rdatastr .= $self->{"gateway"}. " "; - } - $rdatastr .= $self->pubkey(); - - return $rdatastr; -} - -sub rr_rdata { - my $self = shift; - my $rdata = ""; - if (exists $self->{"precedence"}) { - $rdata .= pack("C", $self->{"precedence"}); - $rdata .= pack("C", $self->{"gatetype"}); - $rdata .= pack("C", $self->{"algorithm"}); - if ($self->{"gatetype"}==1 ){ - $rdata .= inet_aton($self->{"gateway"}); - }elsif($self->{"gatetype"}==2){ - my @addr = split(/:/, $self->{"gateway"}); - $rdata .= pack("n8", map { hex $_ } @addr); - }elsif($self->{"gatetype"}==3){ - # No Compression _name2wire will do. - $rdata .= $self->_name2wire($self->{"gateway"}); - } - $rdata .= $self->pubbin(); - } - - return $rdata; - -} - - - - - -1; - - -=head1 NAME - -Net::DNS::RR::IPSECKEY - DNS IPSECKEY resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -CLASS for the IPSECKEY RR. - -=head1 METHODS - -In addition to the regular methods - - -=head2 algorithm - -Returns the RR's algorithm field in decimal representation - - 1 = RSA - 2 = DSA - -=head2 precedence - -Returns the presedence - -=head2 gatetype - -Returns the gatetype. - - 0 "No gateway is present.", - 1 "A 4-byte IPv4 address is present.", - 2 "A 16-byte IPv6 address is present.", - 3 "A wire-encoded domain name is present.", - -=head2 gateway - -Returns the gateway in the relevant string notation. - -=head2 pubkey - -Returns the public key in base64 notation - -=head2 pubbin - -Returns the binary public key material in a string. - -=head1 TODO - -Check on validity of algorithm and gatetype. - -=head1 COPYRIGHT - -Copyright (c) 2007 NLnet LAbs, Olaf Kolkman. - -"All rights reserved, This program is free software; you may redistribute it -and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -draft-ietf-dnssext-delegation-signer - -=cut - - - - - diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/ISDN.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/ISDN.pm deleted file mode 100644 index 117e178b43b..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/ISDN.pm +++ /dev/null @@ -1,129 +0,0 @@ -package Net::DNS::RR::ISDN; -# -# $Id: ISDN.pm 388 2005-06-22 10:06:05Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 388 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - my ($address, $sa, $len); - - ($len) = unpack("\@$offset C", $$data); - ++$offset; - $address = substr($$data, $offset, $len); - $offset += $len; - - if ($len + 1 < $self->{"rdlength"}) { - ($len) = unpack("\@$offset C", $$data); - ++$offset; - $sa = substr($$data, $offset, $len); - $offset += $len; - } - else { - $sa = ""; - } - - $self->{"address"} = $address; - $self->{"sa"} = $sa; - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string && $string =~ /^['"](.*?)['"](.*)/s) { - $self->{"address"} = $1; - my $rest = $2; - - if ($rest =~ /^\s+['"](.*?)['"]$/) { - $self->{"sa"} = $1; - } - else { - $self->{"sa"} = ""; - } - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - - return $self->{"address"} - ? qq("$self->{address}" "$self->{sa}") - : ''; -} - -sub rr_rdata { - my $self = shift; - my $rdata = ""; - - if (exists $self->{"address"}) { - $rdata .= pack("C", length $self->{"address"}); - $rdata .= $self->{"address"}; - - if ($self->{"sa"}) { - $rdata .= pack("C", length $self->{"sa"}); - $rdata .= $self->{"sa"}; - } - } - - return $rdata; -} - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::ISDN - DNS ISDN resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS ISDN resource records. - -=head1 METHODS - -=head2 address - - print "address = ", $rr->address, "\n"; - -Returns the RR's address field. - -=head2 sa - - print "subaddress = ", $rr->sa, "\n"; - -Returns the RR's subaddress field. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1183 Section 3.2 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/LOC.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/LOC.pm deleted file mode 100644 index 61b84f5f1f5..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/LOC.pm +++ /dev/null @@ -1,363 +0,0 @@ -package Net::DNS::RR::LOC; -# -# $Id: LOC.pm 388 2005-06-22 10:06:05Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw( - @ISA $VERSION @poweroften $reference_alt - $reference_latlon $conv_sec $conv_min $conv_deg - $default_min $default_sec $default_size - $default_horiz_pre $default_vert_pre -); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 388 $)[1]; - -# Powers of 10 from 0 to 9 (used to speed up calculations). -@poweroften = (1, 10, 100, 1_000, 10_000, 100_000, 1_000_000, - 10_000_000, 100_000_000, 1_000_000_000); - -# Reference altitude in centimeters (see RFC 1876). -$reference_alt = 100_000 * 100; - -# Reference lat/lon (see RFC 1876). -$reference_latlon = 2**31; - -# Conversions to/from thousandths of a degree. -$conv_sec = 1000; -$conv_min = 60 * $conv_sec; -$conv_deg = 60 * $conv_min; - -# Defaults (from RFC 1876, Section 3). -$default_min = 0; -$default_sec = 0; -$default_size = 1; -$default_horiz_pre = 10_000; -$default_vert_pre = 10; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - my ($version) = unpack("\@$offset C", $$data); - ++$offset; - - $self->{"version"} = $version; - - if ($version == 0) { - my ($size) = unpack("\@$offset C", $$data); - $size = precsize_ntoval($size); - ++$offset; - - my ($horiz_pre) = unpack("\@$offset C", $$data); - $horiz_pre = precsize_ntoval($horiz_pre); - ++$offset; - - my ($vert_pre) = unpack("\@$offset C", $$data); - $vert_pre = precsize_ntoval($vert_pre); - ++$offset; - - my ($latitude) = unpack("\@$offset N", $$data); - $offset += Net::DNS::INT32SZ(); - - my ($longitude) = unpack("\@$offset N", $$data); - $offset += Net::DNS::INT32SZ(); - - my ($altitude) = unpack("\@$offset N", $$data); - $offset += Net::DNS::INT32SZ(); - - $self->{"size"} = $size; - $self->{"horiz_pre"} = $horiz_pre; - $self->{"vert_pre"} = $vert_pre; - $self->{"latitude"} = $latitude; - $self->{"longitude"} = $longitude; - $self->{"altitude"} = $altitude; - } - else { - # What to do for unsupported versions? - } - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string && - $string =~ /^ (\d+) \s+ # deg lat - ((\d+) \s+)? # min lat - (([\d.]+) \s+)? # sec lat - (N|S) \s+ # hem lat - (\d+) \s+ # deg lon - ((\d+) \s+)? # min lon - (([\d.]+) \s+)? # sec lon - (E|W) \s+ # hem lon - (-?[\d.]+) m? # altitude - (\s+ ([\d.]+) m?)? # size - (\s+ ([\d.]+) m?)? # horiz precision - (\s+ ([\d.]+) m?)? # vert precision - /ix) { - - # What to do for other versions? - my $version = 0; - - my ($latdeg, $latmin, $latsec, $lathem) = ($1, $3, $5, $6); - my ($londeg, $lonmin, $lonsec, $lonhem) = ($7, $9, $11, $12); - my ($alt, $size, $horiz_pre, $vert_pre) = ($13, $15, $17, $19); - - $latmin = $default_min unless $latmin; - $latsec = $default_sec unless $latsec; - $lathem = uc($lathem); - - $lonmin = $default_min unless $lonmin; - $lonsec = $default_sec unless $lonsec; - $lonhem = uc($lonhem); - - $size = $default_size unless $size; - $horiz_pre = $default_horiz_pre unless $horiz_pre; - $vert_pre = $default_vert_pre unless $vert_pre; - - $self->{"version"} = $version; - $self->{"size"} = $size * 100; - $self->{"horiz_pre"} = $horiz_pre * 100; - $self->{"vert_pre"} = $vert_pre * 100; - $self->{"latitude"} = dms2latlon($latdeg, $latmin, $latsec, - $lathem); - $self->{"longitude"} = dms2latlon($londeg, $lonmin, $lonsec, - $lonhem); - $self->{"altitude"} = $alt * 100 + $reference_alt; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - my $rdatastr; - - if (exists $self->{"version"}) { - if ($self->{"version"} == 0) { - my $lat = $self->{"latitude"}; - my $lon = $self->{"longitude"}; - my $altitude = $self->{"altitude"}; - my $size = $self->{"size"}; - my $horiz_pre = $self->{"horiz_pre"}; - my $vert_pre = $self->{"vert_pre"}; - - $altitude = ($altitude - $reference_alt) / 100; - $size /= 100; - $horiz_pre /= 100; - $vert_pre /= 100; - - $rdatastr = latlon2dms($lat, "NS") . " " . - latlon2dms($lon, "EW") . " " . - sprintf("%.2fm", $altitude) . " " . - sprintf("%.2fm", $size) . " " . - sprintf("%.2fm", $horiz_pre) . " " . - sprintf("%.2fm", $vert_pre); - } else { - $rdatastr = "; version " . $self->{"version"} . " not supported"; - } - } else { - $rdatastr = ''; - } - - return $rdatastr; -} - -sub rr_rdata { - my $self = shift; - my $rdata = ""; - - if (exists $self->{"version"}) { - $rdata .= pack("C", $self->{"version"}); - if ($self->{"version"} == 0) { - $rdata .= pack("C3", precsize_valton($self->{"size"}), - precsize_valton($self->{"horiz_pre"}), - precsize_valton($self->{"vert_pre"})); - $rdata .= pack("N3", $self->{"latitude"}, - $self->{"longitude"}, - $self->{"altitude"}); - } - else { - # What to do for other versions? - } - } - - return $rdata; -} - -sub precsize_ntoval { - my $prec = shift; - - my $mantissa = (($prec >> 4) & 0x0f) % 10; - my $exponent = ($prec & 0x0f) % 10; - return $mantissa * $poweroften[$exponent]; -} - -sub precsize_valton { - my $val = shift; - - my $exponent = 0; - while ($val >= 10) { - $val /= 10; - ++$exponent; - } - return (int($val) << 4) | ($exponent & 0x0f); -} - -sub latlon2dms { - my ($rawmsec, $hems) = @_; - - # Tried to use modulus here, but Perl dumped core if - # the value was >= 2**31. - - my ($abs, $deg, $min, $sec, $msec, $hem); - - $abs = abs($rawmsec - $reference_latlon); - $deg = int($abs / $conv_deg); - $abs -= $deg * $conv_deg; - $min = int($abs / $conv_min); - $abs -= $min * $conv_min; - $sec = int($abs / $conv_sec); - $abs -= $sec * $conv_sec; - $msec = $abs; - - $hem = substr($hems, ($rawmsec >= $reference_latlon ? 0 : 1), 1); - - return sprintf("%d %02d %02d.%03d %s", $deg, $min, $sec, $msec, $hem); -} - -sub dms2latlon { - my ($deg, $min, $sec, $hem) = @_; - my ($retval); - - $retval = ($deg * $conv_deg) + ($min * $conv_min) + ($sec * $conv_sec); - $retval = -$retval if ($hem eq "S") || ($hem eq "W"); - $retval += $reference_latlon; - return $retval; -} - -sub latlon { - my $self = shift; - my ($retlat, $retlon); - - if ($self->{"version"} == 0) { - $retlat = latlon2deg($self->{"latitude"}); - $retlon = latlon2deg($self->{"longitude"}); - } - else { - $retlat = $retlon = undef; - } - - return ($retlat, $retlon); -} - -sub latlon2deg { - my $rawmsec = shift; - my $deg; - - $deg = ($rawmsec - $reference_latlon) / $conv_deg; - return $deg; -} - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::LOC - DNS LOC resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Location (LOC) resource records. See RFC 1876 for -details. - -=head1 METHODS - -=head2 version - - print "version = ", $rr->version, "\n"; - -Returns the version number of the representation; programs should -always check this. C<Net::DNS> currently supports only version 0. - -=head2 size - - print "size = ", $rr->size, "\n"; - -Returns the diameter of a sphere enclosing the described entity, -in centimeters. - -=head2 horiz_pre - - print "horiz_pre = ", $rr->horiz_pre, "\n"; - -Returns the horizontal precision of the data, in centimeters. - -=head2 vert_pre - - print "vert_pre = ", $rr->vert_pre, "\n"; - -Returns the vertical precision of the data, in centimeters. - -=head2 latitude - - print "latitude = ", $rr->latitude, "\n"; - -Returns the latitude of the center of the sphere described by -the C<size> method, in thousandths of a second of arc. 2**31 -represents the equator; numbers above that are north latitude. - -=head2 longitude - - print "longitude = ", $rr->longitude, "\n"; - -Returns the longitude of the center of the sphere described by -the C<size> method, in thousandths of a second of arc. 2**31 -represents the prime meridian; numbers above that are east -longitude. - -=head2 latlon - - ($lat, $lon) = $rr->latlon; - system("xearth", "-pos", "fixed $lat $lon"); - -Returns the latitude and longitude as floating-point degrees. -Positive numbers represent north latitude or east longitude; -negative numbers represent south latitude or west longitude. - -=head2 altitude - - print "altitude = ", $rr->altitude, "\n"; - -Returns the altitude of the center of the sphere described by -the C<size> method, in centimeters, from a base of 100,000m -below the WGS 84 reference spheroid used by GPS. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. -Some of the code and documentation is based on RFC 1876 and on code -contributed by Christopher Davis. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1876 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/MB.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/MB.pm deleted file mode 100644 index e6b33eed0ae..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/MB.pm +++ /dev/null @@ -1,99 +0,0 @@ -package Net::DNS::RR::MB; -# -# $Id: MB.pm 632 2007-03-12 13:24:21Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 632 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - ($self->{"madname"}) = Net::DNS::Packet::dn_expand($data, $offset); - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string) { - $string =~ s/\.+$//; - $self->{"madname"} = $string; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - - return $self->{"madname"} ? "$self->{madname}." : ''; -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - if (exists $self->{"madname"}) { - $rdata .= $packet->dn_comp($self->{"madname"}, $offset); - } - - return $rdata; -} - -sub _canonicalRdata { - my $self=shift; - my $rdata = ""; - if (exists $self->{"madname"}) { - $rdata .= $self->_name2wire(lc($self->{"madname"})); - } - return $rdata; -} - - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::MB - DNS MB resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Mailbox (MB) resource records. - -=head1 METHODS - -=head2 madname - - print "madname = ", $rr->madname, "\n"; - -Returns the domain name of the host which has the specified mailbox. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1035 Section 3.3.3 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/MG.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/MG.pm deleted file mode 100644 index c4950e20048..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/MG.pm +++ /dev/null @@ -1,100 +0,0 @@ -package Net::DNS::RR::MG; -# -# $Id: MG.pm 632 2007-03-12 13:24:21Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 632 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - ($self->{"mgmname"}) = Net::DNS::Packet::dn_expand($data, $offset); - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string) { - $string =~ s/\.+$//; - $self->{"mgmname"} = $string; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - - return exists $self->{"mgmname"} ? "$self->{mgmname}." : ''; -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - if (exists $self->{"mgmname"}) { - $rdata .= $packet->dn_comp($self->{"mgmname"}, $offset); - } - - return $rdata; -} - - -sub _canonicalRdata { - my $self=shift; - my $rdata = ""; - if (exists $self->{"mgmname"}) { - $rdata .= $self->_name2wire(lc($self->{"mgmname"})); - } - return $rdata; -} - - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::MG - DNS MG resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Mail Group (MG) resource records. - -=head1 METHODS - -=head2 mgmname - - print "mgmname = ", $rr->mgmname, "\n"; - -Returns the RR's mailbox field. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1035 Section 3.3.6 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/MINFO.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/MINFO.pm deleted file mode 100644 index 3a3885b44fb..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/MINFO.pm +++ /dev/null @@ -1,118 +0,0 @@ -package Net::DNS::RR::MINFO; -# -# $Id: MINFO.pm 632 2007-03-12 13:24:21Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 632 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - ($self->{"rmailbx"}, $offset) = Net::DNS::Packet::dn_expand($data, $offset); - ($self->{"emailbx"}, $offset) = Net::DNS::Packet::dn_expand($data, $offset); - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string && ($string =~ /^(\S+)\s+(\S+)$/)) { - $self->{"rmailbx"} = $1; - $self->{"emailbx"} = $2; - $self->{"rmailbx"} =~ s/\.+$//; - $self->{"emailbx"} =~ s/\.+$//; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - - return $self->{"rmailbx"} - ? "$self->{rmailbx}. $self->{emailbx}." - : ''; -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - if (exists $self->{"rmailbx"}) { - $rdata .= $packet->dn_comp($self->{"rmailbx"}, $offset); - - $rdata .= $packet->dn_comp($self->{"emailbx"}, - $offset + length $rdata); - } - - return $rdata; -} - - -sub _canonicalRdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - if (exists $self->{"rmailbx"}) { - $rdata .= $self->_name2wire(lc($self->{"rmailbx"})); - $rdata .= $self->_name2wire(lc($self->{"emailbx"})); - } - - return $rdata; -} - - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::MINFO - DNS MINFO resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Mailbox Information (MINFO) resource records. - -=head1 METHODS - -=head2 rmailbx - - print "rmailbx = ", $rr->rmailbx, "\n"; - -Returns the RR's responsible mailbox field. See RFC 1035. - -=head2 emailbx - - print "emailbx = ", $rr->emailbx, "\n"; - -Returns the RR's error mailbox field. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1035 Section 3.3.7 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/MR.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/MR.pm deleted file mode 100644 index 7f7b60d3d16..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/MR.pm +++ /dev/null @@ -1,101 +0,0 @@ -package Net::DNS::RR::MR; -# -# $Id: MR.pm 632 2007-03-12 13:24:21Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 632 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - ($self->{"newname"}) = Net::DNS::Packet::dn_expand($data, $offset); - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string) { - $string =~ s/\.+$//; - $self->{"newname"} = $string; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - - return $self->{"newname"} ? "$self->{newname}." : ''; -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - if (exists $self->{"newname"}) { - $rdata .= $packet->dn_comp($self->{"newname"}, $offset); - } - - return $rdata; -} - -sub _canonicalRdata { - my $self=shift; - my $rdata = ""; - if (exists $self->{"newname"}) { - $rdata .= $self->_name2wire(lc($self->{"newname"})); - } - return $rdata; -} - - - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::MR - DNS MR resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Mail Rename (MR) resource records. - -=head1 METHODS - -=head2 newname - - print "newname = ", $rr->newname, "\n"; - -Returns the RR's new name field. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1035 Section 3.3.8 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/MX.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/MX.pm deleted file mode 100644 index 31fe499f2c7..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/MX.pm +++ /dev/null @@ -1,135 +0,0 @@ -package Net::DNS::RR::MX; -# -# $Id: MX.pm 632 2007-03-12 13:24:21Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 632 $)[1]; - - -# Highest preference sorted first. -__PACKAGE__->set_rrsort_func("preference", - sub { - my ($a,$b)=($Net::DNS::a,$Net::DNS::b); - $a->{'preference'} <=> $b->{'preference'} -} -); - - -__PACKAGE__->set_rrsort_func("default_sort", - __PACKAGE__->get_rrsort_func("preference") - - ); - - - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - ($self->{"preference"}) = unpack("\@$offset n", $$data); - $offset += Net::DNS::INT16SZ(); - - ($self->{"exchange"}) = Net::DNS::Packet::dn_expand($data, $offset); - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string && ($string =~ /^(\d+)\s+(\S+)$/)) { - $self->{"preference"} = $1; - $self->{"exchange"} = $2; - $self->{"exchange"} =~ s/\.+$//;; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - - return defined $self->{"preference"} - ? "$self->{preference} $self->{exchange}." - : ''; -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - if (exists $self->{"preference"}) { - $rdata .= pack("n", $self->{"preference"}); - $rdata .= $packet->dn_comp($self->{"exchange"}, - $offset + length $rdata); - } - - return $rdata; -} - -sub _canonicalRdata { - my ($self) = @_; - my $rdata = ""; - - if (exists $self->{"preference"}) { - $rdata .= pack("n", $self->{"preference"}); - $rdata .= $self->_name2wire(lc($self->{"exchange"})) - } - - return $rdata; -} - - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::MX - DNS MX resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Mail Exchanger (MX) resource records. - -=head1 METHODS - -=head2 preference - - print "preference = ", $rr->preference, "\n"; - -Returns the preference for this mail exchange. - -=head2 exchange - - print "exchange = ", $rr->exchange, "\n"; - -Returns name of this mail exchange. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. -Portions Copyright (c) 2005 Olaf Kolkman NLnet Labs. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1035 Section 3.3.9 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/NAPTR.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/NAPTR.pm deleted file mode 100644 index 1148ec99463..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/NAPTR.pm +++ /dev/null @@ -1,210 +0,0 @@ -package Net::DNS::RR::NAPTR; -# -# $Id: NAPTR.pm 583 2006-05-03 12:24:18Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 583 $)[1]; - - - - -__PACKAGE__->set_rrsort_func("order", - sub { - my ($a,$b)=($Net::DNS::a,$Net::DNS::b); - $a->{'order'} <=> $b->{'order'} - || - $a->{'preference'} <=> $b->{'preference'} -} -); - - -__PACKAGE__->set_rrsort_func("default_sort", - __PACKAGE__->get_rrsort_func("order") - - ); - -__PACKAGE__->set_rrsort_func("preference", - sub { - my ($a,$b)=($Net::DNS::a,$Net::DNS::b); - $a->{"preference"} <=> $b->{"preference"} - || - $a->{"order"} <=> $b->{"order"} -} -); - - - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - ($self->{"order"} ) = unpack("\@$offset n", $$data); - $offset += Net::DNS::INT16SZ(); - - ($self->{"preference"}) = unpack("\@$offset n", $$data); - $offset += Net::DNS::INT16SZ(); - - my ($len) = unpack("\@$offset C", $$data); - ++$offset; - ($self->{"flags"}) = unpack("\@$offset a$len", $$data); - $offset += $len; - - $len = unpack("\@$offset C", $$data); - ++$offset; - ($self->{"service"}) = unpack("\@$offset a$len", $$data); - $offset += $len; - - $len = unpack("\@$offset C", $$data); - ++$offset; - ($self->{"regexp"}) = unpack("\@$offset a$len", $$data); - $offset += $len; - - ($self->{"replacement"}) = Net::DNS::Packet::dn_expand($data, $offset); - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string && $string =~ /^ (\d+) \s+ - (\d+) \s+ - ['"] (.*?) ['"] \s+ - ['"] (.*?) ['"] \s+ - ['"] (.*?) ['"] \s+ - (\S+) $/x) { - - $self->{"order"} = $1; - $self->{"preference"} = $2; - $self->{"flags"} = $3; - $self->{"service"} = $4; - $self->{"regexp"} = $5; - $self->{"replacement"} = $6; - $self->{"replacement"} =~ s/\.+$//; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - my $rdatastr; - - if (exists $self->{"order"}) { - $rdatastr = $self->{"order"} . ' ' . - $self->{"preference"} . ' "' . - $self->{"flags"} . '" "' . - $self->{"service"} . '" "' . - $self->{"regexp"} . '" ' . - $self->{"replacement"} . '.'; - } - else { - $rdatastr = ''; - } - - return $rdatastr; -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - if (exists $self->{"order"}) { - - $rdata .= pack("n2", $self->{"order"}, $self->{"preference"}); - - $rdata .= pack("C", length $self->{"flags"}); - $rdata .= $self->{"flags"}; - - $rdata .= pack("C", length $self->{"service"}); - $rdata .= $self->{"service"}; - - $rdata .= pack("C", length $self->{"regexp"}); - $rdata .= $self->{"regexp"}; - - $rdata .= $self->_name2wire ($self->{"replacement"}); - - } - - return $rdata; -} - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::NAPTR - DNS NAPTR resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Naming Authority Pointer (NAPTR) resource records. - -=head1 METHODS - -=head2 order - - print "order = ", $rr->order, "\n"; - -Returns the order field. - -=head2 preference - - print "preference = ", $rr->preference, "\n"; - -Returns the preference field. - -=head2 flags - - print "flags = ", $rr->flags, "\n"; - -Returns the flags field. - -=head2 service - - print "service = ", $rr->service, "\n"; - -Returns the service field. - -=head2 regexp - - print "regexp = ", $rr->regexp, "\n"; - -Returns the regexp field. - -=head2 replacement - - print "replacement = ", $rr->replacement, "\n"; - -Returns the replacement field. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. -Portions Copyright (c) 2005 Olaf Kolkman NLnet Labs. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -B<Net::DNS::RR::NAPTR> is based on code contributed by Ryan Moats. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 2168 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/NIMLOC.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/NIMLOC.pm deleted file mode 100644 index bec86aebe41..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/NIMLOC.pm +++ /dev/null @@ -1,63 +0,0 @@ -package Net::DNS::RR::NIMLOC; -# -# $Id: NIMLOC.pm 388 2005-06-22 10:06:05Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 388 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - return bless $self, $class; -} - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::NIMLOC - DNS NIMLOC resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Nimrod Locator (NIMLOC) resource records. - -=head1 METHODS - -=head2 rdlength - - print "rdlength = ", $rr->rdlength, "\n"; - -Returns the length of the record's data section. - -=head2 rdata - - $rdata = $rr->rdata; - -Returns the record's data section as binary data. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -draft-ietf-nimrod-dns-I<xx>.txt - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/NS.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/NS.pm deleted file mode 100644 index 96f60db7847..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/NS.pm +++ /dev/null @@ -1,106 +0,0 @@ -# -# $Id: NS.pm 707 2008-02-06 22:27:28Z olaf $ -# -package Net::DNS::RR::NS; - -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 707 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - ($self->{"nsdname"}) = Net::DNS::Packet::dn_expand($data, $offset); - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string) { - $string =~ s/\.+$//; - $self->{"nsdname"} = $string; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - - return $self->{"nsdname"} ? "$self->{nsdname}." : ''; -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - if (exists $self->{"nsdname"}) { - $rdata .= $packet->dn_comp($self->{"nsdname"}, $offset); - } - - return $rdata; -} - - - -sub _canonicalRdata { - # rdata contains a compressed domainname... we should not have that. - my ($self) = @_; - my $rdata; - $rdata= $self->_name2wire(lc($self->{"nsdname"})); - return $rdata; -} - - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::NS - DNS NS resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Name Server (NS) resource records. - -=head1 METHODS - -=head2 nsdname - - print "nsdname = ", $rr->nsdname, "\n"; - -Returns the name of the nameserver. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -Portions Copyright (c) 2005 O.M, Kolkman, RIPE NCC. - -Portions Copyright (c) 2005-2006 O.M, Kolkman, NLnet Labs. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1035 Section 3.3.11 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/NSAP.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/NSAP.pm deleted file mode 100644 index 6b432c90246..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/NSAP.pm +++ /dev/null @@ -1,274 +0,0 @@ -package Net::DNS::RR::NSAP; -# -# $Id: NSAP.pm 388 2005-06-22 10:06:05Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 388 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - my $afi = unpack("\@$offset C", $$data); - $self->{"afi"} = sprintf("%02x", $afi); - ++$offset; - - if ($self->{"afi"} eq "47") { - my @idi = unpack("\@$offset C2", $$data); - $offset += 2; - - my $dfi = unpack("\@$offset C", $$data); - $offset += 1; - - my @aa = unpack("\@$offset C3", $$data); - $offset += 3; - - my @rsvd = unpack("\@$offset C2", $$data); - $offset += 2; - - my @rd = unpack("\@$offset C2", $$data); - $offset += 2; - - my @area = unpack("\@$offset C2", $$data); - $offset += 2; - - my @id = unpack("\@$offset C6", $$data); - $offset += 6; - - my $sel = unpack("\@$offset C", $$data); - $offset += 1; - - $self->{"idi"} = sprintf("%02x" x 2, @idi); - $self->{"dfi"} = sprintf("%02x" x 1, $dfi); - $self->{"aa"} = sprintf("%02x" x 3, @aa); - $self->{"rsvd"} = sprintf("%02x" x 2, @rsvd); - $self->{"rd"} = sprintf("%02x" x 2, @rd); - $self->{"area"} = sprintf("%02x" x 2, @area); - $self->{"id"} = sprintf("%02x" x 6, @id); - $self->{"sel"} = sprintf("%02x" x 1, $sel); - - } else { - # What to do for unsupported versions? - } - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string) { - $string =~ s/\.//g; # remove all dots. - $string =~ s/^0x//; # remove leading 0x - - if ($string =~ /^[a-zA-Z0-9]{40}$/) { - @{ $self }{ qw(afi idi dfi aa rsvd rd area id sel) } = - unpack("A2A4A2A6A4A4A4A12A2", $string); - } - } - - return bless $self, $class; -} - - -sub idp { - my $self = shift; - - return join('', $self->{"afi"}, - $self->{"idi"}); -} - -sub dsp { - my $self = shift; - - return join('', - $self->{"dfi"}, - $self->{"aa"}, - $self->rsvd, - $self->{"rd"}, - $self->{"area"}, - $self->{"id"}, - $self->{"sel"}); -} - -sub rsvd { - my $self = shift; - - return exists $self->{"rsvd"} ? $self->{"rsvd"} : "0000"; -} - -sub rdatastr { - my $self = shift; - my $rdatastr; - - if (exists $self->{"afi"}) { - if ($self->{"afi"} eq "47") { - $rdatastr = join('', $self->idp, $self->dsp); - } else { - $rdatastr = "; AFI $self->{'afi'} not supported"; - } - } else { - $rdatastr = ''; - } - - return $rdatastr; -} - -sub rr_rdata { - my $self = shift; - my $rdata = ""; - - if (exists $self->{"afi"}) { - $rdata .= pack("C", hex($self->{"afi"})); - - if ($self->{"afi"} eq "47") { - $rdata .= str2bcd($self->{"idi"}, 2); - $rdata .= str2bcd($self->{"dfi"}, 1); - $rdata .= str2bcd($self->{"aa"}, 3); - $rdata .= str2bcd(0, 2); # rsvd - $rdata .= str2bcd($self->{"rd"}, 2); - $rdata .= str2bcd($self->{"area"}, 2); - $rdata .= str2bcd($self->{"id"}, 6); - $rdata .= str2bcd($self->{"sel"}, 1); - } - - # Checks for other versions would go here. - } - - return $rdata; -} - -#------------------------------------------------------------------------------ -# Usage: str2bcd(STRING, NUM_BYTES) -# -# Takes a string representing a hex number of arbitrary length and -# returns an equivalent BCD string of NUM_BYTES length (with -# NUM_BYTES * 2 digits), adding leading zeros if necessary. -#------------------------------------------------------------------------------ - -# This can't be the best way.... -sub str2bcd { - my ($string, $bytes) = @_; - my $retval = ""; - - my $digits = $bytes * 2; - $string = sprintf("%${digits}s", $string); - $string =~ tr/ /0/; - - my $i; - for ($i = 0; $i < $bytes; ++$i) { - my $bcd = substr($string, $i*2, 2); - $retval .= pack("C", hex $bcd); - } - - return $retval; -} - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::NSAP - DNS NSAP resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Network Service Access Point (NSAP) resource records. - -=head1 METHODS - -=head2 idp - - print "idp = ", $rr->idp, "\n"; - -Returns the RR's initial domain part (the AFI and IDI fields). - -=head2 dsp - - print "dsp = ", $rr->dsp, "\n"; - -Returns the RR's domain specific part (the DFI, AA, Rsvd, RD, Area, -ID, and SEL fields). - -=head2 afi - - print "afi = ", $rr->afi, "\n"; - -Returns the RR's authority and format identifier. C<Net::DNS> -currently supports only AFI 47 (GOSIP Version 2). - -=head2 idi - - print "idi = ", $rr->idi, "\n"; - -Returns the RR's initial domain identifier. - -=head2 dfi - - print "dfi = ", $rr->dfi, "\n"; - -Returns the RR's DSP format identifier. - -=head2 aa - - print "aa = ", $rr->aa, "\n"; - -Returns the RR's administrative authority. - -=head2 rsvd - - print "rsvd = ", $rr->rsvd, "\n"; - -Returns the RR's reserved field. - -=head2 rd - - print "rd = ", $rr->rd, "\n"; - -Returns the RR's routing domain identifier. - -=head2 area - - print "area = ", $rr->area, "\n"; - -Returns the RR's area identifier. - -=head2 id - - print "id = ", $rr->id, "\n"; - -Returns the RR's system identifier. - -=head2 sel - - print "sel = ", $rr->sel, "\n"; - -Returns the RR's NSAP selector. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself.. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1706. - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/NULL.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/NULL.pm deleted file mode 100644 index db6e58651b0..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/NULL.pm +++ /dev/null @@ -1,65 +0,0 @@ -package Net::DNS::RR::NULL; -# -# $Id: NULL.pm 388 2005-06-22 10:06:05Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -use Net::DNS::Packet; - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 388 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - return bless $self, $class; -} - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::NULL - DNS NULL resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Null (NULL) resource records. - -=head1 METHODS - -=head2 rdlength - - print "rdlength = ", $rr->rdlength, "\n"; - -Returns the length of the record's data section. - -=head2 rdata - - $rdata = $rr->rdata; - -Returns the record's data section as binary data. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1035 Section 3.3.10 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/OPT.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/OPT.pm deleted file mode 100644 index 67c9e1ba0af..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/OPT.pm +++ /dev/null @@ -1,286 +0,0 @@ -package Net::DNS::RR::OPT; -# -# $Id: OPT.pm 393 2005-07-01 19:21:52Z olaf $ -# - -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION %extendedrcodesbyname %extendedrcodesbyval $EDNSVERSION); - -use Carp; - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 393 $)[1]; - -$EDNSVERSION = 0; - -%extendedrcodesbyname = ( - "ONLY_RDATA" => 0, # No name specified see 4.6 of 2671 - "UNDEF1" => 1, - "UNDEF2" => 2, - "UNDEF3" => 3, - "UNDEF4" => 4, - "UNDEF5" => 5, - "UNDEF6" => 6, - "UNDEF7" => 7, - "UNDEF8" => 8, - "UNDEF9" => 9, - "UNDEF10" => 10, - "UNDEF11" => 11, - "UNDEF12" => 12, - "UNDEF13" => 13, - "UNDEF14" => 14, - "UNDEF15" => 15, - "BADVERS" => 16, # RFC 2671 -); -%extendedrcodesbyval = reverse %extendedrcodesbyname; - - - -sub new { - my ($class, $self, $data, $offset) = @_; - - $self->{"name"} = "" ; # should allway be "root" - - if ($self->{"rdlength"} > 0) { - $self->{"optioncode"} = unpack("n", substr($$data, $offset, 2)); - $self->{"optionlength"} = unpack("n", substr($$data, $offset+2, 2)); - $self->{"optiondata"} = unpack("n", substr($$data, $offset+4, $self->{"optionlength"})); - } - - $self->{"_rcode_flags"} = pack("N",$self->{"ttl"}); - - $self->{"extendedrcode"} = unpack("C", substr($self->{"_rcode_flags"}, 0, 1)); - $self->{"ednsversion"} = unpack("C", substr($self->{"_rcode_flags"}, 1, 1)); - $self->{"ednsflags"} = unpack("n", substr($self->{"_rcode_flags"}, 2, 2)); - - - return bless $self, $class; -} - - - - - - -sub new_from_string { - my ($class, $self ) = @_; - - # There is no such thing as an OPT RR in a ZONE file. - # Not implemented! - croak "You should not try to create a OPT RR from a string\nNot implemented"; - return bless $self, $class; -} - - - -sub new_from_hash { - my ($class, $self ) = @_; - - $self->{"name"} = "" ; # should allway be "root" - # Setting the MTU smaller then 512 does not make sense - # should we test for a maximum here? - if ($self->{"class"} eq "IN" || $self->{"class"} < 512) { - $self->{"class"} = 512; # Default value... - } - - $self->{"extendedrcode"} = 0 unless exists $self->{"extendedrcode"}; - - $self->{"ednsflags"} = 0 unless exists $self->{"ednsflags"}; - $self->{"ednsversion"} = $EDNSVERSION unless exists $self->{"ednsversion"}; - $self->{"ttl"}= unpack ("N", - pack("C", $self->{"extendedrcode"}) . - pack("C", $self->{"ednsversion"}) . - pack("n", $self->{"ednsflags"}) - ); - - if (exists $self->{"optioncode"}) { - $self->{"optiondata"} = "" if ! exists $self->{"optiondata"}; - $self->{"optionlength"} = length $self->{"optiondata"} - } - - return bless $self, $class; - -} - - - - - -sub string { - my $self = shift; - return - "; EDNS Version " . $self->{"ednsversion"} . - "\t UDP Packetsize: " . $self->{"class"} . - "\n; EDNS-RCODE:\t" . $self->{"extendedrcode"} . - " (" . $extendedrcodesbyval{ $self->{"extendedrcode"} }. ")" . - "\n; EDNS-FLAGS:\t" . sprintf("0x%04x", $self->{"ednsflags"}) . - "\n"; -} - - -sub rdatastr { - return '; Parsing of OPT rdata is not yet implemented'; -} - - -sub rr_rdata { - my $self = shift; - my $rdata; - - if (exists $self->{"optioncode"}) { - $rdata = pack("n", $self->{"optioncode"}); - $rdata .= pack("n", $self->{"optionlength"}); - $rdata .= $self->{"optiondata"} - } else { - $rdata = ""; - } - - return $rdata; -} - - - - - - - -sub do{ - my $self=shift; - return ( 0x8000 & $self->{"ednsflags"} ); -} - - - -sub set_do{ - my $self=shift; - return $self->{"ednsflags"} = ( 0x8000 | $self->{"ednsflags"} ); - -} - - - -sub clear_do{ - my $self=shift; - return $self->{"ednsflags"} = ( ~0x8000 & $self->{"ednsflags"} ); - -} - - - -sub size { - my $self=shift; - my $size=shift; - $self->{"class"}=$size if defined($size); - return $self->{"class"}; -} - - - - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::OPT - DNS OPT - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for EDNS pseudo resource record OPT. - -=head1 METHODS - -This object should only be used inside the Net::DNS classes itself. - -=head2 new - -Since "OPT" is a pseudo record and should not be stored in -masterfiles; Therefore we have not implemented a method to create this -RR from string. - -One may create the object from a hash. See RFC 2671 for details for -the meaning of the hash keys. - - $rr= new Net::DNS::RR { - name => "", # Ignored and set to "" - type => "OPT", - class => 1024, # sets UDP payload size - extendedrcode => 0x00, # sets the extended RCODE 1 octets - ednsflags => 0x0000, # sets the ednsflags (2octets) - optioncode => 0x0 # 2 octets - optiondata => 0x0 # optionlength octets - } - -The ednsversion is set to 0 for now. The ttl value is determined from -the extendedrcode, the ednsversion and the ednsflag. -The rdata is constructed from the optioncode and optiondata -see section 4.4 of RFC 2671 - -If optioncode is left undefined then we do not expect any RDATA. - -The defaults are no rdata. - - -=head2 do, set_do, clear_do - - $opt->set_do; - -Reads, sets and clears the do flag. (first bit in the ednssflags); - - -=head2 size - - $opt->size(1498); - print "Packet size:". $opt->size() ; - -Sets or gets the packet size. - - -=head1 TODO - -- This class is tailored to use with dnssec. - -- Do some range checking on the input. - -- This class probably needs subclasses once OPTION codes start to be defined. - -- look at use of extended labels - -=head1 COPYRIGHT - -Copyright (c) 2001, 2002 RIPE NCC. Author Olaf M. Kolkman - -All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of the author not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - - -THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS; IN NO EVENT SHALL -AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY -DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN -AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -Based on, and contains, code by Copyright (c) 1997-2002 Michael Fuhr. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 2435 Section 3 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/PTR.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/PTR.pm deleted file mode 100644 index bf894f26c07..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/PTR.pm +++ /dev/null @@ -1,101 +0,0 @@ -package Net::DNS::RR::PTR; -# -# $Id: PTR.pm 632 2007-03-12 13:24:21Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 632 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - ($self->{"ptrdname"}) = Net::DNS::Packet::dn_expand($data, $offset); - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string) { - $string =~ s/\.+$//; - $self->{"ptrdname"} = $string; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - - return $self->{"ptrdname"} ? "$self->{ptrdname}." : ''; -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - if (exists $self->{"ptrdname"}) { - $rdata .= $packet->dn_comp(lc($self->{"ptrdname"}), $offset); - } - - return $rdata; -} - -sub _canonicalRdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - if (exists $self->{"ptrdname"}) { - $rdata .= $self->_name2wire($self->{"ptrdname"}); - } - - return $rdata; -} - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::PTR - DNS PTR resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Pointer (PTR) resource records. - -=head1 METHODS - -=head2 ptrdname - - print "ptrdname = ", $rr->ptrdname, "\n"; - -Returns the domain name associated with this record. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1035 Section 3.3.12 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/PX.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/PX.pm deleted file mode 100644 index a9b4a3206e6..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/PX.pm +++ /dev/null @@ -1,153 +0,0 @@ -package Net::DNS::RR::PX; -# -# $Id: PX.pm 632 2007-03-12 13:24:21Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 632 $)[1]; - - - -# Highest preference sorted first. - -__PACKAGE__->set_rrsort_func("preference", - sub { - my ($a,$b)=($Net::DNS::a,$Net::DNS::b); - $a->{'preference'} <=> $b->{'preference'} -} -); - - -__PACKAGE__->set_rrsort_func("default_sort", - __PACKAGE__->get_rrsort_func("preference") - - ); - - - - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - ($self->{"preference"}) = unpack("\@$offset n", $$data); - $offset += Net::DNS::INT16SZ(); - - ($self->{"map822"}, $offset) = Net::DNS::Packet::dn_expand($data, $offset); - ($self->{"mapx400"}, $offset) = Net::DNS::Packet::dn_expand($data, $offset); - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string && ($string =~ /^(\d+)\s+(\S+)\s+(\S+)$/)) { - $self->{"preference"} = $1; - $self->{"map822"} = $2; - $self->{"mapx400"} = $3; - $self->{"map822"} =~ s/\.+$//;; - $self->{"mapx400"} =~ s/\.+$//;; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - - return $self->{"preference"} - ? "$self->{preference} $self->{map822}. $self->{mapx400}." - : ''; -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - if (exists $self->{"preference"}) { - $rdata .= pack("n", $self->{"preference"}); - - $rdata .= $packet->dn_comp($self->{"map822"}, - $offset + length $rdata); - - $rdata .= $packet->dn_comp($self->{"mapx400"}, - $offset + length $rdata); - } - - return $rdata; -} - - -sub _canonicalRdata { - my ($self) = shift; - my $rdata = ""; - - if (exists $self->{"preference"}) { - $rdata .= pack("n", $self->{"preference"}); - $rdata .= $self->_name2wire(lc($self->{"map822"})); - $rdata .= $self->_name2wire(lc($self->{"mapx400"})); - } - - return $rdata; -} - - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::PX - DNS PX resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS X.400 Mail Mapping Information (PX) resource records. - -=head1 METHODS - -=head2 preference - - print "preference = ", $rr->preference, "\n"; - -Returns the preference given to this RR. - -=head2 map822 - - print "map822 = ", $rr->map822, "\n"; - -Returns the RFC822 part of the RFC1327 mapping information. - -=head2 mapx400 - - print "mapx400 = ", $rr->mapx400, "\n"; - -Returns the X.400 part of the RFC1327 mapping information. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. -Portions Copyright (c) 2005 Olaf Kolkman NLnet Labs. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC822, RFC 1327, RFC 2163 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/RP.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/RP.pm deleted file mode 100644 index 7c422c3a17c..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/RP.pm +++ /dev/null @@ -1,121 +0,0 @@ -package Net::DNS::RR::RP; -# -# $Id: RP.pm 702 2008-01-21 10:01:21Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 702 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - ($self->{"mbox"}, $offset) = Net::DNS::Packet::dn_expand($data, $offset); - ($self->{"txtdname"}, $offset) = Net::DNS::Packet::dn_expand($data, $offset); - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string && ($string =~ /^(\S+)\s+(\S+)$/)) { - $self->{"mbox"} = $1; - $self->{"txtdname"} = $2; - $self->{"mbox"} =~ s/\.+$//; - $self->{"txtdname"} =~ s/\.+$//; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - if (exists $self->{"mbox"}) { - return "$self->{mbox}. $self->{txtdname}."; - } - return ''; - -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - if (exists $self->{"mbox"}) { - $rdata .= $packet->dn_comp($self->{"mbox"}, $offset); - $rdata .= $packet->dn_comp($self->{"txtdname"}, - $offset + length $rdata); - } - - return $rdata; -} - - -sub _canonicalRdata { - my $self = shift; - my $rdata = ""; - if (exists $self->{"mbox"}) { - $rdata .= $self->_name2wire(lc($self->{"mbox"})); - $rdata .= $self->_name2wire(lc($self->{"txtdname"})); - - - } - - return $rdata; -} - - - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::RP - DNS RP resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Responsible Person (RP) resource records. - -=head1 METHODS - -=head2 mbox - - print "mbox = ", $rr->mbox, "\n"; - -Returns a domain name that specifies the mailbox for the responsible person. - -=head2 txtdname - - print "txtdname = ", $rr->txtdname, "\n"; - -Returns a domain name that specifies a TXT record containing further -information about the responsible person. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1183 Section 2.2 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/RT.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/RT.pm deleted file mode 100644 index 22f0891d944..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/RT.pm +++ /dev/null @@ -1,133 +0,0 @@ -package Net::DNS::RR::RT; -# -# $Id: RT.pm 632 2007-03-12 13:24:21Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 632 $)[1]; - -# Highest preference sorted first. -__PACKAGE__->set_rrsort_func("preference", - sub { - my ($a,$b)=($Net::DNS::a,$Net::DNS::b); - $a->{'preference'} <=> $b->{'preference'} -} -); - - -__PACKAGE__->set_rrsort_func("default_sort", - __PACKAGE__->get_rrsort_func("preference") - - ); - - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - ($self->{"preference"}) = unpack("\@$offset n", $$data); - $offset += Net::DNS::INT16SZ(); - - ($self->{"intermediate"}) = Net::DNS::Packet::dn_expand($data, $offset); - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string && ($string =~ /^(\d+)\s+(\S+)$/)) { - $self->{"preference"} = $1; - $self->{"intermediate"} = $2; - $self->{"intermediate"} =~ s/\.+$//; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - - return $self->{"preference"} - ? "$self->{preference} $self->{intermediate}." - : ''; -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - if (exists $self->{"preference"}) { - $rdata .= pack("n", $self->{"preference"}); - $rdata .= $packet->dn_comp($self->{"intermediate"}, - $offset + length $rdata); - } - - return $rdata; -} - -sub _canonicalRdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - if (exists $self->{"preference"}) { - $rdata .= pack("n", $self->{"preference"}); - $rdata .= $self->_name2wire(lc($self->{"intermediate"})); - } - - return $rdata; -} - - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::RT - DNS RT resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Route Through (RT) resource records. - -=head1 METHODS - -=head2 preference - - print "preference = ", $rr->preference, "\n"; - -Returns the preference for this route. - -=head2 intermediate - - print "intermediate = ", $rr->intermediate, "\n"; - -Returns the domain name of the intermediate host. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. -Portions Copyright (c) 2005 Olaf Kolkman NLnet Labs. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1183 Section 3.3 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/SOA.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/SOA.pm deleted file mode 100644 index 9cf24d4def1..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/SOA.pm +++ /dev/null @@ -1,176 +0,0 @@ -package Net::DNS::RR::SOA; -# -# $Id: SOA.pm 632 2007-03-12 13:24:21Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 632 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - ($self->{"mname"}, $offset) = Net::DNS::Packet::dn_expand($data, $offset); - ($self->{"rname"}, $offset) = Net::DNS::Packet::dn_expand($data, $offset); - - @{$self}{qw(serial refresh retry expire minimum)} = unpack("\@$offset N5", $$data); - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string) { - $string =~ tr/()//d; - - # XXX do we need to strip out comments here now that RR.pm does it? - $string =~ s/;.*$//mg; - - @{$self}{qw(mname rname serial refresh retry expire minimum)} = $string =~ /(\S+)/g; - - $self->{'mname'} =~ s/\.+$//; - $self->{'rname'} =~ s/\.+$//; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - my $rdatastr; - - if (exists $self->{"mname"}) { - $rdatastr = "$self->{mname}. $self->{rname}. (\n"; - $rdatastr .= "\t" x 5 . "$self->{serial}\t; Serial\n"; - $rdatastr .= "\t" x 5 . "$self->{refresh}\t; Refresh\n"; - $rdatastr .= "\t" x 5 . "$self->{retry}\t; Retry\n"; - $rdatastr .= "\t" x 5 . "$self->{expire}\t; Expire\n"; - $rdatastr .= "\t" x 5 . "$self->{minimum} )\t; Minimum TTL"; - } else { - $rdatastr = ''; - } - - return $rdatastr; -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - # Assume that if one field exists, they all exist. Script will - # print a warning otherwise. - - if (exists $self->{"mname"}) { - $rdata .= $packet->dn_comp($self->{"mname"}, $offset); - $rdata .= $packet->dn_comp($self->{"rname"}, $offset + length $rdata); - - $rdata .= pack("N5", @{$self}{qw(serial refresh retry expire minimum)}); - } - - return $rdata; -} - - - -sub _canonicalRdata { - my $self=shift; - my $rdata = ""; - - # Assume that if one field exists, they all exist. Script will - # print a warning otherwise. - - if (exists $self->{"mname"}) { - $rdata .= $self->_name2wire(lc($self->{"mname"})); - $rdata .= $self->_name2wire(lc($self->{"rname"})); - $rdata .= pack("N5", @{$self}{qw(serial refresh retry expire minimum)}); - } - - return $rdata; -} - - - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::SOA - DNS SOA resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Start of Authority (SOA) resource records. - -=head1 METHODS - -=head2 mname - - print "mname = ", $rr->mname, "\n"; - -Returns the domain name of the original or primary nameserver for -this zone. - -=head2 rname - - print "rname = ", $rr->rname, "\n"; - -Returns a domain name that specifies the mailbox for the person -responsible for this zone. - -=head2 serial - - print "serial = ", $rr->serial, "\n"; - -Returns the zone's serial number. - -=head2 refresh - - print "refresh = ", $rr->refresh, "\n"; - -Returns the zone's refresh interval. - -=head2 retry - - print "retry = ", $rr->retry, "\n"; - -Returns the zone's retry interval. - -=head2 expire - - print "expire = ", $rr->expire, "\n"; - -Returns the zone's expire interval. - -=head2 minimum - - print "minimum = ", $rr->minimum, "\n"; - -Returns the minimum (default) TTL for records in this zone. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1035 Section 3.3.13 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/SPF.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/SPF.pm deleted file mode 100644 index d8cd48c8e51..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/SPF.pm +++ /dev/null @@ -1,48 +0,0 @@ -package Net::DNS::RR::SPF; -# -# $Id: SPF.pm 684 2007-10-10 12:32:22Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); -use Net::DNS::RR::TXT; - - -@ISA = qw(Net::DNS::RR::TXT); -$VERSION = (qw$LastChangedRevision: 684 $)[1]; - -1; - -=head1 NAME - -Net::DNS::RR::SPF - DNS SPF resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -This is a clone of the TXT record. This class therfore completely inherits -all properties of the Net::DNS::RR::TXT class. - -Please see the L<Net::DNS::RR::TXT> perldocumentation for details - -=head1 COPYRIGHT - -Copyright (c) 2005 Olaf Kolkman (NLnet Labs) - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1035 Section 3.3.14, RFC 4408 - - -=cut - diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/SRV.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/SRV.pm deleted file mode 100644 index a80ded72ba5..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/SRV.pm +++ /dev/null @@ -1,151 +0,0 @@ -package Net::DNS::RR::SRV; -# -# $Id: SRV.pm 583 2006-05-03 12:24:18Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 583 $)[1]; - - - -__PACKAGE__->set_rrsort_func("priority", - sub { - my ($a,$b)=($Net::DNS::a,$Net::DNS::b); - $a->{'priority'} <=> $b->{'priority'} - || - $b->{'weight'} <=> $a->{'weight'} -} -); - - -__PACKAGE__->set_rrsort_func("default_sort", - __PACKAGE__->get_rrsort_func("priority") - - ); - -__PACKAGE__->set_rrsort_func("weight", - sub { - my ($a,$b)=($Net::DNS::a,$Net::DNS::b); - $b->{"weight"} <=> $a->{"weight"} - || - $a->{"priority"} <=> $b->{"priority"} -} -); - - - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{'rdlength'} > 0) { - @{$self}{qw(priority weight port)} = unpack("\@$offset n3", $$data); - $offset += 3 * Net::DNS::INT16SZ(); - - ($self->{'target'}) = Net::DNS::Packet::dn_expand($data, $offset); - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string && ($string =~ /^(\d+)\s+(\d+)\s+(\d+)\s+(\S+)$/)) { - @{$self}{qw(priority weight port target)} = ($1, $2, $3, $4); - - $self->{'target'} =~ s/\.+$//; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - my $rdatastr; - - if (exists $self->{'priority'}) { - $rdatastr = join(' ', @{$self}{qw(priority weight port target)}); - $rdatastr =~ s/(.*[^\.])$/$1./; - } else { - $rdatastr = ''; - } - - return $rdatastr; -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - my $rdata = ''; - - if (exists $self->{'priority'}) { - $rdata .= pack('n3', @{$self}{qw(priority weight port)}); - $rdata .= $self->_name2wire ($self->{"target"}); - - } - - return $rdata; -} - - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::SRV - DNS SRV resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Service (SRV) resource records. - -=head1 METHODS - -=head2 priority - - print "priority = ", $rr->priority, "\n"; - -Returns the priority for this target host. - -=head2 weight - - print "weight = ", $rr->weight, "\n"; - -Returns the weight for this target host. - -=head2 port - - print "port = ", $rr->port, "\n"; - -Returns the port on this target host for the service. - -=head2 target - - print "target = ", $rr->target, "\n"; - -Returns the target host. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 2782 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/SSHFP.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/SSHFP.pm deleted file mode 100644 index 4890c3766e3..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/SSHFP.pm +++ /dev/null @@ -1,219 +0,0 @@ -package Net::DNS::RR::SSHFP; -# -# $Id: SSHFP.pm 626 2007-02-02 07:31:32Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION $HasBabble); - -BEGIN { - eval { - require Digest::BubbleBabble; - Digest::BubbleBabble->import(qw(bubblebabble)) - }; - - $HasBabble = $@ ? 0 : 1; - -} - -$VERSION = (qw$LastChangedRevision: 626 $)[1]; - -@ISA = qw(Net::DNS::RR); - -my %algtype = ( - RSA => 1, - DSA => 2, -); - -my %fingerprinttype = ( - 'SHA-1' => 1, -); - -my %fingerprinttypebyval = reverse %fingerprinttype; -my %algtypebyval = reverse %algtype; - - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{'rdlength'} > 0) { - my $offsettoalg = $offset; - my $offsettofptype = $offset+1; - my $offsettofp = $offset+2; - my $fplength = 20; # This will need to change if other fingerprint types - # are being deployed. - - - $self->{'algorithm'} = unpack('C', substr($$data, $offsettoalg, 1)); - $self->{'fptype'} = unpack('C', substr($$data, $offsettofptype, 1)); - - unless (defined $fingerprinttypebyval{$self->{'fptype'}}){ - warn "This fingerprint type $self->{'fptype'} has not yet been implemented, creation of SSHFP failed\n." ; - return undef; - } - - - # All this is SHA-1 dependend - $self->{'fpbin'} = substr($$data,$offsettofp, $fplength); # SHA1 digest 20 bytes long - - $self->{'fingerprint'} = uc unpack('H*', $self->{'fpbin'}); - } - - - return bless $self, $class; -} - - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string) { - $string =~ tr/()//d; - $string =~ s/;.*$//mg; - $string =~ s/\n//g; - - @{$self}{qw(algorithm fptype fingerprint)} = split(m/\s+/, $string, 3); - - # We allow spaces in the fingerprint. - $self->{'fingerprint'} =~ s/\s//g; - } - - return bless $self, $class; -} - - - -sub rdatastr { - my $self = shift; - my $rdatastr = ''; - - if (exists $self->{"algorithm"}) { - $rdatastr = join(' ', @{$self}{qw(algorithm fptype fingerprint)}) - .' ; ' . $self->babble; - } - - return $rdatastr; -} - -sub rr_rdata { - my $self = shift; - - if (exists $self->{"algorithm"}) { - return pack('C2', @{$self}{qw(algorithm fptype)}) . $self->fpbin; - } - - return ''; - -} - - - -sub babble { - my $self = shift; - - if ($HasBabble) { - return bubblebabble(Digest => $self->fpbin); - } else { - return ""; - } -} - - -sub fpbin { - my ($self) = @_; - - return $self->{'fpbin'} ||= pack('H*', $self->{'fingerprint'}); -} - - -1; - - -=head1 NAME - -Net::DNS::RR::SSHFP - DNS SSHFP resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for Delegation signer (SSHFP) resource records. - -=head1 METHODS - -In addition to the regular methods - - -=head2 algorithm - - print "algoritm" = ", $rr->algorithm, "\n"; - -Returns the RR's algorithm field in decimal representation - - 1 = RSA - 2 = DSS - - -=head2 fingerprint - - print "fingerprint" = ", $rr->fingerprint, "\n"; - -Returns the SHA1 fingerprint over the label and key in hexadecimal -representation. - - -=head2 fpbin - - $fpbin = $rr->fpbin; - -Returns the fingerprint as binary material. - - -=head2 fptype - - print "fingerprint type" . " = " . $rr->fptype ."\n"; - -Returns the fingerprint type of the SSHFP RR. - -=head2 babble - - print $rr->babble; - -If Digest::BubbleBabble is available on the sytem this method returns the -'BabbleBubble' representation of the fingerprint. The 'BabbleBubble' -string may be handy for telephone confirmation. - -The 'BabbleBubble' string returned as a comment behind the RDATA when -the string method is called. - -The method returns an empty string if Digest::BubbleBable is not installed. - -=head1 TODO - -=head1 ACKNOWLEDGEMENT - -Jakob Schlyter for code review and supplying patches. - -=head1 COPYRIGHT - -Copyright (c) 2004 RIPE NCC, Olaf Kolkman. - -"All rights reserved, This program is free software; you may redistribute it -and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -draft-ietf-dnssext-delegation-signer - -=cut - - - - - diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/TKEY.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/TKEY.pm deleted file mode 100644 index 7bf838bb8e5..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/TKEY.pm +++ /dev/null @@ -1,208 +0,0 @@ -package Net::DNS::RR::TKEY; -# -# $Id: TKEY.pm 388 2005-06-22 10:06:05Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -use Digest::HMAC_MD5; -use MIME::Base64; - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 388 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - # if we have some data then we are parsing an incoming TKEY packet - # see RFC2930 for the packet format - if ($self->{"rdlength"} > 0) { - ($self->{"algorithm"}, $offset) = Net::DNS::Packet::dn_expand($data, $offset); - - @{$self}{qw(inception expiration)} = unpack("\@$offset NN", $$data); - $offset += Net::DNS::INT32SZ() + Net::DNS::INT32SZ(); - - @{$self}{qw(inception expiration)} = unpack("\@$offset nn", $$data); - $offset += Net::DNS::INT16SZ() + Net::DNS::INT16SZ(); - - my ($key_len) = unpack("\@$offset n", $$data); - $offset += Net::DNS::INT16SZ(); - $self->{"key"} = substr($$data, $offset, $key_len); - $offset += $key_len; - - my ($other_len) = unpack("\@$offset n", $$data); - $offset += Net::DNS::INT16SZ(); - $self->{"other_data"} = substr($$data, $offset, $other_len); - $offset += $other_len; - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string && ($string =~ /^(.*)$/)) { - $self->{"key"} = $1; - } - - $self->{"algorithm"} = "gss.microsoft.com"; - $self->{"inception"} = time; - $self->{"expiration"} = time + 24*60*60; - $self->{"mode"} = 3; # GSSAPI - $self->{"error"} = 0; - $self->{"other_len"} = 0; - $self->{"other_data"} = ""; - - return bless $self, $class; -} - -sub error { - my $self = shift; - - my $rcode; - my $error = $self->{"error"}; - - if (defined($error)) { - $rcode = $Net::DNS::rcodesbyval{$error} || $error; - } - - return $rcode; -} - -sub rdatastr { - my $self = shift; - - my $error = $self->error; - $error = "UNDEFINED" unless defined $error; - - my $rdatastr; - - if (exists $self->{"algorithm"}) { - $rdatastr = "$self->{algorithm}. $error"; - if ($self->{"other_len"} && defined($self->{"other_data"})) { - $rdatastr .= " $self->{other_data}"; - } - } else { - $rdatastr = ''; - } - - return $rdatastr; -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - $packet->{"compnames"} = {}; - $rdata .= $packet->dn_comp($self->{"algorithm"}, 0); - $rdata .= pack("N", $self->{"inception"}); - $rdata .= pack("N", $self->{"expiration"}); - $rdata .= pack("n", $self->{"mode"}); - $rdata .= pack("n", 0); # error - $rdata .= pack("n", length($self->{"key"})); - $rdata .= $self->{"key"}; - $rdata .= pack("n", length($self->{"other_data"})); - $rdata .= $self->{"other_data"}; - - return $rdata; -} - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::TKEY - DNS TKEY resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS TKEY resource records. - -=head1 METHODS - -=head2 algorithm - - $rr->algorithm($algorithm_name); - print "algorithm = ", $rr->algorithm, "\n"; - -Gets or sets the domain name that specifies the name of the algorithm. -The default algorithm is gss.microsoft.com - -=head2 inception - - $rr->inception(time); - print "inception = ", $rr->inception, "\n"; - -Gets or sets the inception time as the number of seconds since 1 Jan 1970 -00:00:00 UTC. - -The default inception time is the current time. - -=head2 expiration - - $rr->expiration(time); - print "expiration = ", $rr->expiration, "\n"; - -Gets or sets the expiration time as the number of seconds since 1 Jan 1970 -00:00:00 UTC. - -The default expiration time is the current time plus 1 day. - -=head2 mode - - $rr->mode(3); - print "mode = ", $rr->mode, "\n"; - -Sets the key mode (see rfc2930). The default is 3 which corresponds to GSSAPI - -=head2 error - - print "error = ", $rr->error, "\n"; - -Returns the RCODE covering TKEY processing. See RFC 2930 for details. - -=head2 other_len - - print "other len = ", $rr->other_len, "\n"; - -Returns the length of the Other Data. Should be zero. - -=head2 other_data - - print "other data = ", $rr->other_data, "\n"; - -Returns the Other Data. This field should be empty. - -=head1 BUGS - -This code has not been extensively tested. Use with caution on -production systems. See http://samba.org/ftp/samba/tsig-gss/ for an -example usage. - -=head1 COPYRIGHT - -Copyright (c) 2000 Andrew Tridgell. All rights reserved. This program -is free software; you can redistribute it and/or modify it under -the same terms as Perl itself. - -=head1 ACKNOWLEDGMENT - -The Net::DNS::RR::TKEY module is based on the TSIG module by Michael -Fuhr and Chris Turbeville. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 2845 - -=cut - diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/TSIG.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/TSIG.pm deleted file mode 100644 index 844072fd170..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/TSIG.pm +++ /dev/null @@ -1,353 +0,0 @@ -package Net::DNS::RR::TSIG; -# -# $Id: TSIG.pm 388 2005-06-22 10:06:05Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -use Digest::HMAC_MD5; -use MIME::Base64; - -use constant DEFAULT_ALGORITHM => "HMAC-MD5.SIG-ALG.REG.INT"; -use constant DEFAULT_FUDGE => 300; - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 388 $)[1]; - -# a signing function for the HMAC-MD5 algorithm. This can be overridden using -# the sign_func element -sub sign_hmac { - my ($key, $data) = @_; - - $key =~ s/ //g; - $key = decode_base64($key); - - my $hmac = Digest::HMAC_MD5->new($key); - $hmac->add($data); - - return $hmac->digest; -} - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - ($self->{"algorithm"}, $offset) = Net::DNS::Packet::dn_expand($data, $offset); - - my ($time_high, $time_low) = unpack("\@$offset nN", $$data); - $self->{"time_signed"} = $time_low; # bug - $offset += Net::DNS::INT16SZ() + Net::DNS::INT32SZ(); - - @{$self}{qw(fudge mac_size)} = unpack("\@$offset nn", $$data); - $offset += Net::DNS::INT16SZ() + Net::DNS::INT16SZ(); - - $self->{"mac"} = substr($$data, $offset, $self->{'mac_size'}); - $offset += $self->{'mac_size'}; - - @{$self}{qw(original_id error other_len)} = unpack("\@$offset nnn", $$data); - $offset += Net::DNS::INT16SZ() * 3; - - my $odata = substr($$data, $offset, $self->{'other_len'}); - my ($odata_high, $odata_low) = unpack("nN", $odata); - $self->{"other_data"} = $odata_low; - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string && ($string =~ /^(.*)$/)) { - $self->{"key"} = $1; - } - - $self->{"algorithm"} = DEFAULT_ALGORITHM; - $self->{"time_signed"} = time; - $self->{"fudge"} = DEFAULT_FUDGE; - $self->{"mac_size"} = 0; - $self->{"mac"} = ""; - $self->{"original_id"} = 0; - $self->{"error"} = 0; - $self->{"other_len"} = 0; - $self->{"other_data"} = ""; - $self->{"sign_func"} = \&sign_hmac; - - # RFC 2845 Section 2.3 - $self->{"class"} = "ANY"; - - return bless $self, $class; -} - -sub error { - my $self = shift; - - my $rcode; - my $error = $self->{"error"}; - - if (defined($error)) { - $rcode = $Net::DNS::rcodesbyval{$error} || $error; - } - - return $rcode; -} - -sub mac_size { - my $self = shift; - return length(defined($self->{"mac"}) ? $self->{"mac"} : ""); -} - -sub mac { - my $self = shift; - my $mac = unpack("H*", $self->{"mac"}) if defined($self->{"mac"}); - return $mac; -} - -sub rdatastr { - my $self = shift; - - my $error = $self->error; - $error = "UNDEFINED" unless defined $error; - - my $rdatastr; - - if (exists $self->{"algorithm"}) { - $rdatastr = "$self->{algorithm}. $error"; - if ($self->{"other_len"} && defined($self->{"other_data"})) { - $rdatastr .= " $self->{other_data}"; - } - } else { - $rdatastr = ""; - } - - return $rdatastr; -} - -# return the data that needs to be signed/verified. This is useful for -# external TSIG verification routines -sub sig_data { - my ($self, $packet) = @_; - my ($newpacket, $sigdata); - - # XXX this is horrible. $pkt = Net::DNS::Packet->clone($packet); maybe? - bless($newpacket = {},"Net::DNS::Packet"); - %{$newpacket} = %{$packet}; - bless($newpacket->{"header"} = {},"Net::DNS::Header"); - $newpacket->{"additional"} = []; - %{$newpacket->{"header"}} = %{$packet->{"header"}}; - @{$newpacket->{"additional"}} = @{$packet->{"additional"}}; - shift(@{$newpacket->{"additional"}}); - $newpacket->{"header"}{"arcount"}--; - $newpacket->{"compnames"} = {}; - - # Add the request MAC if present (used to validate responses). - $sigdata .= pack("H*", $self->{"request_mac"}) - if $self->{"request_mac"}; - - $sigdata .= $newpacket->data; - - # Don't compress the record (key) name. - my $tmppacket = Net::DNS::Packet->new(""); - $sigdata .= $tmppacket->dn_comp(lc($self->{"name"}), 0); - - $sigdata .= pack("n", $Net::DNS::classesbyname{uc($self->{"class"})}); - $sigdata .= pack("N", $self->{"ttl"}); - - # Don't compress the algorithm name. - $tmppacket->{"compnames"} = {}; - $sigdata .= $tmppacket->dn_comp(lc($self->{"algorithm"}), 0); - - $sigdata .= pack("nN", 0, $self->{"time_signed"}); # bug - $sigdata .= pack("n", $self->{"fudge"}); - $sigdata .= pack("nn", $self->{"error"}, $self->{"other_len"}); - - $sigdata .= pack("nN", 0, $self->{"other_data"}) - if $self->{"other_data"}; - - return $sigdata; -} - -sub rr_rdata { - my ($self, $packet, $offset) = @_; - my $rdata = ""; - - if (exists $self->{"key"}) { - # form the data to be signed - my $sigdata = $self->sig_data($packet); - - # and call the signing function - $self->{"mac"} = &{$self->{"sign_func"}}($self->{"key"}, $sigdata); - $self->{"mac_size"} = length($self->{"mac"}); - - # construct the signed TSIG record - $packet->{"compnames"} = {}; - $rdata .= $packet->dn_comp($self->{"algorithm"}, 0); - - $rdata .= pack("nN", 0, $self->{"time_signed"}); # bug - $rdata .= pack("nn", $self->{"fudge"}, $self->{"mac_size"}); - $rdata .= $self->{"mac"}; - - $rdata .= pack("nnn",($packet->{"header"}->{"id"}, - $self->{"error"}, - $self->{"other_len"})); - - $rdata .= pack("nN", 0, $self->{"other_data"}) - if $self->{"other_data"}; - } - - return $rdata; -} - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::TSIG - DNS TSIG resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Transaction Signature (TSIG) resource records. - -=head1 METHODS - -=head2 algorithm - - $rr->algorithm($algorithm_name); - print "algorithm = ", $rr->algorithm, "\n"; - -Gets or sets the domain name that specifies the name of the algorithm. -The only algorithm currently supported is HMAC-MD5.SIG-ALG.REG.INT. - -=head2 time_signed - - $rr->time_signed(time); - print "time signed = ", $rr->time_signed, "\n"; - -Gets or sets the signing time as the number of seconds since 1 Jan 1970 -00:00:00 UTC. - -The default signing time is the current time. - -=head2 fudge - - $rr->fudge(60); - print "fudge = ", $rr->fudge, "\n"; - -Gets or sets the "fudge", i.e., the seconds of error permitted in the -signing time. - -The default fudge is 300 seconds. - -=head2 mac_size - - print "MAC size = ", $rr->mac_size, "\n"; - -Returns the number of octets in the message authentication code (MAC). -The programmer must call a Net::DNS::Packet object's data method -before this will return anything meaningful. - -=head2 mac - - print "MAC = ", $rr->mac, "\n"; - -Returns the message authentication code (MAC) as a string of hex -characters. The programmer must call a Net::DNS::Packet object's -data method before this will return anything meaningful. - -=head2 original_id - - $rr->original_id(12345); - print "original ID = ", $rr->original_id, "\n"; - -Gets or sets the original message ID. - -=head2 error - - print "error = ", $rr->error, "\n"; - -Returns the RCODE covering TSIG processing. Common values are -NOERROR, BADSIG, BADKEY, and BADTIME. See RFC 2845 for details. - -=head2 other_len - - print "other len = ", $rr->other_len, "\n"; - -Returns the length of the Other Data. Should be zero unless the -error is BADTIME. - -=head2 other_data - - print "other data = ", $rr->other_data, "\n"; - -Returns the Other Data. This field should be empty unless the -error is BADTIME, in which case it will contain the server's -time as the number of seconds since 1 Jan 1970 00:00:00 UTC. - -=head2 sig_data - - my $sigdata = $tsig->sig_data($packet); - -Returns the packet packed according to RFC2845 in a form for signing. This -is only needed if you want to supply an external signing function, such as is -needed for TSIG-GSS. - -=head2 sign_func - - sub my_sign_fn($$) { - my ($key, $data) = @_; - - return some_digest_algorithm($key, $data); - } - - $tsig->sign_func(\&my_sign_fn); - -This sets the signing function to be used for this TSIG record. - -The default signing function is HMAC-MD5. - -=head1 BUGS - -This code is still under development. Use with caution on production -systems. - -The time_signed and other_data fields should be 48-bit unsigned -integers (RFC 2845, Sections 2.3 and 4.5.2). The current implementation -ignores the upper 16 bits; this will cause problems for times later -than 19 Jan 2038 03:14:07 UTC. - -The only builtin algorithm currently supported is -HMAC-MD5.SIG-ALG.REG.INT. You can use other algorithms by supplying an -appropriate sign_func. - -=head1 COPYRIGHT - -Copyright (c) 2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 ACKNOWLEDGMENT - -Most of the code in the Net::DNS::RR::TSIG module was contributed -by Chris Turbeville. - -Support for external signing functions was added by Andrew Tridgell. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 2845 - -=cut - diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/TXT.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/TXT.pm deleted file mode 100644 index 1c8eb78e3b4..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/TXT.pm +++ /dev/null @@ -1,179 +0,0 @@ -package Net::DNS::RR::TXT; -# -# $Id: TXT.pm 582 2006-04-25 07:12:19Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -use Text::ParseWords; - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 582 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - my $rdlength = $self->{'rdlength'} or return bless $self, $class; - my $end = $offset + $rdlength; - - while ($offset < $end) { - my $strlen = unpack("\@$offset C", $$data); - ++$offset; - - my $char_str = substr($$data, $offset, $strlen); - $offset += $strlen; - - push(@{$self->{'char_str_list'}}, $char_str); - } - - return bless $self, $class; -} - -sub new_from_string { - my ( $class, $self, $rdata_string ) = @_ ; - - bless $self, $class; - - $self->_build_char_str_list($rdata_string); - - return $self; -} - -sub txtdata { - my $self = shift; - return join(' ', $self->char_str_list()); -} - -sub rdatastr { - my $self = shift; - - if ($self->char_str_list) { - return join(' ', map { - my $str = $_; - $str =~ s/"/\\"/g; - qq("$str"); - } @{$self->{'char_str_list'}}); - } - - return ''; -} - -sub _build_char_str_list { - my ($self, $rdata_string) = @_; - - my @words; - - @words= shellwords($rdata_string) if $rdata_string; - - $self->{'char_str_list'} = []; - - if (@words) { - foreach my $string (@words) { - $string =~ s/\\"/"/g; - push(@{$self->{'char_str_list'}}, $string); - } - } -} - -sub char_str_list { - my $self = shift; - - if (not $self->{'char_str_list'}) { - $self->_build_char_str_list( $self->{'txtdata'} ); - } - - return @{$self->{'char_str_list'}}; # unquoted strings -} - -sub rr_rdata { - my $self = shift; - my $rdata = ''; - - foreach my $string ($self->char_str_list) { - $rdata .= pack("C", length $string ); - $rdata .= $string; - } - - return $rdata; -} - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::TXT - DNS TXT resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS Text (TXT) resource records. - -=head1 METHODS - -=head2 txtdata - - print "txtdata = ", $rr->txtdata, "\n"; - -Returns the descriptive text as a single string, regardless of actual -number of <character-string> elements. Of questionable value. Should -be deprecated. - -Use C<< $txt->rdatastr() >> or C<< $txt->char_str_list() >> instead. - - -=head2 char_str_list - - print "Individual <character-string> list: \n\t", - join("\n\t", $rr->char_str_list()); - -Returns a list of the individual <character-string> elements, -as unquoted strings. Used by TXT->rdatastr and TXT->rr_rdata. - - -=head1 FEATURES - -The RR.pm module accepts semi-colons as a start of a comment. This is -to allow the RR.pm to deal with RFC1035 specified zonefile format. - -For some applications of the TXT RR the semicolon is relevant, you -will need to escape it on input. - -Also note that you should specify the several character strings -separately. The easiest way to do so is to include the whole argument -in single quotes and the several character strings in double -quotes. Double quotes inside the character strings will need to be -escaped. - -my $TXTrr=Net::DNS::RR->new('txt2.t.net-dns.org. 60 IN - TXT "Test1 \" \; more stuff" "Test2"'); - -would result in -$TXTrr->char_str_list())[0] containing 'Test1 " ; more stuff' -and -$TXTrr->char_str_list())[1] containing 'Test2' - - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. -Portions Copyright (c) 2005 Olaf Kolkman (NLnet Labs) - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1035 Section 3.3.14 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/Unknown.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/Unknown.pm deleted file mode 100644 index 5a32f1ff87f..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/Unknown.pm +++ /dev/null @@ -1,82 +0,0 @@ -package Net::DNS::RR::Unknown; -# -# $Id: Unknown.pm 388 2005-06-22 10:06:05Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 388 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - my $length = $self->{'rdlength'}; - - if ($length > 0) { - $self->{'rdata'} = substr($$data, $offset,$length); - $self->{'rdatastr'} = "\\# $length " . unpack('H*', $self->{'rdata'}); - } - - return bless $self, $class; -} - - -sub rdatastr { - my $self = shift; - - if (exists $self->{'rdatastr'}) { - return $self->{'rdatastr'}; - } else { - if (exists $self->{"rdata"}){ - my $data= $self->{'rdata'}; - - return "\\# ". length($data) . " " . unpack('H*', $data); - } - } - - return "#NO DATA"; -} - - -# sub rr_rdata is inherited from RR.pm. Note that $self->{'rdata'} -# should always be defined - - - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::Unknown - Unknown RR record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for dealing with unknown RR types (RFC3597) - -=head1 METHODS - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -Portions Copyright (c) 2003 Olaf M. Kolkman, RIPE NCC. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<Net::DNS>, L<Net::DNS::RR>, RFC 3597 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/X25.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/X25.pm deleted file mode 100644 index 97841a836db..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/RR/X25.pm +++ /dev/null @@ -1,95 +0,0 @@ -package Net::DNS::RR::X25; -# -# $Id: X25.pm 388 2005-06-22 10:06:05Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw(@ISA $VERSION); - -@ISA = qw(Net::DNS::RR); -$VERSION = (qw$LastChangedRevision: 388 $)[1]; - -sub new { - my ($class, $self, $data, $offset) = @_; - - if ($self->{"rdlength"} > 0) { - my ($len) = unpack("\@$offset C", $$data); - ++$offset; - $self->{"psdn"} = substr($$data, $offset, $len); - $offset += $len; - } - - return bless $self, $class; -} - -sub new_from_string { - my ($class, $self, $string) = @_; - - if ($string && $string =~ /^\s*["']?(.*?)["']?\s*$/) { - $self->{"psdn"} = $1; - } - - return bless $self, $class; -} - -sub rdatastr { - my $self = shift; - - return exists $self->{"psdn"} - ? qq("$self->{psdn}") - : ''; -} - -sub rr_rdata { - my $self = shift; - my $rdata = ""; - - if (exists $self->{"psdn"}) { - $rdata .= pack("C", length $self->{"psdn"}); - $rdata .= $self->{"psdn"}; - } - - return $rdata; -} - -1; -__END__ - -=head1 NAME - -Net::DNS::RR::X25 - DNS X25 resource record - -=head1 SYNOPSIS - -C<use Net::DNS::RR>; - -=head1 DESCRIPTION - -Class for DNS X25 resource records. - -=head1 METHODS - -=head2 psdn - - print "psdn = ", $rr->psdn, "\n"; - -Returns the PSDN address. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Packet>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -RFC 1183 Section 3.1 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Resolver.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Resolver.pm deleted file mode 100644 index c64d472445b..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Resolver.pm +++ /dev/null @@ -1,750 +0,0 @@ -package Net::DNS::Resolver; -# -# $Id: Resolver.pm 614 2006-09-25 08:12:29Z olaf $ -# - -use strict; -use vars qw($VERSION @ISA); - -$VERSION = (qw$LastChangedRevision: 614 $)[1]; - -BEGIN { - if ($^O eq 'MSWin32') { - require Net::DNS::Resolver::Win32; - @ISA = qw(Net::DNS::Resolver::Win32); - } elsif ($^O eq 'cygwin') { - require Net::DNS::Resolver::Cygwin; - @ISA = qw(Net::DNS::Resolver::Cygwin); - } else { - require Net::DNS::Resolver::UNIX; - @ISA = qw(Net::DNS::Resolver::UNIX); - } -} - -__PACKAGE__->init(); - -1; - -__END__ - -=head1 NAME - -Net::DNS::Resolver - DNS resolver class - -=head1 SYNOPSIS - - use Net::DNS; - - my $res = Net::DNS::Resolver->new; - - # Perform a lookup, using the searchlist if appropriate. - my $answer = $res->search('example.com'); - - # Perform a lookup, without the searchlist - my $answer = $res->query('example.com', 'MX'); - - # Perform a lookup, without pre or post-processing - my $answer = $res->send('example.com', 'MX', 'CH'); - - # Send a prebuilt packet - my $packet = Net::DNS::Packet->new(...); - my $answer = $res->send($packet); - -=head1 DESCRIPTION - -Instances of the C<Net::DNS::Resolver> class represent resolver objects. -A program can have multiple resolver objects, each maintaining its -own state information such as the nameservers to be queried, whether -recursion is desired, etc. - -=head1 METHODS - -=head2 new - - # Use the system defaults - my $res = Net::DNS::Resolver->new; - - # Use my own configuration file - my $res = Net::DNS::Resolver->new(config_file => '/my/dns.conf'); - - # Set options in the constructor - my $res = Net::DNS::Resolver->new( - nameservers => [qw(10.1.1.128 10.1.2.128)], - recurse => 0, - debug => 1, - ); - -Returns a resolver object. If given no arguments, C<new()> returns an -object configured to your system's defaults. On UNIX systems the -defaults are read from the following files, in the order indicated: - - /etc/resolv.conf - $HOME/.resolv.conf - ./.resolv.conf - -The following keywords are recognized in resolver configuration files: - -=over 4 - -=item domain - -The default domain. - -=item search - -A space-separated list of domains to put in the search list. - -=item nameserver - -A space-separated list of nameservers to query. - -=back - -Files except for F</etc/resolv.conf> must be owned by the effective -userid running the program or they won't be read. In addition, several -environment variables can also contain configuration information; see -L</ENVIRONMENT>. - -On Windows systems, an attempt is made to determine the system defaults -using the registry. This is still a work in progress; systems with many -dynamically configured network interfaces may confuse Net::DNS. - -You can include a configuration file of your own when creating a -resolver object: - - # Use my own configuration file - my $res = Net::DNS::Resolver->new(config_file => '/my/dns.conf'); - -This is supported on both UNIX and Windows. Values pulled from a custom -configuration file override the the system's defaults, but can still be -overridden by the other arguments to new(). - -Explicit arguments to new override both the system's defaults and the -values of the custom configuration file, if any. The following -arguments to new() are supported: - -=over 4 - -=item nameservers - -An array reference of nameservers to query. - -=item searchlist - -An array reference of domains. - -=item recurse - -=item debug - -=item domain - -=item port - -=item srcaddr - -=item srcport - -=item tcp_timeout - -=item udp_timeout - -=item retrans - -=item retry - -=item usevc - -=item stayopen - -=item igntc - -=item defnames - -=item dnsrch - -=item persistent_tcp - -=item persistent_udp - -=item dnssec - -=back - -For more information on any of these options, please consult the method -of the same name. - -=head2 search - - $packet = $res->search('mailhost'); - $packet = $res->search('mailhost.example.com'); - $packet = $res->search('192.168.1.1'); - $packet = $res->search('example.com', 'MX'); - $packet = $res->search('user.passwd.example.com', 'TXT', 'HS'); - -Performs a DNS query for the given name, applying the searchlist -if appropriate. The search algorithm is as follows: - -=over 4 - -=item 1. - -If the name contains at least one dot, try it as is. - -=item 2. - -If the name doesn't end in a dot then append each item in -the search list to the name. This is only done if B<dnsrch> -is true. - -=item 3. - -If the name doesn't contain any dots, try it as is. - -=back - -The record type and class can be omitted; they default to A and -IN. If the name looks like an IP address (4 dot-separated numbers), -then an appropriate PTR query will be performed. - -Returns a "Net::DNS::Packet" object, or "undef" if no answers were -found. If you need to examine the response packet whether it contains -any answers or not, use the send() method instead. - -=head2 query - - $packet = $res->query('mailhost'); - $packet = $res->query('mailhost.example.com'); - $packet = $res->query('192.168.1.1'); - $packet = $res->query('example.com', 'MX'); - $packet = $res->query('user.passwd.example.com', 'TXT', 'HS'); - -Performs a DNS query for the given name; the search list is not -applied. If the name doesn't contain any dots and B<defnames> -is true then the default domain will be appended. - -The record type and class can be omitted; they default to A and -IN. If the name looks like an IP address (IPv4 or IPv6), -then an appropriate PTR query will be performed. - -Returns a "Net::DNS::Packet" object, or "undef" if no answers were -found. If you need to examine the response packet whether it contains -any answers or not, use the send() method instead. - -=head2 send - - $packet = $res->send($packet_object); - $packet = $res->send('mailhost.example.com'); - $packet = $res->send('example.com', 'MX'); - $packet = $res->send('user.passwd.example.com', 'TXT', 'HS'); - -Performs a DNS query for the given name. Neither the searchlist -nor the default domain will be appended. - -The argument list can be either a C<Net::DNS::Packet> object or a list -of strings. The record type and class can be omitted; they default to -A and IN. If the name looks like an IP address (Ipv4 or IPv6), -then an appropriate PTR query will be performed. - -Returns a C<Net::DNS::Packet> object whether there were any answers or not. -Use C<< $packet->header->ancount >> or C<< $packet->answer >> to find out -if there were any records in the answer section. Returns C<undef> if there -was an error. - -=head2 axfr - - @zone = $res->axfr; - @zone = $res->axfr('example.com'); - @zone = $res->axfr('passwd.example.com', 'HS'); - -Performs a zone transfer from the first nameserver listed in C<nameservers>. -If the zone is omitted, it defaults to the first zone listed in the resolver's -search list. If the class is omitted, it defaults to IN. - -Returns a list of C<Net::DNS::RR> objects, or C<undef> if the zone -transfer failed. - -The redundant SOA record that terminates the zone transfer is not -returned to the caller. - -See also L</axfr_start> and L</axfr_next>. - -Here's an example that uses a timeout: - - $res->tcp_timeout(10); - my @zone = $res->axfr('example.com'); - - if (@zone) { - foreach my $rr (@zone) { - $rr->print; - } - } else { - print 'Zone transfer failed: ', $res->errorstring, "\n"; - } - -=head2 axfr_start - - $res->axfr_start; - $res->axfr_start('example.com'); - $res->axfr_start('example.com', 'HS'); - -Starts a zone transfer from the first nameserver listed in C<nameservers>. -If the zone is omitted, it defaults to the first zone listed in the resolver's -search list. If the class is omitted, it defaults to IN. - -B<IMPORTANT>: - -This method currently returns the C<IO::Socket::INET> object that will -be used for reading, or C<undef> on error. DO NOT DEPEND ON C<axfr_start()> -returning a socket object. THIS MIGHT CHANGE in future releases. - -Use C<axfr_next> to read the zone records one at a time. - -=head2 axfr_next - - $res->axfr_start('example.com'); - - while (my $rr = $res->axfr_next) { - $rr->print; - } - -Reads records from a zone transfer one at a time. - -Returns C<undef> at the end of the zone transfer. The redundant -SOA record that terminates the zone transfer is not returned. - -See also L</axfr>. - -=head2 nameservers - - @nameservers = $res->nameservers; - $res->nameservers('192.168.1.1', '192.168.2.2', '192.168.3.3'); - -Gets or sets the nameservers to be queried. - -Also see the IPv6 transport notes below - -=head2 print - - $res->print; - -Prints the resolver state on the standard output. - -=head2 string - - print $res->string; - -Returns a string representation of the resolver state. - -=head2 searchlist - - @searchlist = $res->searchlist; - $res->searchlist('example.com', 'a.example.com', 'b.example.com'); - -Gets or sets the resolver search list. - -=head2 port - - print 'sending queries to port ', $res->port, "\n"; - $res->port(9732); - -Gets or sets the port to which we send queries. This can be useful -for testing a nameserver running on a non-standard port. The -default is port 53. - -=head2 srcport - - print 'sending queries from port ', $res->srcport, "\n"; - $res->srcport(5353); - -Gets or sets the port from which we send queries. The default is 0, -meaning any port. - -=head2 srcaddr - - print 'sending queries from address ', $res->srcaddr, "\n"; - $res->srcaddr('192.168.1.1'); - -Gets or sets the source address from which we send queries. Convenient -for forcing queries out a specific interfaces on a multi-homed host. -The default is 0.0.0.0, meaning any local address. - -=head2 bgsend - - $socket = $res->bgsend($packet_object) || die " $res->errorstring"; - - $socket = $res->bgsend('mailhost.example.com'); - $socket = $res->bgsend('example.com', 'MX'); - $socket = $res->bgsend('user.passwd.example.com', 'TXT', 'HS'); - - - -Performs a background DNS query for the given name, i.e., sends a -query packet to the first nameserver listed in C<< $res->nameservers >> -and returns immediately without waiting for a response. The program -can then perform other tasks while waiting for a response from the -nameserver. - -The argument list can be either a C<Net::DNS::Packet> object or a list -of strings. The record type and class can be omitted; they default to -A and IN. If the name looks like an IP address (4 dot-separated numbers), -then an appropriate PTR query will be performed. - -Returns an C<IO::Socket::INET> object or C<undef> on error in which -case the reason for failure can be found through a call to the -errorstring method. - -The program must determine when the socket is ready for reading and -call C<< $res->bgread >> to get the response packet. You can use C<< -$res->bgisready >> or C<IO::Select> to find out if the socket is ready -before reading it. - -=head2 bgread - - $packet = $res->bgread($socket); - undef $socket; - -Reads the answer from a background query (see L</bgsend>). The argument -is an C<IO::Socket> object returned by C<bgsend>. - -Returns a C<Net::DNS::Packet> object or C<undef> on error. - -The programmer should close or destroy the socket object after reading it. - -=head2 bgisready - - $socket = $res->bgsend('foo.example.com'); - until ($res->bgisready($socket)) { - # do some other processing - } - $packet = $res->bgread($socket); - $socket = undef; - -Determines whether a socket is ready for reading. The argument is -an C<IO::Socket> object returned by C<< $res->bgsend >>. - -Returns true if the socket is ready, false if not. - -=head2 tsig - - my $tsig = $res->tsig; - - $res->tsig(Net::DNS::RR->new("$key_name TSIG $key")); - - $tsig = Net::DNS::RR->new("$key_name TSIG $key"); - $tsig->fudge(60); - $res->tsig($tsig); - - $res->tsig($key_name, $key); - - $res->tsig(0); - -Get or set the TSIG record used to automatically sign outgoing -queries and updates. Call with an argument of 0 or '' to turn off -automatic signing. - -The default resolver behavior is not to sign any packets. You must -call this method to set the key if you'd like the resolver to sign -packets automatically. - -You can also sign packets manually -- see the C<Net::DNS::Packet> -and C<Net::DNS::Update> manual pages for examples. TSIG records -in manually-signed packets take precedence over those that the -resolver would add automatically. - -=head2 retrans - - print 'retrans interval: ', $res->retrans, "\n"; - $res->retrans(3); - -Get or set the retransmission interval. The default is 5. - -=head2 retry - - print 'number of tries: ', $res->retry, "\n"; - $res->retry(2); - -Get or set the number of times to try the query. The default is 4. - -=head2 recurse - - print 'recursion flag: ', $res->recurse, "\n"; - $res->recurse(0); - -Get or set the recursion flag. If this is true, nameservers will -be requested to perform a recursive query. The default is true. - -=head2 defnames - - print 'defnames flag: ', $res->defnames, "\n"; - $res->defnames(0); - -Get or set the defnames flag. If this is true, calls to B<query> will -append the default domain to names that contain no dots. The default -is true. - -=head2 dnsrch - - print 'dnsrch flag: ', $res->dnsrch, "\n"; - $res->dnsrch(0); - -Get or set the dnsrch flag. If this is true, calls to B<search> will -apply the search list. The default is true. - -=head2 debug - - print 'debug flag: ', $res->debug, "\n"; - $res->debug(1); - -Get or set the debug flag. If set, calls to B<search>, B<query>, -and B<send> will print debugging information on the standard output. -The default is false. - -=head2 usevc - - print 'usevc flag: ', $res->usevc, "\n"; - $res->usevc(1); - -Get or set the usevc flag. If true, then queries will be performed -using virtual circuits (TCP) instead of datagrams (UDP). The default -is false. - -=head2 tcp_timeout - - print 'TCP timeout: ', $res->tcp_timeout, "\n"; - $res->tcp_timeout(10); - -Get or set the TCP timeout in seconds. A timeout of C<undef> means -indefinite. The default is 120 seconds (2 minutes). - -=head2 udp_timeout - - print 'UDP timeout: ', $res->udp_timeout, "\n"; - $res->udp_timeout(10); - -Get or set the UDP timeout in seconds. A timeout of C<undef> means -the retry and retrans settings will be just utilized to perform the -retries until they are exhausted. The default is C<undef>. - -=head2 persistent_tcp - - print 'Persistent TCP flag: ', $res->persistent_tcp, "\n"; - $res->persistent_tcp(1); - -Get or set the persistent TCP setting. If set to true, Net::DNS -will keep a TCP socket open for each host:port to which it connects. -This is useful if you're using TCP and need to make a lot of queries -or updates to the same nameserver. - -This option defaults to false unless you're running under a -SOCKSified Perl, in which case it defaults to true. - -=head2 persistent_udp - - print 'Persistent UDP flag: ', $res->persistent_udp, "\n"; - $res->persistent_udp(1); - -Get or set the persistent UDP setting. If set to true, Net::DNS -will keep a single UDP socket open for all queries. -This is useful if you're using UDP and need to make a lot of queries -or updates. - -=head2 igntc - - print 'igntc flag: ', $res->igntc, "\n"; - $res->igntc(1); - -Get or set the igntc flag. If true, truncated packets will be -ignored. If false, truncated packets will cause the query to -be retried using TCP. The default is false. - -=head2 errorstring - - print 'query status: ', $res->errorstring, "\n"; - -Returns a string containing the status of the most recent query. - -=head2 answerfrom - - print 'last answer was from: ', $res->answerfrom, "\n"; - -Returns the IP address from which we received the last answer in -response to a query. - -=head2 answersize - - print 'size of last answer: ', $res->answersize, "\n"; - -Returns the size in bytes of the last answer we received in -response to a query. - - -=head2 dnssec - - print "dnssec flag: ", $res->dnssec, "\n"; - $res->dnssec(0); - -Enabled DNSSEC this will set the checking disabled flag in the query header -and add EDNS0 data as in RFC2671 and RFC3225 - -When set to true the answer and additional section of queries from -secured zones will contain DNSKEY, NSEC and RRSIG records. - -Setting calling the dnssec method with a non-zero value will set the -UDP packet size to the default value of 2048. If that is to small or -to big for your environement you should call the udppacketsize() -method immeditatly after. - - $res->dnssec(1); # turns on DNSSEC and sets udp packetsize to 2048 - $res->udppacketsize(1028); # lowers the UDP pakcet size - -The method will Croak::croak with the message "You called the -Net::DNS::Resolver::dnssec() method but do not have Net::DNS::SEC -installed at ..." if you call it without Net::DNS::SEC being in your -@INC path. - - - -=head2 cdflag - - print "checking disabled flag: ", $res->dnssec, "\n"; - $res->dnssec(1); - $res->cdflag(1); - -Sets or gets the CD bit for a dnssec query. This bit is always zero -for non dnssec queries. When the dnssec is enabled the flag can be set -to 1. - -=head2 udppacketsize - - print "udppacketsize: ", $res->udppacketsize, "\n"; - $res->udppacketsize(2048); - -udppacketsize will set or get the packet size. If set to a value greater than -Net::DNS::PACKETSZ() an EDNS extension will be added indicating suppport for MTU path -recovery. - -Default udppacketsize is Net::DNS::PACKETSZ() (512) - -=head1 CUSTOMIZING - -Net::DNS::Resolver is actually an empty subclass. At compile time a -super class is chosen based on the current platform. A side benefit of -this allows for easy modification of the methods in Net::DNS::Resolver. -You simply add a method to the namespace! - -For example, if we wanted to cache lookups: - - package Net::DNS::Resolver; - - my %cache; - - sub search { - my ($self, @args) = @_; - - return $cache{@args} ||= $self->SUPER::search(@args); - } - - -=head1 IPv6 transport - -The Net::DNS::Resolver library will use IPv6 transport if the -appropriate libraries (Socket6 and IO::Socket::INET6) are available -and the address the server tries to connect to is an IPv6 address. - -The print() will method will report if IPv6 transport is available. - -You can use the force_v4() method with a non-zero argument -to force IPv4 transport. - -The nameserver() method has IPv6 dependend behavior. If IPv6 is not -available or IPv4 transport has been forced the nameserver() method -will only return IPv4 addresses. - -For example - - $res->nameservers('192.168.1.1', '192.168.2.2', '2001:610:240:0:53:0:0:3'); - $res->force_v4(1); - print join (" ",$res->nameserver()); - -Will print: 192.168.1.1 192.168.2.2 - - - - -=head1 ENVIRONMENT - -The following environment variables can also be used to configure -the resolver: - -=head2 RES_NAMESERVERS - - # Bourne Shell - RES_NAMESERVERS="192.168.1.1 192.168.2.2 192.168.3.3" - export RES_NAMESERVERS - - # C Shell - setenv RES_NAMESERVERS "192.168.1.1 192.168.2.2 192.168.3.3" - -A space-separated list of nameservers to query. - -=head2 RES_SEARCHLIST - - # Bourne Shell - RES_SEARCHLIST="example.com sub1.example.com sub2.example.com" - export RES_SEARCHLIST - - # C Shell - setenv RES_SEARCHLIST "example.com sub1.example.com sub2.example.com" - -A space-separated list of domains to put in the search list. - -=head2 LOCALDOMAIN - - # Bourne Shell - LOCALDOMAIN=example.com - export LOCALDOMAIN - - # C Shell - setenv LOCALDOMAIN example.com - -The default domain. - -=head2 RES_OPTIONS - - # Bourne Shell - RES_OPTIONS="retrans:3 retry:2 debug" - export RES_OPTIONS - - # C Shell - setenv RES_OPTIONS "retrans:3 retry:2 debug" - -A space-separated list of resolver options to set. Options that -take values are specified as I<option>:I<value>. - -=head1 BUGS - -Error reporting and handling needs to be improved. - -The current implementation supports TSIG only on outgoing packets. -No validation of server replies is performed. - -bgsend does not honor the usevc flag and only uses UDP for transport. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. -Portions Copyright (c) 2005 Olaf M. Kolkman, NLnet Labs. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Packet>, L<Net::DNS::Update>, -L<Net::DNS::Header>, L<Net::DNS::Question>, L<Net::DNS::RR>, -L<resolver(5)>, RFC 1035, RFC 1034 Section 4.3.5 - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Resolver/Base.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Resolver/Base.pm deleted file mode 100644 index 09778d9d597..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Resolver/Base.pm +++ /dev/null @@ -1,1579 +0,0 @@ -package Net::DNS::Resolver::Base; -# -# $Id: Base.pm 704 2008-02-06 21:30:59Z olaf $ -# - -use strict; - -BEGIN { - eval { require bytes; } -} - -use vars qw( - $VERSION - $has_inet6 - $AUTOLOAD -); - -use Carp; -use Config (); -use Socket; -use IO::Socket; -use IO::Select; - -use Net::DNS; -use Net::DNS::Packet; - -$VERSION = (qw$LastChangedRevision: 704 $)[1]; - - -# -# A few implementation notes wrt IPv6 support. -# -# In general we try to be gracious to those stacks that do not have ipv6 support. -# We test that by means of the availability of Socket6 and IO::Socket::INET6 -# - - -# We have chosen to not use mapped IPv4 addresses, there seem to be -# issues with this; as a result we have to use sockets for both -# family types. To be able to deal with persistent sockets and -# sockets of both family types we use an array that is indexed by the -# socketfamily type to store the socket handlers. I think this could -# be done more efficiently. - - -# inet_pton is not available on WIN32, so we only use the getaddrinfo -# call to translate IP addresses to socketaddress - - - -# Set the $force_inet4_only variable inside the BEGIN block to force -# not to use the IPv6 stuff. You can use this for compatibility -# test. We do not see a need to do this from the calling code. - - -# Olaf Kolkman, RIPE NCC, December 2003. - - -BEGIN { - if ( - eval {require Socket6;} && - # INET6 prior to 2.01 will not work; sorry. - eval {require IO::Socket::INET6; IO::Socket::INET6->VERSION("2.00");} - ) { - import Socket6; - $has_inet6=1; - }else{ - $has_inet6=0; - } - } - - - - - - -# -# Set up a closure to be our class data. -# -{ - my %defaults = ( - nameservers => ['127.0.0.1'], - port => 53, - srcaddr => '0.0.0.0', - srcport => 0, - domain => '', - searchlist => [], - retrans => 5, - retry => 4, - usevc => 0, - stayopen => 0, - igntc => 0, - recurse => 1, - defnames => 1, - dnsrch => 1, - debug => 0, - errorstring => 'unknown error or no error', - tsig_rr => undef, - answerfrom => '', - querytime => undef, - tcp_timeout => 120, - udp_timeout => undef, - axfr_sel => undef, - axfr_rr => [], - axfr_soa_count => 0, - persistent_tcp => 0, - persistent_udp => 0, - dnssec => 0, - udppacketsize => 0, # The actual default is lower bound by Net::DNS::PACKETSZ - cdflag => 1, # this is only used when {dnssec} == 1 - force_v4 => 0, # force_v4 is only relevant when we have - # v6 support available - ignqrid => 0, # normally packets with non-matching ID - # or with the qr bit of are thrown away - # in 'ignqrid' these packets are - # are accepted. - # USE WITH CARE, YOU ARE VULNARABLE TO - # SPOOFING IF SET. - # This is may be a temporary feature - ); - - # If we're running under a SOCKSified Perl, use TCP instead of UDP - # and keep the sockets open. - if ($Config::Config{'usesocks'}) { - $defaults{'usevc'} = 1; - $defaults{'persistent_tcp'} = 1; - } - - sub defaults { \%defaults } -} - -# These are the attributes that we let the user specify in the new(). -# We also deprecate access to these with AUTOLOAD (some may be useful). -my %public_attr = map { $_ => 1 } qw( - nameservers - port - srcaddr - srcport - domain - searchlist - retrans - retry - usevc - stayopen - igntc - recurse - defnames - dnsrch - debug - tcp_timeout - udp_timeout - persistent_tcp - persistent_udp - dnssec - ignqrid -); - - -sub new { - my $class = shift; - my $self = bless({ %{$class->defaults} }, $class); - - $self->_process_args(@_) if @_ and @_ % 2 == 0; - return $self; -} - - - -sub _process_args { - my ($self, %args) = @_; - - if ($args{'config_file'}) { - $self->read_config_file($args{'config_file'}); - } - - foreach my $attr (keys %args) { - next unless $public_attr{$attr}; - - if ($attr eq 'nameservers' || $attr eq 'searchlist') { - - die "Net::DNS::Resolver->new(): $attr must be an arrayref\n" unless - defined($args{$attr}) && UNIVERSAL::isa($args{$attr}, 'ARRAY'); - - } - - if ($attr eq 'nameservers') { - $self->nameservers(@{$args{$attr}}); - } else { - $self->{$attr} = $args{$attr}; - } - } - - -} - - - - - -# -# Some people have reported that Net::DNS dies because AUTOLOAD picks up -# calls to DESTROY. -# -sub DESTROY {} - - -sub read_env { - my ($invocant) = @_; - my $config = ref $invocant ? $invocant : $invocant->defaults; - - $config->{'nameservers'} = [ $ENV{'RES_NAMESERVERS'} =~ m/(\S+)/g ] - if exists $ENV{'RES_NAMESERVERS'}; - - $config->{'searchlist'} = [ split(' ', $ENV{'RES_SEARCHLIST'}) ] - if exists $ENV{'RES_SEARCHLIST'}; - - $config->{'domain'} = $ENV{'LOCALDOMAIN'} - if exists $ENV{'LOCALDOMAIN'}; - - if (exists $ENV{'RES_OPTIONS'}) { - foreach ($ENV{'RES_OPTIONS'} =~ m/(\S+)/g) { - my ($name, $val) = split(m/:/); - $val = 1 unless defined $val; - $config->{$name} = $val if exists $config->{$name}; - } - } -} - -# -# $class->read_config_file($filename) or $self->read_config_file($file) -# -sub read_config_file { - my ($invocant, $file) = @_; - my $config = ref $invocant ? $invocant : $invocant->defaults; - - - my @ns; - my @searchlist; - - local *FILE; - - open(FILE, "< $file") or croak "Could not open $file: $!"; - local $/ = "\n"; - local $_; - - while (<FILE>) { - s/\s*[;#].*//; - - # Skip ahead unless there's non-whitespace characters - next unless m/\S/; - - SWITCH: { - /^\s*domain\s+(\S+)/ && do { - $config->{'domain'} = $1; - last SWITCH; - }; - - /^\s*search\s+(.*)/ && do { - push(@searchlist, split(' ', $1)); - last SWITCH; - }; - - /^\s*nameserver\s+(.*)/ && do { - foreach my $ns (split(' ', $1)) { - $ns = '0.0.0.0' if $ns eq '0'; -# next if $ns =~ m/:/; # skip IPv6 nameservers - push @ns, $ns; - } - last SWITCH; - }; - } - } - close FILE || croak "Could not close $file: $!"; - - $config->{'nameservers'} = [ @ns ] if @ns; - $config->{'searchlist'} = [ @searchlist ] if @searchlist; - } - - - - -sub print { print $_[0]->string } - -sub string { - my $self = shift; - - my $timeout = defined $self->{'tcp_timeout'} ? $self->{'tcp_timeout'} : 'indefinite'; - my $hasINET6line= $has_inet6 ?" (IPv6 Transport is available)":" (IPv6 Transport is not available)"; - my $ignqrid=$self->{'ignqrid'} ? "\n;; ACCEPTING ALL PACKETS (IGNQRID)":""; - return <<END; -;; RESOLVER state: -;; domain = $self->{domain} -;; searchlist = @{$self->{searchlist}} -;; nameservers = @{$self->{nameservers}} -;; port = $self->{port} -;; srcport = $self->{srcport} -;; srcaddr = $self->{srcaddr} -;; tcp_timeout = $timeout -;; retrans = $self->{retrans} retry = $self->{retry} -;; usevc = $self->{usevc} stayopen = $self->{stayopen} igntc = $self->{igntc} -;; defnames = $self->{defnames} dnsrch = $self->{dnsrch} -;; recurse = $self->{recurse} debug = $self->{debug} -;; force_v4 = $self->{force_v4} $hasINET6line $ignqrid -END - -} - - -sub searchlist { - my $self = shift; - $self->{'searchlist'} = [ @_ ] if @_; - return @{$self->{'searchlist'}}; -} - -sub nameservers { - my $self = shift; - - if (@_) { - my @a; - foreach my $ns (@_) { - next unless defined($ns); - if ( _ip_is_ipv4($ns) ) { - push @a, ($ns eq '0') ? '0.0.0.0' : $ns; - - } elsif ( _ip_is_ipv6($ns) ) { - push @a, ($ns eq '0') ? '::0' : $ns; - - } else { - my $defres = Net::DNS::Resolver->new; - my @names; - - if ($ns !~ /\./) { - if (defined $defres->searchlist) { - @names = map { $ns . '.' . $_ } - $defres->searchlist; - } elsif (defined $defres->domain) { - @names = ($ns . '.' . $defres->domain); - } - } - else { - @names = ($ns); - } - - my $packet = $defres->search($ns); - $self->errorstring($defres->errorstring); - if (defined($packet)) { - push @a, cname_addr([@names], $packet); - } - } - } - - - $self->{'nameservers'} = [ @a ]; - } - my @returnval; - foreach my $ns (@{$self->{'nameservers'}}){ - next if _ip_is_ipv6($ns) && (! $has_inet6 || $self->force_v4() ); - push @returnval, $ns; - } - - return @returnval; -} - -sub nameserver { &nameservers } - -sub cname_addr { - my $names = shift; - my $packet = shift; - my @addr; - my @names = @{$names}; - - my $oct2 = '(?:2[0-4]\d|25[0-5]|[0-1]?\d\d|\d)'; - - RR: foreach my $rr ($packet->answer) { - next RR unless grep {$rr->name} @names; - - if ($rr->type eq 'CNAME') { - push(@names, $rr->cname); - } elsif ($rr->type eq 'A') { - # Run a basic taint check. - next RR unless $rr->address =~ m/^($oct2\.$oct2\.$oct2\.$oct2)$/o; - - push(@addr, $1) - } - } - - - return @addr; -} - - -# if ($self->{"udppacketsize"} > Net::DNS::PACKETSZ() -# then we use EDNS and $self->{"udppacketsize"} -# should be taken as the maximum packet_data length -sub _packetsz { - my ($self) = @_; - - return $self->{"udppacketsize"} > Net::DNS::PACKETSZ() ? - $self->{"udppacketsize"} : Net::DNS::PACKETSZ(); -} - -sub _reset_errorstring { - my ($self) = @_; - - $self->errorstring($self->defaults->{'errorstring'}); -} - - -sub search { - my $self = shift; - my $name = shift || '.'; - - my $defdomain = $self->{domain} if $self->{defnames}; - my @searchlist = @{$self->{searchlist}} if $self->{dnsrch}; - - # resolve name by trying as absolute name, then applying searchlist - my @list = (undef, @searchlist); - for ($name) { - # resolve name with no dots or colons by applying searchlist (or domain) - @list = @searchlist ? @searchlist : ($defdomain) unless m/[:.]/; - # resolve name with trailing dot as absolute name - @list = (undef) if m/\.$/; - } - - foreach my $suffix ( @list ) { - my $fqname = join '.', $name, ($suffix || ()); - - print ';; search(', join(', ', $fqname, @_), ")\n" if $self->{debug}; - - my $packet = $self->send($fqname, @_) || return undef; - - next unless ($packet->header->rcode eq "NOERROR"); # something - #useful happened - return $packet if $packet->header->ancount; # answer found - next unless $packet->header->qdcount; # question empty? - - last if ($packet->question)[0]->qtype eq 'PTR'; # abort search if IP - } - return undef; -} - - -sub query { - my $self = shift; - my $name = shift || '.'; - - # resolve name containing no dots or colons by appending domain - my @suffix = ($self->{domain} || ()) if $name !~ m/[:.]/ and $self->{defnames}; - - my $fqname = join '.', $name, @suffix; - - print ';; query(', join(', ', $fqname, @_), ")\n" if $self->{debug}; - - my $packet = $self->send($fqname, @_) || return undef; - - return $packet if $packet->header->ancount; # answer found - return undef; -} - - -sub send { - my $self = shift; - my $packet = $self->make_query_packet(@_); - my $packet_data = $packet->data; - - - my $ans; - - if ($self->{'usevc'} || length $packet_data > $self->_packetsz) { - - $ans = $self->send_tcp($packet, $packet_data); - - } else { - $ans = $self->send_udp($packet, $packet_data); - - if ($ans && $ans->header->tc && !$self->{'igntc'}) { - print ";;\n;; packet truncated: retrying using TCP\n" if $self->{'debug'}; - $ans = $self->send_tcp($packet, $packet_data); - } - } - - return $ans; -} - - - -sub send_tcp { - my ($self, $packet, $packet_data) = @_; - my $lastanswer; - - my $srcport = $self->{'srcport'}; - my $srcaddr = $self->{'srcaddr'}; - my $dstport = $self->{'port'}; - - unless ( $self->nameservers()) { - $self->errorstring('no nameservers'); - print ";; ERROR: send_tcp: no nameservers\n" if $self->{'debug'}; - return; - } - - $self->_reset_errorstring; - - - NAMESERVER: foreach my $ns ($self->nameservers()) { - - print ";; attempt to send_tcp($ns:$dstport) (src port = $srcport)\n" - if $self->{'debug'}; - - - - my $sock; - my $sock_key = "$ns:$dstport"; - my ($host,$port); - if ($self->persistent_tcp && $self->{'sockets'}[AF_UNSPEC]{$sock_key}) { - $sock = $self->{'sockets'}[AF_UNSPEC]{$sock_key}; - print ";; using persistent socket\n" - if $self->{'debug'}; - unless ($sock->connected){ - print ";; persistent socket disconnected (trying to reconnect)" - if $self->{'debug'}; - undef($sock); - $sock= $self->_create_tcp_socket($ns); - next NAMESERVER unless $sock; - $self->{'sockets'}[AF_UNSPEC]{$sock_key} = $sock; - } - - } else { - $sock= $self->_create_tcp_socket($ns); - next NAMESERVER unless $sock; - - $self->{'sockets'}[AF_UNSPEC]{$sock_key} = $sock if - $self->persistent_tcp; - } - - - my $lenmsg = pack('n', length($packet_data)); - print ';; sending ', length($packet_data), " bytes\n" - if $self->{'debug'}; - - # note that we send the length and packet data in a single call - # as this produces a single TCP packet rather than two. This - # is more efficient and also makes things much nicer for sniffers. - # (ethereal doesn't seem to reassemble DNS over TCP correctly) - - - unless ($sock->send( $lenmsg . $packet_data)) { - $self->errorstring($!); - print ";; ERROR: send_tcp: data send failed: $!\n" - if $self->{'debug'}; - next NAMESERVER; - } - - my $sel = IO::Select->new($sock); - my $timeout=$self->{'tcp_timeout'}; - if ($sel->can_read($timeout)) { - my $buf = read_tcp($sock, Net::DNS::INT16SZ(), $self->{'debug'}); - next NAMESERVER unless length($buf); # Failure to get anything - my ($len) = unpack('n', $buf); - next NAMESERVER unless $len; # Cannot determine size - - unless ($sel->can_read($timeout)) { - $self->errorstring('timeout'); - print ";; TIMEOUT\n" if $self->{'debug'}; - next; - } - - $buf = read_tcp($sock, $len, $self->{'debug'}); - - $self->answerfrom($sock->peerhost); - - print ';; received ', length($buf), " bytes\n" - if $self->{'debug'}; - - unless (length($buf) == $len) { - $self->errorstring("expected $len bytes, " . - 'received ' . length($buf)); - next; - } - - my ($ans, $err) = Net::DNS::Packet->new(\$buf, $self->{'debug'}); - if (defined $ans) { - $self->errorstring($ans->header->rcode); - $ans->answerfrom($self->answerfrom); - - if ($ans->header->rcode ne "NOERROR" && - $ans->header->rcode ne "NXDOMAIN"){ - # Remove this one from the stack - print "RCODE: ".$ans->header->rcode ."; trying next nameserver\n" if $self->{'debug'}; - $lastanswer=$ans; - next NAMESERVER ; - - } - - } - elsif (defined $err) { - $self->errorstring($err); - } - - return $ans; - } - else { - $self->errorstring('timeout'); - next; - } - } - - if ($lastanswer){ - $self->errorstring($lastanswer->header->rcode ); - return $lastanswer; - - } - - return; -} - - - -sub send_udp { - my ($self, $packet, $packet_data) = @_; - my $retrans = $self->{'retrans'}; - my $timeout = $retrans; - - my $lastanswer; - - my $stop_time = time + $self->{'udp_timeout'} if $self->{'udp_timeout'}; - - $self->_reset_errorstring; - - my @ns; - my $dstport = $self->{'port'}; - my $srcport = $self->{'srcport'}; - my $srcaddr = $self->{'srcaddr'}; - - my @sock; - - - if ($self->persistent_udp){ - if ($has_inet6){ - if ( defined ($self->{'sockets'}[AF_INET6()]{'UDP'})) { - $sock[AF_INET6()] = $self->{'sockets'}[AF_INET6()]{'UDP'}; - print ";; using persistent AF_INET6() family type socket\n" - if $self->{'debug'}; - } - } - if ( defined ($self->{'sockets'}[AF_INET]{'UDP'})) { - $sock[AF_INET] = $self->{'sockets'}[AF_INET]{'UDP'}; - print ";; using persistent AF_INET() family type socket\n" - if $self->{'debug'}; - } - } - - if ($has_inet6 && ! $self->force_v4() && !defined( $sock[AF_INET6()] )){ - - - # '::' Otherwise the INET6 socket will fail. - - my $srcaddr6 = $srcaddr eq '0.0.0.0' ? '::' : $srcaddr; - - print ";; Trying to set up a AF_INET6() family type UDP socket with srcaddr: $srcaddr ... " - if $self->{'debug'}; - - - # IO::Socket carps on errors if Perl's -w flag is turned on. - # Uncomment the next two lines and the line following the "new" - # call to turn off these messages. - - #my $old_wflag = $^W; - #$^W = 0; - - $sock[AF_INET6()] = IO::Socket::INET6->new( - LocalAddr => $srcaddr6, - LocalPort => ($srcport || undef), - Proto => 'udp', - ); - - - - - print (defined($sock[AF_INET6()])?"done\n":"failed\n") if $has_inet6 && $self->debug(); - - } - - # Always set up an AF_INET socket. - # It will be used if the address familly of for the endpoint is V4. - - if (!defined( $sock[AF_INET])) - - { - print ";; setting up an AF_INET() family type UDP socket\n" - if $self->{'debug'}; - - #my $old_wflag = $^W; - #$^W = 0; - - $sock[AF_INET] = IO::Socket::INET->new( - LocalAddr => $srcaddr, - LocalPort => ($srcport || undef), - Proto => 'udp', - ) ; - - #$^W = $old_wflag; - } - - - - unless (defined $sock[AF_INET] || ($has_inet6 && defined $sock[AF_INET6()])) { - - $self->errorstring("could not get socket"); #' - return; - } - - $self->{'sockets'}[AF_INET]{'UDP'} = $sock[AF_INET] if ($self->persistent_udp) && defined( $sock[AF_INET] ); - $self->{'sockets'}[AF_INET6()]{'UDP'} = $sock[AF_INET6()] if $has_inet6 && ($self->persistent_udp) && defined( $sock[AF_INET6()]) && ! $self->force_v4(); - - # Constructing an array of arrays that contain 3 elements: The - # nameserver IP address, its sockaddr and the sockfamily for - # which the sockaddr structure is constructed. - - my $nmbrnsfailed=0; - NSADDRESS: foreach my $ns_address ($self->nameservers()){ - # The logic below determines the $dst_sockaddr. - # If getaddrinfo is available that is used for both INET4 and INET6 - # If getaddrinfo is not avialable (Socket6 failed to load) we revert - # to the 'classic mechanism - if ($has_inet6 && ! $self->force_v4() ){ - # we can use getaddrinfo - no strict 'subs'; # Because of the eval statement in the BEGIN - # AI_NUMERICHOST is not available at compile time. - # The AI_NUMERICHOST surpresses lookups. - - my $old_wflag = $^W; #circumvent perl -w warnings about 'udp' - $^W = 0; - - - - my @res = getaddrinfo($ns_address, $dstport, AF_UNSPEC, SOCK_DGRAM, - 0, AI_NUMERICHOST); - - $^W=$old_wflag ; - - - use strict 'subs'; - - my ($sockfamily, $socktype_tmp, - $proto_tmp, $dst_sockaddr, $canonname_tmp) = @res; - - if (scalar(@res) < 5) { - die ("can't resolve \"$ns_address\" to address"); - } - - push @ns,[$ns_address,$dst_sockaddr,$sockfamily]; - - }else{ - next NSADDRESS unless( _ip_is_ipv4($ns_address)); - my $dst_sockaddr = sockaddr_in($dstport, inet_aton($ns_address)); - push @ns, [$ns_address,$dst_sockaddr,AF_INET]; - } - - } - - unless (@ns) { - print "No nameservers" if $self->debug(); - $self->errorstring('no nameservers'); - return; - } - - my $sel = IO::Select->new() ; - # We allready tested that one of the two socket exists - - $sel->add($sock[AF_INET]) if defined ($sock[AF_INET]); - $sel->add($sock[AF_INET6()]) if $has_inet6 && defined ($sock[AF_INET6()]) && ! $self->force_v4(); - - - # Perform each round of retries. - for (my $i = 0; - $i < $self->{'retry'}; - ++$i, $retrans *= 2, $timeout = int($retrans / (@ns || 1))) { - - $timeout = 1 if ($timeout < 1); - - # Try each nameserver. - NAMESERVER: foreach my $ns (@ns) { - next if defined $ns->[3]; - if ($stop_time) { - my $now = time; - if ($stop_time < $now) { - $self->errorstring('query timed out'); - return; - } - if ($timeout > 1 && $timeout > ($stop_time-$now)) { - $timeout = $stop_time-$now; - } - } - my $nsname = $ns->[0]; - my $nsaddr = $ns->[1]; - my $nssockfamily = $ns->[2]; - - # If we do not have a socket for the transport - # we are supposed to reach the namserver on we - # should skip it. - unless (defined ($sock[ $nssockfamily ])){ - print "Send error: cannot reach $nsname (". - - ( ($has_inet6 && $nssockfamily == AF_INET6()) ? "IPv6" : "" ). - ( ($nssockfamily == AF_INET) ? "IPv4" : "" ). - ") not available" - if $self->debug(); - - - $self->errorstring("Send error: cannot reach $nsname (" . - ( ($has_inet6 && $nssockfamily == AF_INET6()) ? "IPv6" : "" ). - ( ($nssockfamily == AF_INET) ? "IPv4" : "" ). - ") not available" - -); - next NAMESERVER ; - } - - print ";; send_udp($nsname:$dstport)\n" - if $self->{'debug'}; - - unless ($sock[$nssockfamily]->send($packet_data, 0, $nsaddr)) { - print ";; send error: $!\n" if $self->{'debug'}; - $self->errorstring("Send error: $!"); - $nmbrnsfailed++; - $ns->[3]="Send error".$self->errorstring(); - next; - } - - # See ticket 11931 but this works not quite yet - my $oldpacket_timeout=time+$timeout; - until ( $oldpacket_timeout && ($oldpacket_timeout < time())) { - my @ready = $sel->can_read($timeout); - SELECTOR: foreach my $ready (@ready) { - my $buf = ''; - - if ($ready->recv($buf, $self->_packetsz)) { - - $self->answerfrom($ready->peerhost); - - print ';; answer from ', - $ready->peerhost, ':', - $ready->peerport, ' : ', - length($buf), " bytes\n" - if $self->{'debug'}; - - my ($ans, $err) = Net::DNS::Packet->new(\$buf, $self->{'debug'}); - - if (defined $ans) { - next SELECTOR unless ( $ans->header->qr || $self->{'ignqrid'}); - next SELECTOR unless ( ($ans->header->id == $packet->header->id) || $self->{'ignqrid'} ); - $self->errorstring($ans->header->rcode); - $ans->answerfrom($self->answerfrom); - if ($ans->header->rcode ne "NOERROR" && - $ans->header->rcode ne "NXDOMAIN"){ - # Remove this one from the stack - - print "RCODE: ".$ans->header->rcode ."; trying next nameserver\n" if $self->{'debug'}; - $nmbrnsfailed++; - $ns->[3]="RCODE: ".$ans->header->rcode(); - $lastanswer=$ans; - next NAMESERVER ; - - } - } elsif (defined $err) { - $self->errorstring($err); - } - return $ans; - } else { - $self->errorstring($!); - print ';; recv ERROR(', - $ready->peerhost, ':', - $ready->peerport, '): ', - $self->errorstring, "\n" - if $self->{'debug'}; - $ns->[3]="Recv error ".$self->errorstring(); - $nmbrnsfailed++; - # We want to remain in the SELECTOR LOOP... - # unless there are no more nameservers - return unless ($nmbrnsfailed < @ns); - print ';; Number of failed nameservers: $nmbrnsfailed out of '.scalar @ns."\n" if $self->{'debug'}; - - } - } #SELECTOR LOOP - } # until stop_time loop - } #NAMESERVER LOOP - - } - - if ($lastanswer){ - $self->errorstring($lastanswer->header->rcode ); - return $lastanswer; - - } - if ($sel->handles) { - # If there are valid hanndles than we have either a timeout or - # a send error. - $self->errorstring('query timed out') unless ($self->errorstring =~ /Send error:/); - } - else { - if ($nmbrnsfailed < @ns){ - $self->errorstring('Unexpected Error') ; - }else{ - $self->errorstring('all nameservers failed'); - } - } - return; -} - - -sub bgsend { - my $self = shift; - - unless ($self->nameservers()) { - $self->errorstring('no nameservers'); - return; - } - - $self->_reset_errorstring; - - my $packet = $self->make_query_packet(@_); - my $packet_data = $packet->data; - - my $srcaddr = $self->{'srcaddr'}; - my $srcport = $self->{'srcport'}; - - - my (@res, $sockfamily, $dst_sockaddr); - my $ns_address = ($self->nameservers())[0]; - my $dstport = $self->{'port'}; - - - # The logic below determines ther $dst_sockaddr. - # If getaddrinfo is available that is used for both INET4 and INET6 - # If getaddrinfo is not avialable (Socket6 failed to load) we revert - # to the 'classic mechanism - if ($has_inet6 && ! $self->force_v4()){ - - my ( $socktype_tmp, $proto_tmp, $canonname_tmp); - - no strict 'subs'; # Because of the eval statement in the BEGIN - # AI_NUMERICHOST is not available at compile time. - - # The AI_NUMERICHOST surpresses lookups. - my @res = getaddrinfo($ns_address, $dstport, AF_UNSPEC, SOCK_DGRAM, - 0 , AI_NUMERICHOST); - - use strict 'subs'; - - ($sockfamily, $socktype_tmp, - $proto_tmp, $dst_sockaddr, $canonname_tmp) = @res; - - if (scalar(@res) < 5) { - die ("can't resolve \"$ns_address\" to address (it could have been an IP address)"); - } - - }else{ - $sockfamily=AF_INET; - - if (! _ip_is_ipv4($ns_address)){ - $self->errorstring("bgsend(ipv4 only):$ns_address does not seem to be a valid IPv4 address"); - return; - } - - $dst_sockaddr = sockaddr_in($dstport, inet_aton($ns_address)); - } - my @socket; - - if ($sockfamily == AF_INET) { - $socket[$sockfamily] = IO::Socket::INET->new( - Proto => 'udp', - Type => SOCK_DGRAM, - LocalAddr => $srcaddr, - LocalPort => ($srcport || undef), - ); - } elsif ($has_inet6 && $sockfamily == AF_INET6() ) { - # Otherwise the INET6 socket will just fail - my $srcaddr6 = $srcaddr eq "0.0.0.0" ? '::' : $srcaddr; - $socket[$sockfamily] = IO::Socket::INET6->new( - Proto => 'udp', - Type => SOCK_DGRAM, - LocalAddr => $srcaddr6, - LocalPort => ($srcport || undef), - ); - } else { - die ref($self)." bgsend:Unsoported Socket Family: $sockfamily"; - } - - unless (scalar(@socket)) { - $self->errorstring("could not get socket"); #' - return; - } - - print ";; bgsend($ns_address : $dstport)\n" if $self->{'debug'} ; - - foreach my $socket (@socket){ - next if !defined $socket; - - unless ($socket->send($packet_data,0,$dst_sockaddr)){ - my $err = $!; - print ";; send ERROR($ns_address): $err\n" if $self->{'debug'}; - - $self->errorstring("Send: ".$err); - return; - } - return $socket; - } - $self->errorstring("Could not find a socket to send on"); - return; - -} - -sub bgread { - my ($self, $sock) = @_; - - my $buf = ''; - - my $peeraddr = $sock->recv($buf, $self->_packetsz); - - if ($peeraddr) { - print ';; answer from ', $sock->peerhost, ':', - $sock->peerport, ' : ', length($buf), " bytes\n" - if $self->{'debug'}; - - my ($ans, $err) = Net::DNS::Packet->new(\$buf, $self->{'debug'}); - - if (defined $ans) { - $self->errorstring($ans->header->rcode); - $ans->answerfrom($sock->peerhost); - } elsif (defined $err) { - $self->errorstring($err); - } - - return $ans; - } else { - $self->errorstring($!); - return; - } -} - -sub bgisready { - my $self = shift; - my $sel = IO::Select->new(@_); - my @ready = $sel->can_read(0.0); - return @ready > 0; -} - -sub make_query_packet { - my $self = shift; - my $packet; - - if (ref($_[0]) and $_[0]->isa('Net::DNS::Packet')) { - $packet = shift; - } else { - $packet = Net::DNS::Packet->new(@_); - } - - if ($packet->header->opcode eq 'QUERY') { - $packet->header->rd($self->{'recurse'}); - } - - if ($self->{'dnssec'}) { - # RFC 3225 - print ";; Adding EDNS extention with UDP packetsize $self->{'udppacketsize'} and DNS OK bit set\n" - if $self->{'debug'}; - - my $optrr = Net::DNS::RR->new( - Type => 'OPT', - Name => '', - Class => $self->{'udppacketsize'}, # Decimal UDPpayload - ednsflags => 0x8000, # first bit set see RFC 3225 - ); - - - $packet->push('additional', $optrr) unless defined $packet->{'optadded'} ; - $packet->{'optadded'}=1; - } elsif ($self->{'udppacketsize'} > Net::DNS::PACKETSZ()) { - print ";; Adding EDNS extention with UDP packetsize $self->{'udppacketsize'}.\n" if $self->{'debug'}; - # RFC 3225 - my $optrr = Net::DNS::RR->new( - Type => 'OPT', - Name => '', - Class => $self->{'udppacketsize'}, # Decimal UDPpayload - TTL => 0x0000 # RCODE 32bit Hex - ); - - $packet->push('additional', $optrr) unless defined $packet->{'optadded'} ; - $packet->{'optadded'}=1; - } - - - if ($self->{'tsig_rr'}) { - if (!grep { $_->type eq 'TSIG' } $packet->additional) { - $packet->push('additional', $self->{'tsig_rr'}); - } - } - - return $packet; -} - -sub axfr { - my $self = shift; - my @zone; - - if ($self->axfr_start(@_)) { - my ($rr, $err); - while (($rr, $err) = $self->axfr_next, $rr && !$err) { - push @zone, $rr; - } - @zone = () if $err; - } - - return @zone; -} - -sub axfr_old { - croak "Use of Net::DNS::Resolver::axfr_old() is deprecated, use axfr() or axfr_start()."; -} - - -sub axfr_start { - my $self = shift; - my ($dname, $class) = @_; - $dname ||= $self->{'searchlist'}->[0]; - $class ||= 'IN'; - my $timeout = $self->{'tcp_timeout'}; - - unless ($dname) { - print ";; ERROR: axfr: no zone specified\n" if $self->{'debug'}; - $self->errorstring('no zone'); - return; - } - - - print ";; axfr_start($dname, $class)\n" if $self->{'debug'}; - - unless ($self->nameservers()) { - $self->errorstring('no nameservers'); - print ";; ERROR: no nameservers\n" if $self->{'debug'}; - return; - } - - my $packet = $self->make_query_packet($dname, 'AXFR', $class); - my $packet_data = $packet->data; - - my $ns = ($self->nameservers())[0]; - - - my $srcport = $self->{'srcport'}; - my $srcaddr = $self->{'srcaddr'}; - my $dstport = $self->{'port'}; - - print ";; axfr_start nameserver = $ns\n" if $self->{'debug'}; - print ";; axfr_start srcport: $srcport, srcaddr: $srcaddr, dstport: $dstport\n" if $self->{'debug'}; - - - my $sock; - my $sock_key = "$ns:$self->{'port'}"; - - - if ($self->persistent_tcp && $self->{'axfr_sockets'}[AF_UNSPEC]{$sock_key}) { - $sock = $self->{'axfr_sockets'}[AF_UNSPEC]{$sock_key}; - print ";; using persistent socket\n" - if $self->{'debug'}; - } else { - $sock=$self->_create_tcp_socket($ns); - - return unless ($sock); # all error messages - # are set by _create_tcp_socket - - - $self->{'axfr_sockets'}[AF_UNSPEC]{$sock_key} = $sock if - $self->persistent_tcp; - } - - my $lenmsg = pack('n', length($packet_data)); - - unless ($sock->send($lenmsg)) { - $self->errorstring($!); - return; - } - - unless ($sock->send($packet_data)) { - $self->errorstring($!); - return; - } - - my $sel = IO::Select->new($sock); - - $self->{'axfr_sel'} = $sel; - $self->{'axfr_rr'} = []; - $self->{'axfr_soa_count'} = 0; - - return $sock; -} - - -sub axfr_next { - my $self = shift; - my $err = ''; - - unless (@{$self->{'axfr_rr'}}) { - unless ($self->{'axfr_sel'}) { - my $err = 'no zone transfer in progress'; - - print ";; $err\n" if $self->{'debug'}; - $self->errorstring($err); - - return wantarray ? (undef, $err) : undef; - } - - my $sel = $self->{'axfr_sel'}; - my $timeout = $self->{'tcp_timeout'}; - - #-------------------------------------------------------------- - # Read the length of the response packet. - #-------------------------------------------------------------- - - my @ready = $sel->can_read($timeout); - unless (@ready) { - $err = 'timeout'; - $self->errorstring($err); - return wantarray ? (undef, $err) : undef; - } - - my $buf = read_tcp($ready[0], Net::DNS::INT16SZ(), $self->{'debug'}); - unless (length $buf) { - $err = 'truncated zone transfer'; - $self->errorstring($err); - return wantarray ? (undef, $err) : undef; - } - - my ($len) = unpack('n', $buf); - unless ($len) { - $err = 'truncated zone transfer'; - $self->errorstring($err); - return wantarray ? (undef, $err) : undef; - } - - #-------------------------------------------------------------- - # Read the response packet. - #-------------------------------------------------------------- - - @ready = $sel->can_read($timeout); - unless (@ready) { - $err = 'timeout'; - $self->errorstring($err); - return wantarray ? (undef, $err) : undef; - } - - $buf = read_tcp($ready[0], $len, $self->{'debug'}); - - print ';; received ', length($buf), " bytes\n" - if $self->{'debug'}; - - unless (length($buf) == $len) { - $err = "expected $len bytes, received " . length($buf); - $self->errorstring($err); - print ";; $err\n" if $self->{'debug'}; - return wantarray ? (undef, $err) : undef; - } - - my $ans; - ($ans, $err) = Net::DNS::Packet->new(\$buf, $self->{'debug'}); - - if ($ans) { - if ($ans->header->rcode ne 'NOERROR') { - $self->errorstring('Response code from server: ' . $ans->header->rcode); - print ';; Response code from server: ' . $ans->header->rcode . "\n" if $self->{'debug'}; - return wantarray ? (undef, $err) : undef; - } - if ($ans->header->ancount < 1) { - $err = 'truncated zone transfer'; - $self->errorstring($err); - print ";; $err\n" if $self->{'debug'}; - return wantarray ? (undef, $err) : undef; - } - } - else { - $err ||= 'unknown error during packet parsing'; - $self->errorstring($err); - print ";; $err\n" if $self->{'debug'}; - return wantarray ? (undef, $err) : undef; - } - - foreach my $rr ($ans->answer) { - if ($rr->type eq 'SOA') { - if (++$self->{'axfr_soa_count'} < 2) { - push @{$self->{'axfr_rr'}}, $rr; - } - } - else { - push @{$self->{'axfr_rr'}}, $rr; - } - } - - if ($self->{'axfr_soa_count'} >= 2) { - $self->{'axfr_sel'} = undef; - # we need to mark the transfer as over if the responce was in - # many answers. Otherwise, the user will call axfr_next again - # and that will cause a 'no transfer in progress' error. - push(@{$self->{'axfr_rr'}}, undef); - } - } - - my $rr = shift @{$self->{'axfr_rr'}}; - - return wantarray ? ($rr, undef) : $rr; -} - - - - -sub dnssec { - my ($self, $new_val) = @_; - if (defined $new_val) { - $self->{"dnssec"} = $new_val; - # Setting the udppacket size to some higher default - $self->udppacketsize(2048) if $new_val; - } - - Carp::carp ("You called the Net::DNS::Resolver::dnssec() method but do not have Net::DNS::SEC installed") if $self->{"dnssec"} && ! $Net::DNS::DNSSEC; - return $self->{"dnssec"}; -}; - - - -sub tsig { - my $self = shift; - - if (@_ == 1) { - if ($_[0] && ref($_[0])) { - $self->{'tsig_rr'} = $_[0]; - } - else { - $self->{'tsig_rr'} = undef; - } - } - elsif (@_ == 2) { - my ($key_name, $key) = @_; - $self->{'tsig_rr'} = Net::DNS::RR->new("$key_name TSIG $key"); - } - - return $self->{'tsig_rr'}; -} - -# -# Usage: $data = read_tcp($socket, $nbytes, $debug); -# -sub read_tcp { - my ($sock, $nbytes, $debug) = @_; - my $buf = ''; - - while (length($buf) < $nbytes) { - my $nread = $nbytes - length($buf); - my $read_buf = ''; - - print ";; read_tcp: expecting $nread bytes\n" if $debug; - - # During some of my tests recv() returned undef even - # though there wasn't an error. Checking for the amount - # of data read appears to work around that problem. - - unless ($sock->recv($read_buf, $nread)) { - if (length($read_buf) < 1) { - my $errstr = $!; - - print ";; ERROR: read_tcp: recv failed: $!\n" - if $debug; - - if ($errstr eq 'Resource temporarily unavailable') { - warn "ERROR: read_tcp: recv failed: $errstr\n"; - warn "ERROR: try setting \$res->timeout(undef)\n"; - } - - last; - } - } - - print ';; read_tcp: received ', length($read_buf), " bytes\n" - if $debug; - - last unless length($read_buf); - $buf .= $read_buf; - } - - return $buf; -} - - - -sub _create_tcp_socket { - my $self=shift; - my $ns=shift; - my $sock; - - my $srcport = $self->{'srcport'}; - my $srcaddr = $self->{'srcaddr'}; - my $dstport = $self->{'port'}; - - my $timeout = $self->{'tcp_timeout'}; - # IO::Socket carps on errors if Perl's -w flag is - # turned on. Uncomment the next two lines and the - # line following the "new" call to turn off these - # messages. - - #my $old_wflag = $^W; - #$^W = 0; - - if ($has_inet6 && ! $self->force_v4() && _ip_is_ipv6($ns) ){ - # XXX IO::Socket::INET6 fails in a cryptic way upon send() - # on AIX5L if "0" is passed in as LocalAddr - # $srcaddr="0" if $srcaddr eq "0.0.0.0"; # Otherwise the INET6 socket will just fail - - my $srcaddr6 = $srcaddr eq '0.0.0.0' ? '::' : $srcaddr; - - $sock = - IO::Socket::INET6->new( - PeerPort => $dstport, - PeerAddr => $ns, - LocalAddr => $srcaddr6, - LocalPort => ($srcport || undef), - Proto => 'tcp', - Timeout => $timeout, - ); - - unless($sock){ - $self->errorstring('connection failed(IPv6 socket failure)'); - print ";; ERROR: send_tcp: IPv6 connection to $ns". - "failed: $!\n" if $self->{'debug'}; - return(); - } - } - - # At this point we have sucessfully obtained an - # INET6 socket to an IPv6 nameserver, or we are - # running forced v4, or we do not have v6 at all. - # Try v4. - - unless($sock){ - if (_ip_is_ipv6($ns)){ - $self->errorstring( - 'connection failed (trying IPv6 nameserver without having IPv6)'); - print - ';; ERROR: send_tcp: You are trying to connect to '. - $ns . " but you do not have IPv6 available\n" - if $self->{'debug'}; - return(); - } - - - $sock = IO::Socket::INET->new( - PeerAddr => $ns, - PeerPort => $dstport, - LocalAddr => $srcaddr, - LocalPort => ($srcport || undef), - Proto => 'tcp', - Timeout => $timeout - ) - } - - #$^W = $old_wflag; - - unless ($sock) { - $self->errorstring('connection failed'); - print ';; ERROR: send_tcp: connection ', - "failed: $!\n" if $self->{'debug'}; - return(); - } - - return $sock; -} - - -# Lightweight versions of subroutines from Net::IP module, recoded to fix rt#28198 - -sub _ip_is_ipv4 { - my @field = split /\./, shift; - - return 0 if @field > 4; # too many fields - return 0 if @field == 0; # no fields at all - - foreach ( @field ) { - return 0 unless /./; # reject if empty - return 0 if /[^0-9]/; # reject non-digit - return 0 if $_ > 255; # reject bad value - } - - - return 1; -} - - -sub _ip_is_ipv6 { - - for ( shift ) { - my @field = split /:/; # split into fields - return 0 if (@field < 3) or (@field > 8); - - return 0 if /::.*::/; # reject multiple :: - - if ( /\./ ) { # IPv6:IPv4 - return 0 unless _ip_is_ipv4(pop @field); - } - - foreach ( @field ) { - next unless /./; # skip :: - return 0 if /[^0-9a-f]/i; # reject non-hexdigit - return 0 if length $_ > 4; # reject bad value - } - } - return 1; -} - - - -sub AUTOLOAD { - my ($self) = @_; - - my $name = $AUTOLOAD; - $name =~ s/.*://; - - Carp::croak "$name: no such method" unless exists $self->{$name}; - - no strict q/refs/; - - - *{$AUTOLOAD} = sub { - my ($self, $new_val) = @_; - - if (defined $new_val) { - $self->{"$name"} = $new_val; - } - - return $self->{"$name"}; - }; - - - goto &{$AUTOLOAD}; -} - -1; - -__END__ - -=head1 NAME - -Net::DNS::Resolver::Base - Common Resolver Class - -=head1 SYNOPSIS - - use base qw/Net::DNS::Resolver::Base/; - -=head1 DESCRIPTION - -This class is the common base class for the different platform -sub-classes of L<Net::DNS::Resolver|Net::DNS::Resolver>. - -No user serviceable parts inside, see L<Net::DNS::Resolver|Net::DNS::Resolver> -for all your resolving needs. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. -Portions Copyright (c) 2005 Olaf Kolkman <olaf@net-dns.org> -Portions Copyright (c) 2006 Dick Franks. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver> - -=cut - - diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Resolver/Cygwin.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Resolver/Cygwin.pm deleted file mode 100644 index bae2d311d0c..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Resolver/Cygwin.pm +++ /dev/null @@ -1,180 +0,0 @@ -package Net::DNS::Resolver::Cygwin; -# -# $Id: Cygwin.pm 696 2007-12-28 13:46:20Z olaf $ -# - -use strict; -use vars qw(@ISA $VERSION); - -use Net::DNS::Resolver::Base (); - -@ISA = qw(Net::DNS::Resolver::Base); -$VERSION = (qw$LastChangedRevision: 696 $)[1]; - -sub getregkey { - my $key = $_[0] . $_[1]; - my $value = ''; - - local *LM; - - if (open(LM, "<$key")) { - $value = <LM>; - $value =~ s/\0+$//; - close(LM); - } - - return $value; -} - -sub init { - my ($class) = @_; - my $defaults = $class->defaults; - - local *LM; - - my $root = '/proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/'; - - unless (-d $root) { - # Doesn't exist, maybe we are on 95/98/Me? - $root = '/proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/VxD/MSTCP/'; - -d $root || Carp::croak "can't read registry: $!"; - } - - # Best effort to find a useful domain name for the current host - # if domain ends up blank, we're probably (?) not connected anywhere - # a DNS server is interesting either... - my $domain = getregkey($root, 'Domain') || getregkey($root, 'DhcpDomain') || ''; - - # If nothing else, the searchlist should probably contain our own domain - # also see below for domain name devolution if so configured - # (also remove any duplicates later) - my $searchlist = "$domain "; - $searchlist .= getregkey($root, 'SearchList'); - - # This is (probably) adequate on NT4 - my $nt4nameservers = getregkey($root, 'NameServer') || getregkey($root, 'DhcpNameServer'); - my $nameservers = ""; - # - # but on W2K/XP the registry layout is more advanced due to dynamically - # appearing connections. So we attempt to handle them, too... - # opt to silently fail if something isn't ok (maybe we're on NT4) - # If this doesn't fail override any NT4 style result we found, as it - # may be there but is not valid. - # drop any duplicates later - my $dnsadapters = $root . "DNSRegisteredAdapters/"; - if (opendir(LM, $dnsadapters)) { - my @adapters = grep($_ ne "." && $_ ne "..", readdir(LM)); - closedir(LM); - foreach my $adapter (@adapters) { - my $regadapter = $dnsadapters . $adapter . '/'; - if (-e $regadapter) { - my $ns = getregkey($regadapter, 'DNSServerAddresses') || ''; - while (length($ns) >= 4) { - my $addr = join('.', unpack("C4", substr($ns,0,4,""))); - $nameservers .= " $addr"; - } - } - } - } - - my $interfaces = $root . "Interfaces/"; - if (opendir(LM, $interfaces)) { - my @ifacelist = grep($_ ne "." && $_ ne "..", readdir(LM)); - closedir(LM); - foreach my $iface (@ifacelist) { - my $regiface = $interfaces . $iface . '/'; - if (opendir(LM, $regiface)) { - closedir(LM); - - my $ns; - my $ip; - $ip = getregkey($regiface, "DhcpIPAddress") || getregkey($regiface, "IPAddress"); - $ns = getregkey($regiface, "NameServer") || - getregkey($regiface, "DhcpNameServer") || '' unless !$ip || ($ip =~ /0\.0\.0\.0/); - - $nameservers .= " $ns" if $ns; - } - } - } - - if (!$nameservers) { - $nameservers = $nt4nameservers; - } - - if ($domain) { - $defaults->{'domain'} = $domain; - } - - my $usedevolution = getregkey($root, 'UseDomainNameDevolution'); - if ($searchlist) { - # fix devolution if configured, and simultaneously make sure no dups (but keep the order) - my @a; - my %h; - foreach my $entry (split(m/[\s,]+/, $searchlist)) { - push(@a, $entry) unless $h{$entry}; - $h{$entry} = 1; - if ($usedevolution) { - # as long there's more than two pieces, cut - while ($entry =~ m#\..+\.#) { - $entry =~ s#^[^\.]+\.(.+)$#$1#; - push(@a, $entry) unless $h{$entry}; - $h{$entry} = 1; - } - } - } - $defaults->{'searchlist'} = \@a; - } - - if ($nameservers) { - # just in case dups were introduced... - my @a; - my %h; - foreach my $ns (split(m/[\s,]+/, $nameservers)) { - push @a, $ns unless (!$ns || $h{$ns}); - $h{$ns} = 1; - } - $defaults->{'nameservers'} = [map { m/(.*)/ } @a]; - } - - $class->read_env; - - if (!$defaults->{'domain'} && @{$defaults->{'searchlist'}}) { - $defaults->{'domain'} = $defaults->{'searchlist'}[0]; - } elsif (!@{$defaults->{'searchlist'}} && $defaults->{'domain'}) { - $defaults->{'searchlist'} = [ $defaults->{'domain'} ]; - } -} - -1; -__END__ - - -=head1 NAME - -Net::DNS::Resolver::Cygwin - Cygwin Resolver Class - -=head1 SYNOPSIS - - use Net::DNS::Resolver; - -=head1 DESCRIPTION - -This class implements the cygwin specific portions of C<Net::DNS::Resolver>. - -No user serviceable parts inside, see L<Net::DNS::Resolver|Net::DNS::Resolver> -for all your resolving needs. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver> - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Resolver/Recurse.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Resolver/Recurse.pm deleted file mode 100644 index 24e834b9c0a..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Resolver/Recurse.pm +++ /dev/null @@ -1,485 +0,0 @@ -package Net::DNS::Resolver::Recurse; -# -# $Id: Recurse.pm 591 2006-05-22 21:32:38Z olaf $ -# -use strict; -use Net::DNS::Resolver; - -use vars qw($VERSION @ISA); - -$VERSION = (qw$LastChangedRevision: 591 $)[1]; -@ISA = qw(Net::DNS::Resolver); - -sub hints { - my $self = shift; - my @hints = @_; - print ";; hints(@hints)\n" if $self->{'debug'}; - if (!@hints && $self->nameservers) { - $self->hints($self->nameservers); - } else { - $self->nameservers(@hints); - } - - print ";; verifying (root) zone...\n" if $self->{'debug'}; - # bind always asks one of the hint servers - # for who it thinks is authoritative for - # the (root) zone as a sanity check. - # Nice idea. - - $self->recurse(1); - my $packet=$self->query(".", "NS", "IN"); - $self->recurse(0); - my %hints = (); - if ($packet) { - if (my @ans = $packet->answer) { - foreach my $rr (@ans) { - if ($rr->name =~ /^\.?$/ and - $rr->type eq "NS") { - # Found root authority - my $server = lc $rr->rdatastr; - $server =~ s/\.$//; - print ";; FOUND HINT: $server\n" if $self->{'debug'}; - $hints{$server} = []; - } - } - foreach my $rr ($packet->additional) { - print ";; ADDITIONAL: ",$rr->string,"\n" if $self->{'debug'}; - if (my $server = lc $rr->name){ - if ( $rr->type eq "A") { - #print ";; ADDITIONAL HELP: $server -> [".$rr->rdatastr."]\n" if $self->{'debug'}; - if ($hints{$server}) { - print ";; STORING IP: $server IN A ",$rr->rdatastr,"\n" if $self->{'debug'}; - push @{ $hints{$server} }, $rr->rdatastr; - } - } - if ( $rr->type eq "AAAA") { - #print ";; ADDITIONAL HELP: $server -> [".$rr->rdatastr."]\n" if $self->{'debug'}; - if ($hints{$server}) { - print ";; STORING IP6: $server IN AAAA ",$rr->rdatastr,"\n" if $self->{'debug'}; - push @{ $hints{$server} }, $rr->rdatastr; - } - } - - } - } - } - foreach my $server (keys %hints) { - if (!@{ $hints{$server} }) { - # Wipe the servers without lookups - delete $hints{$server}; - } - } - $self->{'hints'} = \%hints; - } else { - $self->{'hints'} = {}; - } - if (%{ $self->{'hints'} }) { - if ($self->{'debug'}) { - print ";; USING THE FOLLOWING HINT IPS:\n"; - foreach my $ips (values %{ $self->{'hints'} }) { - foreach my $server (@{ $ips }) { - print ";; $server\n"; - } - } - } - } else { - warn "Server [".($self->nameservers)[0]."] did not give answers"; - } - - # Disable recursion flag. - - - return $self->nameservers( map { @{ $_ } } values %{ $self->{'hints'} } ); -} - - -sub recursion_callback { - my ($self, $sub) = @_; - - if ($sub && UNIVERSAL::isa($sub, 'CODE')) { - $self->{'callback'} = $sub; - } - - return $self->{'callback'}; -} - - -# $res->query_dorecursion( args ); -# Takes same args as Net::DNS::Resolver->query -# Purpose: Do that "hot pototo dance" on args. -sub query_dorecursion { - my $self = shift; - my @query = @_; - - # Make sure the hint servers are initialized. - $self->hints unless $self->{'hints'}; - $self->recurse(0); - # Make sure the authority cache is clean. - # It is only used to store A and AAAA records of - # the suposedly authoritative name servers. - $self->{'authority_cache'} = {}; - - # Obtain real question Net::DNS::Packet - my $query_packet = $self->make_query_packet(@query); - - # Seed name servers with hints - return $self->_dorecursion( $query_packet, ".", $self->{'hints'}, 0); -} - -sub _dorecursion { - my $self = shift; - my $query_packet = shift; - my $known_zone = shift; - my $known_authorities = shift; - my $depth = shift; - my $cache = $self->{'authority_cache'}; - - # die "Recursion too deep, aborting..." if $depth > 255; - if ( $depth > 255 ) { - print ";; _dorecursion() Recursion too deep, aborting...\n" if - $self->{'debug'}; - $self->errorstring="Recursion to deep, abborted"; - return undef; - } - - $known_zone =~ s/\.*$/./; - - # Get IPs from authorities - my @ns = (); - foreach my $ns (keys %{ $known_authorities }) { - if (scalar @{ $known_authorities->{$ns} }) { - $cache->{$ns} = $known_authorities->{$ns}; - push (@ns, @{ $cache->{$ns} }); - } elsif ($cache->{$ns}) { - $known_authorities->{$ns} = $cache->{$ns}; - push (@ns, @{ $cache->{$ns} }); - } - } - - if (!@ns) { - my $found_auth = 0; - if ($self->{'debug'}) { - require Data::Dumper; - print ";; _dorecursion() Failed to extract nameserver IPs:\n"; - print Data::Dumper::Dumper([$known_authorities,$cache]); - } - foreach my $ns (keys %{ $known_authorities }) { - if (!@{ $known_authorities->{$ns} }) { - print ";; _dorecursion() Manual lookup for authority [$ns]\n" if $self->{'debug'}; - - my $auth_packet; - my @ans; - - # Don't query for V6 if its not there. - if ($Net::DNS::Resolver::Base::has_inet6 && ! $self->{force_v4}){ - $auth_packet = - $self->_dorecursion - ($self->make_query_packet($ns,"AAAA"), # packet - ".", # known_zone - $self->{'hints'}, # known_authorities - $depth+1); # depth - @ans = $auth_packet->answer if $auth_packet; - } - - $auth_packet = - $self->_dorecursion - ($self->make_query_packet($ns,"A"), # packet - ".", # known_zone - $self->{'hints'}, # known_authorities - $depth+1); # depth - - push (@ans,$auth_packet->answer ) if $auth_packet; - - if ( @ans ) { - print ";; _dorecursion() Answers found for [$ns]\n" if $self->{'debug'}; - foreach my $rr (@ans) { - print ";; RR:".$rr->string."\n" if $self->{'debug'}; - if ($rr->type eq "CNAME") { - # Follow CNAME - if (my $server = lc $rr->name) { - $server =~ s/\.*$/./; - if ($server eq $ns) { - my $cname = lc $rr->rdatastr; - $cname =~ s/\.*$/./; - print ";; _dorecursion() Following CNAME ns [$ns] -> [$cname]\n" if $self->{'debug'}; - $known_authorities->{$cname} ||= []; - delete $known_authorities->{$ns}; - next; - } - } - } elsif ($rr->type eq "A" ||$rr->type eq "AAAA" ) { - if (my $server = lc $rr->name) { - $server =~ s/\.*$/./; - if ($known_authorities->{$server}) { - my $ip = $rr->rdatastr; - print ";; _dorecursion() Found ns: $server IN A $ip\n" if $self->{'debug'}; - $cache->{$server} = $known_authorities->{$server}; - push (@{ $cache->{$ns} }, $ip); - $found_auth++; - next; - } - } - } - print ";; _dorecursion() Ignoring useless answer: ",$rr->string,"\n" if $self->{'debug'}; - } - } else { - print ";; _dorecursion() Could not find A records for [$ns]\n" if $self->{'debug'}; - } - } - } - if ($found_auth) { - print ";; _dorecursion() Found $found_auth new NS authorities...\n" if $self->{'debug'}; - return $self->_dorecursion( $query_packet, $known_zone, $known_authorities, $depth+1); - } - print ";; _dorecursion() No authority information could be obtained.\n" if $self->{'debug'}; - return undef; - } - - # Cut the deck of IPs in a random place. - print ";; _dorecursion() cutting deck of (".scalar(@ns).") authorities...\n" if $self->{'debug'}; - splice(@ns, 0, 0, splice(@ns, int(rand @ns))); - - - LEVEL: foreach my $levelns (@ns){ - print ";; _dorecursion() Trying nameserver [$levelns]\n" if $self->{'debug'}; - $self->nameservers($levelns); - - if (my $packet = $self->send( $query_packet )) { - - if ($self->{'callback'}) { - $self->{'callback'}->($packet); - } - - my $of = undef; - print ";; _dorecursion() Response received from [",$self->answerfrom,"]\n" if $self->{'debug'}; - if (my $status = $packet->header->rcode) { - if ($status eq "NXDOMAIN") { - # I guess NXDOMAIN is the best we'll ever get - print ";; _dorecursion() returning NXDOMAIN\n" if $self->{'debug'}; - return $packet; - } elsif (my @ans = $packet->answer) { - print ";; _dorecursion() Answers were found.\n" if $self->{'debug'}; - return $packet; - } elsif (my @authority = $packet->authority) { - my %auth = (); - foreach my $rr (@authority) { - if ($rr->type =~ /^(NS|SOA)$/) { - my $server = lc ($1 eq "NS" ? $rr->nsdname : $rr->mname); - $server =~ s/\.*$/./; - $of = lc $rr->name; - $of =~ s/\.*$/./; - print ";; _dorecursion() Received authority [$of] [",$rr->type(),"] [$server]\n" if $self->{'debug'}; - if (length $of <= length $known_zone) { - print ";; _dorecursion() Deadbeat name server did not provide new information.\n" if $self->{'debug'}; - next LEVEL; - } elsif ($of =~ /$known_zone$/) { - print ";; _dorecursion() FOUND closer authority for [$of] at [$server].\n" if $self->{'debug'}; - $auth{$server} ||= []; - } else { - print ";; _dorecursion() Confused name server [",$self->answerfrom,"] thinks [$of] is closer than [$known_zone]?\n" if $self->{'debug'}; - last; - } - } else { - print ";; _dorecursion() Ignoring NON NS entry found in authority section: ",$rr->string,"\n" if $self->{'debug'}; - } - } - foreach my $rr ($packet->additional) { - if ($rr->type eq "CNAME") { - # Store this CNAME into %auth too - if (my $server = lc $rr->name) { - $server =~ s/\.*$/./; - if ($auth{$server}) { - my $cname = lc $rr->rdatastr; - $cname =~ s/\.*$/./; - print ";; _dorecursion() FOUND CNAME authority: ",$rr->string,"\n" if $self->{'debug'}; - $auth{$cname} ||= []; - $auth{$server} = $auth{$cname}; - next; - } - } - } elsif ($rr->type eq "A" || $rr->type eq "AAAA") { - if (my $server = lc $rr->name) { - $server =~ s/\.*$/./; - if ($auth{$server}) { - print ";; _dorecursion() STORING: $server IN A ",$rr->rdatastr,"\n" if $self->{'debug'} && $rr->type eq "A"; - print ";; _dorecursion() STORING: $server IN AAAA ",$rr->rdatastr,"\n" if $self->{'debug'}&& $rr->type eq "AAAA"; - push @{ $auth{$server} }, $rr->rdatastr; - next; - } - } - } - print ";; _dorecursion() Ignoring useless: ",$rr->string,"\n" if $self->{'debug'}; - } - if ($of =~ /$known_zone$/) { - return $self->_dorecursion( $query_packet, $of, \%auth, $depth+1 ); - } else { - return $self->_dorecursion( $query_packet, $known_zone, $known_authorities, $depth+1 ); - } - } - } - } - } - - return undef; -} - -1; - -__END__ - - -=head1 NAME - -Net::DNS::Resolver::Recurse - Perform recursive dns lookups - -=head1 SYNOPSIS - - use Net::DNS::Resolver::Recurse; - my $res = Net::DNS::Resolver::Recurse->new; - -=head1 DESCRIPTION - -This module is a sub class of Net::DNS::Resolver. So the methods for -Net::DNS::Resolver still work for this module as well. There are just a -couple methods added: - -=head2 hints - -Initialize the hint servers. Recursive queries need a starting name -server to work off of. This method takes a list of IP addresses to use -as the starting servers. These name servers should be authoritative for -the root (.) zone. - - $res->hints(@ips); - -If no hints are passed, the default nameserver is asked for the hints. -Normally these IPs can be obtained from the following location: - - ftp://ftp.internic.net/domain/named.root - -=head2 recursion_callback - -This method is takes a code reference, which is then invoked each time a -packet is received during the recursive lookup. For example to emulate -dig's C<+trace> function: - - $res->recursion_callback(sub { - my $packet = shift; - - $_->print for $packet->additional; - - printf(";; Received %d bytes from %s\n\n", - $packet->answersize, - $packet->answerfrom - ); - }); - -=head2 query_dorecursion - -This method is much like the normal query() method except it disables -the recurse flag in the packet and explicitly performs the recursion. - - $packet = $res->query_dorecursion( "www.netscape.com.", "A"); - - -=head1 IPv6 transport - -If the appropriate IPv6 libraries are installed the recursive resolver -will randomly choose between IPv6 and IPv4 addresses of the -nameservers it encounters during recursion. - -If you want to force IPv4 transport use the force_v4() method. Also see -the IPv6 transport notes in the Net::DNS::Resolver documentation. - -=head1 AUTHOR - -Rob Brown, bbb@cpan.org - -=head1 SEE ALSO - -L<Net::DNS::Resolver>, - -=head1 COPYRIGHT - -Copyright (c) 2002, Rob Brown. All rights reserved. -Portions Copyright (c) 2005, Olaf M Kolkman. - -This module is free software; you can redistribute -it and/or modify it under the same terms as Perl itself. - -$Id: Recurse.pm 591 2006-05-22 21:32:38Z olaf $ - -=cut - -Example lookup process: - -[root@box root]# dig +trace www.rob.com.au. - -; <<>> DiG 9.2.0 <<>> +trace www.rob.com.au. -;; global options: printcmd -. 507343 IN NS C.ROOT-SERVERS.NET. -. 507343 IN NS D.ROOT-SERVERS.NET. -. 507343 IN NS E.ROOT-SERVERS.NET. -. 507343 IN NS F.ROOT-SERVERS.NET. -. 507343 IN NS G.ROOT-SERVERS.NET. -. 507343 IN NS H.ROOT-SERVERS.NET. -. 507343 IN NS I.ROOT-SERVERS.NET. -. 507343 IN NS J.ROOT-SERVERS.NET. -. 507343 IN NS K.ROOT-SERVERS.NET. -. 507343 IN NS L.ROOT-SERVERS.NET. -. 507343 IN NS M.ROOT-SERVERS.NET. -. 507343 IN NS A.ROOT-SERVERS.NET. -. 507343 IN NS B.ROOT-SERVERS.NET. -;; Received 436 bytes from 127.0.0.1#53(127.0.0.1) in 9 ms - ;;; But these should be hard coded as the hints - - ;;; Ask H.ROOT-SERVERS.NET gave: -au. 172800 IN NS NS2.BERKELEY.EDU. -au. 172800 IN NS NS1.BERKELEY.EDU. -au. 172800 IN NS NS.UU.NET. -au. 172800 IN NS BOX2.AUNIC.NET. -au. 172800 IN NS SEC1.APNIC.NET. -au. 172800 IN NS SEC3.APNIC.NET. -;; Received 300 bytes from 128.63.2.53#53(H.ROOT-SERVERS.NET) in 322 ms - ;;; A little closer than before - - ;;; Ask NS2.BERKELEY.EDU gave: -com.au. 259200 IN NS ns4.ausregistry.net. -com.au. 259200 IN NS dns1.telstra.net. -com.au. 259200 IN NS au2ld.CSIRO.au. -com.au. 259200 IN NS audns01.syd.optus.net. -com.au. 259200 IN NS ns.ripe.net. -com.au. 259200 IN NS ns1.ausregistry.net. -com.au. 259200 IN NS ns2.ausregistry.net. -com.au. 259200 IN NS ns3.ausregistry.net. -com.au. 259200 IN NS ns3.melbourneit.com. -;; Received 387 bytes from 128.32.206.12#53(NS2.BERKELEY.EDU) in 10312 ms - ;;; A little closer than before - - ;;; Ask ns4.ausregistry.net gave: -com.au. 259200 IN NS ns1.ausregistry.net. -com.au. 259200 IN NS ns2.ausregistry.net. -com.au. 259200 IN NS ns3.ausregistry.net. -com.au. 259200 IN NS ns4.ausregistry.net. -com.au. 259200 IN NS ns3.melbourneit.com. -com.au. 259200 IN NS dns1.telstra.net. -com.au. 259200 IN NS au2ld.CSIRO.au. -com.au. 259200 IN NS ns.ripe.net. -com.au. 259200 IN NS audns01.syd.optus.net. -;; Received 259 bytes from 137.39.1.3#53(ns4.ausregistry.net) in 606 ms - ;;; Uh... yeah... I already knew this - ;;; from what NS2.BERKELEY.EDU told me. - ;;; ns4.ausregistry.net must have brain damage - - ;;; Ask ns1.ausregistry.net gave: -rob.com.au. 86400 IN NS sy-dns02.tmns.net.au. -rob.com.au. 86400 IN NS sy-dns01.tmns.net.au. -;; Received 87 bytes from 203.18.56.41#53(ns1.ausregistry.net) in 372 ms - ;;; Ah, much better. Something more useful. - - ;;; Ask sy-dns02.tmns.net.au gave: -www.rob.com.au. 7200 IN A 139.134.5.123 -rob.com.au. 7200 IN NS sy-dns01.tmns.net.au. -rob.com.au. 7200 IN NS sy-dns02.tmns.net.au. -;; Received 135 bytes from 139.134.2.18#53(sy-dns02.tmns.net.au) in 525 ms - ;;; FINALLY, THE ANSWER! diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Resolver/UNIX.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Resolver/UNIX.pm deleted file mode 100644 index 7cff8c76960..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Resolver/UNIX.pm +++ /dev/null @@ -1,74 +0,0 @@ -package Net::DNS::Resolver::UNIX; -# -# $Id: UNIX.pm 482 2005-09-02 13:34:33Z olaf $ -# - -use strict; -use vars qw(@ISA $VERSION); - -use Net::DNS::Resolver::Base (); - -@ISA = qw(Net::DNS::Resolver::Base); -$VERSION = (qw$LastChangedRevision: 482 $)[1]; - -my $resolv_conf = '/etc/resolv.conf'; -my $dotfile = '.resolv.conf'; - -my @config_path; -push(@config_path, $ENV{'HOME'}) if exists $ENV{'HOME'}; -push(@config_path, '.'); - -sub init { - my ($class) = @_; - - $class->read_config_file($resolv_conf) if -f $resolv_conf && -r _; - - foreach my $dir (@config_path) { - my $file = "$dir/$dotfile"; - $class->read_config_file($file) if -f $file && -r _ && -o _; - } - - $class->read_env; - - my $defaults = $class->defaults; - - if (!$defaults->{'domain'} && @{$defaults->{'searchlist'}}) { - $defaults->{'domain'} = $defaults->{'searchlist'}[0]; - } elsif (!@{$defaults->{'searchlist'}} && $defaults->{'domain'}) { - $defaults->{'searchlist'} = [ $defaults->{'domain'} ]; - } -} - -1; -__END__ - - -=head1 NAME - -Net::DNS::Resolver::UNIX - UNIX Resolver Class - -=head1 SYNOPSIS - - use Net::DNS::Resolver; - -=head1 DESCRIPTION - -This class implements the UNIX specific portions of C<Net::DNS::Resolver>. - -No user serviceable parts inside, see L<Net::DNS::Resolver|Net::DNS::Resolver> -for all your resolving needs. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver> - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Resolver/Win32.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Resolver/Win32.pm deleted file mode 100644 index a86d28b8ecf..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Resolver/Win32.pm +++ /dev/null @@ -1,225 +0,0 @@ -package Net::DNS::Resolver::Win32; -# -# $Id: Win32.pm 588 2006-05-22 20:28:00Z olaf $ -# - -use strict; -use vars qw(@ISA $VERSION); - -use Net::DNS::Resolver::Base (); - -@ISA = qw(Net::DNS::Resolver::Base); -$VERSION = (qw$LastChangedRevision: 588 $)[1]; - -use Win32::Registry; - -sub init { - - my $debug=0; - my ($class) = @_; - - my $defaults = $class->defaults; - - my ($resobj, %keys); - - my $root = 'SYSTEM\CurrentControlSet\Services\Tcpip\Parameters'; - - unless ($main::HKEY_LOCAL_MACHINE->Open($root, $resobj)) { - # Didn't work, maybe we are on 95/98/Me? - $root = 'SYSTEM\CurrentControlSet\Services\VxD\MSTCP'; - $main::HKEY_LOCAL_MACHINE->Open($root, $resobj) - or Carp::croak "can't read registry: $!"; - } - - $resobj->GetValues(\%keys) - or Carp::croak "can't read registry values: $!"; - - # Best effort to find a useful domain name for the current host - # if domain ends up blank, we're probably (?) not connected anywhere - # a DNS server is interesting either... - my $domain = $keys{'Domain'}->[2] || $keys{'DhcpDomain'}->[2] || ''; - - # If nothing else, the searchlist should probably contain our own domain - # also see below for domain name devolution if so configured - # (also remove any duplicates later) - my $searchlist = "$domain "; - $searchlist .= $keys{'SearchList'}->[2]; - - # This is (probably) adequate on NT4 - # NameServer overrides DhcpNameServer if both exist - my $nt4nameservers = $keys{'NameServer'}->[2] || $keys{'DhcpNameServer'}->[2]; - my $nameservers = ""; - - - -# -# -# This code is agued to be broken see ticket rt.cpan.org ticket 11931 -# There seems to be sufficient reason to remove this code -# -# For details see https://rt.cpan.org/Ticket/Display.html?id=11931 -# -# -# # -# # but on W2K/XP the registry layout is more advanced due to dynamically -# # appearing connections. So we attempt to handle them, too... -# # opt to silently fail if something isn't ok (maybe we're on NT4) -# # drop any duplicates later, but must ignore NT4 style entries if in 2K/XP -# my $dnsadapters; -# $resobj->Open("DNSRegisteredAdapters", $dnsadapters); -# if ($dnsadapters) { -# my @adapters; -# $dnsadapters->GetKeys(\@adapters); -# foreach my $adapter (@adapters) { -# my $regadapter; -# $dnsadapters->Open($adapter, $regadapter); -# if ($regadapter) { -# my($type,$ns); -# $regadapter->QueryValueEx("DNSServerAddresses", $type, $ns); -# while (length($ns) >= 4) { -# my $addr = join('.', unpack("C4", substr($ns,0,4,""))); -# $nameservers .= " $addr"; -# } -# } -# } -# } - - - - - # This code was introduced by Hanno Stock, see ticket 1193 dd May 19 2006 - # - # it should work on Win2K and XP and looks for the DNS services - # using the BIND key - # - - my $bind_linkage; - my @sorted_interfaces; - print ";; DNS: Getting sorted interface list\n" if $debug; - $main::HKEY_LOCAL_MACHINE->Open('SYSTEM\CurrentControlSet\Services\Tcpip\Linkage', - $bind_linkage); - if($bind_linkage){ - my $bind_linkage_list; - my $type; - $bind_linkage->QueryValueEx('Bind', $type, $bind_linkage_list); - if($bind_linkage_list){ - @sorted_interfaces = split(m/[^\w{}\\-]+/s, $bind_linkage_list); - } - foreach my $interface (@sorted_interfaces){ - $interface =~ s/^\\device\\//i; - print ";; DNS:Interface: $interface\n" if $debug; - } - } - - - my $interfaces; - $resobj->Open("Interfaces", $interfaces); - if ($interfaces) { - my @ifacelist; - if(@sorted_interfaces){ - @ifacelist = @sorted_interfaces; - }else{ - $interfaces->GetKeys(\@ifacelist); - } - foreach my $iface (@ifacelist) { - my $regiface; - $interfaces->Open($iface, $regiface); - - if ($regiface) { - my $ns; - my $type; - my $ip; - my $ipdhcp; - $regiface->QueryValueEx("IPAddress", $type, $ip); - $regiface->QueryValueEx("DhcpIPAddress", $type, $ipdhcp); - if (($ip && !($ip =~ /0\.0\.0\.0/)) || ($ipdhcp && !($ipdhcp =~ /0\.0 -\.0\.0/))) { - # NameServer overrides DhcpNameServer if both exist - $regiface->QueryValueEx("NameServer", $type, $ns); - $regiface->QueryValueEx("DhcpNameServer", $type, $ns) unless $ns; - $nameservers .= " $ns" if $ns; - } - } - } - } - if (!$nameservers) { - $nameservers = $nt4nameservers; - } - - if ($domain) { - $defaults->{'domain'} = $domain; - } - - my $usedevolution = $keys{'UseDomainNameDevolution'}->[2]; - if ($searchlist) { - # fix devolution if configured, and simultaneously make sure no dups (but keep the order) - my @a; - my %h; - foreach my $entry (split(m/[\s,]+/, $searchlist)) { - push(@a, $entry) unless $h{$entry}; - $h{$entry} = 1; - if ($usedevolution) { - # as long there's more than two pieces, cut - while ($entry =~ m#\..+\.#) { - $entry =~ s#^[^\.]+\.(.+)$#$1#; - push(@a, $entry) unless $h{$entry}; - $h{$entry} = 1; - } - } - } - $defaults->{'searchlist'} = \@a; - } - - if ($nameservers) { - # remove blanks and dupes - my @a; - my %h; - foreach my $ns (split(m/[\s,]+/, $nameservers)) { - push @a, $ns unless (!$ns || $h{$ns}); - $h{$ns} = 1; - } - $defaults->{'nameservers'} = [map { m/(.*)/ } @a]; - } - - $class->read_env; - - if (!$defaults->{'domain'} && @{$defaults->{'searchlist'}}) { - $defaults->{'domain'} = $defaults->{'searchlist'}[0]; - } elsif (!@{$defaults->{'searchlist'}} && $defaults->{'domain'}) { - $defaults->{'searchlist'} = [ $defaults->{'domain'} ]; - } -} - -1; -__END__ - - -=head1 NAME - -Net::DNS::Resolver::Win32 - Windows Resolver Class - -=head1 SYNOPSIS - - use Net::DNS::Resolver; - -=head1 DESCRIPTION - -This class implements the windows specific portions of C<Net::DNS::Resolver>. - -No user serviceable parts inside, see L<Net::DNS::Resolver|Net::DNS::Resolver> -for all your resolving needs. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver> - -=cut diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Update.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Update.pm deleted file mode 100644 index e4b38c47d34..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Update.pm +++ /dev/null @@ -1,200 +0,0 @@ -package Net::DNS::Update; -# -# $Id: Update.pm 517 2005-11-21 08:38:47Z olaf $ -# -use strict; -BEGIN { - eval { require bytes; } -} -use vars qw($VERSION @ISA); - -use Net::DNS; - -@ISA = qw(Net::DNS::Packet); -$VERSION = (qw$LastChangedRevision: 517 $)[1]; - -=head1 NAME - -Net::DNS::Update - Create a DNS update packet - -=head1 SYNOPSIS - -C<use Net::DNS::Update;> - -=head1 DESCRIPTION - -C<Net::DNS::Update> is a subclass of C<Net::DNS::Packet>, -to be used for making DNS dynamic updates. Programmers -should refer to RFC 2136 for the semantics of dynamic updates. - -WARNING: This code is still under development. Please use with -caution on production nameservers. - -=head1 METHODS - -=head2 new - - $packet = Net::DNS::Update->new; - $packet = Net::DNS::Update->new('example.com'); - $packet = Net::DNS::Update->new('example.com', 'HS'); - -Returns a C<Net::DNS::Update> object suitable for performing a DNS -dynamic update. Specifically, it creates a packet with the header -opcode set to UPDATE and the zone record type to SOA (per RFC 2136, -Section 2.3). - -Programs must use the C<push> method to add RRs to the prerequisite, -update, and additional sections before performing the update. - -Arguments are the zone name and the class. If the zone is omitted, -the default domain will be taken from the resolver configuration. -If the class is omitted, it defaults to IN. - -Future versions of C<Net::DNS> may provide a simpler interface -for making dynamic updates. - -=cut - -sub new { - my ($package, $zone, $class) = @_; - - unless ($zone) { - my $res = Net::DNS::Resolver->new; - $zone = ($res->searchlist)[0]; - return unless $zone; - } - - my $type = 'SOA'; - $class ||= 'IN'; - - my $self = $package->SUPER::new($zone, $type, $class) || return; - - $self->header->opcode('UPDATE'); - $self->header->rd(0); - - $self->{'seen'} = {}; - - - return $self; -} - - -=head1 EXAMPLES - -The first example below shows a complete program; subsequent examples -show only the creation of the update packet. - -=head2 Add a new host - - #!/usr/bin/perl -w - - use Net::DNS; - use strict; - - # Create the update packet. - my $update = Net::DNS::Update->new('example.com'); - - # Prerequisite is that no A records exist for the name. - $update->push(pre => nxrrset('foo.example.com. A')); - - # Add two A records for the name. - $update->push(update => rr_add('foo.example.com. 86400 A 192.168.1.2')); - $update->push(update => rr_add('foo.example.com. 86400 A 172.16.3.4')); - - # Send the update to the zone's primary master. - my $res = Net::DNS::Resolver->new; - $res->nameservers('primary-master.example.com'); - - my $reply = $res->send($update); - - # Did it work? - if ($reply) { - if ($reply->header->rcode eq 'NOERROR') { - print "Update succeeded\n"; - } else { - print 'Update failed: ', $reply->header->rcode, "\n"; - } - } else { - print 'Update failed: ', $res->errorstring, "\n"; - } - -=head2 Add an MX record for a name that already exists - - my $update = Net::DNS::Update->new('example.com'); - $update->push(pre => yxdomain('example.com')); - $update->push(update => rr_add('example.com MX 10 mailhost.example.com')); - -=head2 Add a TXT record for a name that doesn't exist - - my $update = Net::DNS::Update->new('example.com'); - $update->push(pre => nxdomain('info.example.com')); - $update->push(update => rr_add('info.example.com TXT "yabba dabba doo"')); - -=head2 Delete all A records for a name - - my $update = Net::DNS::Update->new('example.com'); - $update->push(pre => yxrrset('foo.example.com A')); - $update->push(update => rr_del('foo.example.com A')); - -=head2 Delete all RRs for a name - - my $update = Net::DNS::Update->new('example.com'); - $update->push(pre => yxdomain('byebye.example.com')); - $update->push(update => rr_del('byebye.example.com')); - -=head2 Perform a signed update - - my $key_name = 'tsig-key'; - my $key = 'awwLOtRfpGE+rRKF2+DEiw=='; - - my $update = Net::DNS::Update->new('example.com'); - $update->push(update => rr_add('foo.example.com A 10.1.2.3')); - $update->push(update => rr_add('bar.example.com A 10.4.5.6')); - $update->sign_tsig($key_name, $key); - -=head2 Another way to perform a signed update - - my $key_name = 'tsig-key'; - my $key = 'awwLOtRfpGE+rRKF2+DEiw=='; - - my $update = Net::DNS::Update->new('example.com'); - $update->push(update => rr_add('foo.example.com A 10.1.2.3')); - $update->push(update => rr_add('bar.example.com A 10.4.5.6')); - $update->push(additional => Net::DNS::RR->new("$key_name TSIG $key")); - -=head2 Perform a signed update with a customized TSIG record - - my $key_name = 'tsig-key'; - my $key = 'awwLOtRfpGE+rRKF2+DEiw=='; - - my $tsig = Net::DNS::RR->new("$key_name TSIG $key"); - $tsig->fudge(60); - - my $update = Net::DNS::Update->new('example.com'); - $update->push(update => rr_add('foo.example.com A 10.1.2.3')); - $update->push(update => rr_add('bar.example.com A 10.4.5.6')); - $update->push(additional => $tsig); - -=head1 BUGS - -This code is still under development. Please use with caution on -production nameservers. - -=head1 COPYRIGHT - -Copyright (c) 1997-2002 Michael Fuhr. - -Portions Copyright (c) 2002-2004 Chris Reinhardt. - -All rights reserved. This program is free software; you may redistribute -it and/or modify it under the same terms as Perl itself. - -=head1 SEE ALSO - -L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver>, L<Net::DNS::Header>, -L<Net::DNS::Packet>, L<Net::DNS::Question>, L<Net::DNS::RR>, RFC 2136, -RFC 2845 - -=cut - -1; |