Subject: | net::dns block if no answer of the server |
Microsoft Windows 2000 [Version 5.00.2195]
-------------------------
This is perl, v5.8.0 built for MSWin32-x86-multi-thread
(with 1 registered patch, see perl -V for more detail)
Copyright 1987-2002, Larry Wall
Binary build 805 provided by ActiveState Corp. http://www.ActiveState.com
Built 18:08:02 Feb 4 2003
-------------------------------
code :
my $nres = new Net::DNS::Resolver;
# DNS module bug ....
$Net::DNS::Resolver::global{"id"} = 1234 if ($Net::DNS::Resolver::global{"id"} > 65000);
$nres->nameservers($IPADDR{$nicname});
$nres->debug(0);
$nres->igntc(1);
$nres->usevc(0);
$nres->retry(1);
$nres->retrans($TIMEOUT{$nicname});
my $packet = $nres->send($RESNAME{$nicname});
-------------------------------------------------------------------
if the name server is not reponding, net::dns aborts after the timeout,
version older than 0.19 stay blocked. this seem to be binded to the changes in resolver.pm / send_udp :
my $sel = Net::DNS::Select->new($os, $sock);
.....
my @ready = $sel->can_read($timeout);
foreach my $ready (@ready) {
my $buf = '';
if ($ready->recv($buf, $self->_packetsz)) {
stay blocked here .....
same behaviour with version 0.19,
best regards, thanks for this wonderful product