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) {

t/07_dns.t  view on Meta::CPAN

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 )