IO-Lambda
view release on metacpan or search on metacpan
lib/IO/Lambda/DNS.pm view on Meta::CPAN
unless ( shift) {
return 'connect timeout' if $retries-- <= 0;
return this-> start; # restart the whole lambda
}
my $err = unpack('i', getsockopt($sock, SOL_SOCKET, SO_ERROR));
if ( $err) {
$! = $err;
return "socket error: $!";
}
return again if $obj-> bgbusy($bg_obj);
my $packet = $obj-> bgread( $bg_obj);
undef $sock;
undef $bg_obj;
return "recv error: " . $obj-> errorstring unless $packet;
if ( $simple_query) {
# behave like inet_aton, return single IP address
for ( $packet-> answer) {
use IO::Lambda::DNS qw(:all);
use Net::DNS;
plan skip_all => "online tests disabled" unless -e 't/online.enabled';
# test if net::dns is functional at all
eval {
my $obj = Net::DNS::Resolver-> new();
my $sock = $obj-> bgsend('www.google.com');
my $time = time + 5;
while ( $obj-> bgbusy( $sock )) { die if time > $time };
my $packet = $obj-> bgread( $sock);
die unless $packet;
};
plan skip_all => "Net::DNS cannot resolve google.com in this environment" if $@;
plan tests => 3;
# simple
ok(
IO::Lambda::DNS-> new('www.google.com')-> wait =~ /^\d/,
( run in 0.528 second using v1.01-cache-2.11-cpan-87723dcf8b7 )