ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/lib/AnyEvent/DNS.pm
(Generate patch)

Comparing AnyEvent/lib/AnyEvent/DNS.pm (file contents):
Revision 1.103 by root, Thu Jul 9 08:31:16 2009 UTC vs.
Revision 1.107 by root, Fri Jul 17 23:12:20 2009 UTC

26 26
27=cut 27=cut
28 28
29package AnyEvent::DNS; 29package AnyEvent::DNS;
30 30
31no warnings;
32use strict;
33
34use Carp (); 31use Carp ();
35use Socket qw(AF_INET SOCK_DGRAM SOCK_STREAM); 32use Socket qw(AF_INET SOCK_DGRAM SOCK_STREAM);
36 33
37use AnyEvent (); 34use AnyEvent (); BEGIN { AnyEvent::common_sense }
38use AnyEvent::Util qw(AF_INET6); 35use AnyEvent::Util qw(AF_INET6);
39 36
40our $VERSION = 4.81; 37our $VERSION = 4.83;
41 38
42our @DNS_FALLBACK = (v208.67.220.220, v208.67.222.222); 39our @DNS_FALLBACK = (v208.67.220.220, v208.67.222.222);
43 40
44=item AnyEvent::DNS::a $domain, $cb->(@addrs) 41=item AnyEvent::DNS::a $domain, $cb->(@addrs)
45 42
379 376
380sub _enc_name($) { 377sub _enc_name($) {
381 pack "(C/a*)*", (split /\./, shift), "" 378 pack "(C/a*)*", (split /\./, shift), ""
382} 379}
383 380
381if ($[ < 5.008) {
382 # special slower 5.6 version
383 *_enc_name = sub {
384 join "", map +(pack "C/a*", $_), (split /\./, shift), ""
385 };
386}
387
384sub _enc_qd() { 388sub _enc_qd() {
385 (_enc_name $_->[0]) . pack "nn", 389 (_enc_name $_->[0]) . pack "nn",
386 ($_->[1] > 0 ? $_->[1] : $type_id {$_->[1]}), 390 ($_->[1] > 0 ? $_->[1] : $type_id {$_->[1]}),
387 ($_->[2] > 0 ? $_->[2] : $class_id{$_->[2] || "in"}) 391 ($_->[2] > 0 ? $_->[2] : $class_id{$_->[2] || "in"})
388} 392}
845} 849}
846 850
847sub _parse_resolv_conf_file { 851sub _parse_resolv_conf_file {
848 my ($self, $resolv_conf) = @_; 852 my ($self, $resolv_conf) = @_;
849 853
850 open my $fh, "<:perlio", $resolv_conf 854 open my $fh, "<", $resolv_conf
851 or Carp::croak "$resolv_conf: $!"; 855 or Carp::croak "$resolv_conf: $!";
852 856
853 local $/; 857 local $/;
854 $self->parse_resolv_conf (<$fh>); 858 $self->parse_resolv_conf (<$fh>);
855} 859}
1077 } 1081 }
1078 }]; 1082 }];
1079 1083
1080 my $sa = AnyEvent::Socket::pack_sockaddr (DOMAIN_PORT, $server); 1084 my $sa = AnyEvent::Socket::pack_sockaddr (DOMAIN_PORT, $server);
1081 1085
1082 my $fh = AF_INET == Socket::sockaddr_family ($sa) 1086 my $fh = AF_INET == AnyEvent::Socket::sockaddr_family ($sa)
1083 ? $self->{fh4} : $self->{fh6} 1087 ? $self->{fh4} : $self->{fh6}
1084 or return &$do_retry; 1088 or return &$do_retry;
1085 1089
1086 send $fh, $req->[0], 0, $sa; 1090 send $fh, $req->[0], 0, $sa;
1087 }; 1091 };

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines