Net-DNS-Resolver-Unbound
view release on metacpan or search on metacpan
lib/Net/DNS/Resolver/Unbound.pm view on Meta::CPAN
return @value;
}
$self->set_fwd() unless @nameservers;
$self->set_fwd($_) foreach @nameservers;
return;
}
sub nameserver { return &nameservers }
=head2 search, query, send, bgsend, bgbusy, bgread
See L<Net::DNS::Resolver>.
=cut
use constant UB_SEND => UB_CONTEXT->can('ub_send');
sub send {
my ( $self, @argument ) = @_;
lib/Net/DNS/Resolver/Unbound.pm view on Meta::CPAN
$self->_finalise_config;
$self->_reset_errorstring;
my $query = $self->_make_query_packet(@argument);
my $image = $query->encode;
my $ident = $query->header->id;
my ($q) = $query->question;
return $self->{ub_ctx}->ub_resolve_async( $q->name, $q->{qtype}, $q->{qclass}, $ident );
}
sub bgbusy {
my ( $self, $handle ) = @_;
return unless $handle;
return unless $handle->waiting;
$self->{ub_ctx}->ub_process;
eval { select( undef, undef, undef, 0.200 ) }; # avoid tight loop on bgbusy()
return $handle->waiting;
}
sub bgread {
my ( $self, $handle ) = @_;
return unless $handle;
$self->{ub_ctx}->ub_wait;
$self->errorstring( $handle->err );
t/35-bgread.t view on Meta::CPAN
use Net::DNS::Resolver::Unbound;
my $resolver = Net::DNS::Resolver::Unbound->new();
plan skip_all => 'resolver not loaded' unless $resolver;
plan tests => 12;
for ( my $handle = undef ) {
ok( !$resolver->bgbusy($handle), 'not bgbusy' );
is( $resolver->bgread($handle), undef, 'undefined bgread' );
}
my $id = 123;
my $err = -99;
for ( my $handle = Net::DNS::Resolver::libunbound::emulate_wait($id) ) {
ok( $handle->waiting(), 'handle->waiting' );
ok( $resolver->bgbusy($handle), 'bgbusy' );
ok( !$handle->err(), 'no handle->err' );
ok( !$handle->result(), 'no handle->result' );
}
for ( my $handle = Net::DNS::Resolver::libunbound::emulate_callback( $id, $err ) ) {
ok( !$handle->waiting(), 'not handle->waiting' );
ok( !$resolver->bgbusy($handle), 'not bgbusy' );
ok( $handle->err(), 'handle->err' );
ok( !$handle->result(), 'no handle->result' );
is( $resolver->bgread($handle), undef, 'undefined bgread' );
my $errorstring = $resolver->errorstring;
like( $errorstring, "/$err/", "errorstring: [$errorstring]" );
}
exit;
( run in 0.592 second using v1.01-cache-2.11-cpan-3cd7ad12f66 )