diff options
Diffstat (limited to 'chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Header.pm')
-rw-r--r-- | chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/i686-cygwin/Net/DNS/Header.pm | 371 |
1 files changed, 0 insertions, 371 deletions
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; |