mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
HttpUtils.pm: avoid Deep recursion when the DNS-Server timed out (Forum #53309)
git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@11612 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
c14335f3f1
commit
0b1dd77d48
@ -152,7 +152,7 @@ HttpUtils_gethostbyname($$$)
|
|||||||
my $c = IO::Socket::INET->new(Proto=>'udp', PeerAddr=>"$dnsServer:53");
|
my $c = IO::Socket::INET->new(Proto=>'udp', PeerAddr=>"$dnsServer:53");
|
||||||
return $fn->($hash, "Cant create UDP socket:$!", undef) if(!$c);
|
return $fn->($hash, "Cant create UDP socket:$!", undef) if(!$c);
|
||||||
|
|
||||||
my %dh = ( conn=>$c, FD=>$c->fileno(), NAME=>"DNS",
|
my %dh = ( conn=>$c, FD=>$c->fileno(), NAME=>"DNS", origHash=>$hash,
|
||||||
addr=>$dnsServer, callback=>$fn );
|
addr=>$dnsServer, callback=>$fn );
|
||||||
my %timerHash = ( hash => \%dh );
|
my %timerHash = ( hash => \%dh );
|
||||||
my $bhost = join("", map { pack("CA*",length($_),$_) } split(/\./, $host));
|
my $bhost = join("", map { pack("CA*",length($_),$_) } split(/\./, $host));
|
||||||
@ -233,6 +233,7 @@ HttpUtils_Connect($)
|
|||||||
if($hash->{conn}) {
|
if($hash->{conn}) {
|
||||||
HttpUtils_gethostbyname($hash, $host, sub($$$) {
|
HttpUtils_gethostbyname($hash, $host, sub($$$) {
|
||||||
my ($hash, $err, $iaddr) = @_;
|
my ($hash, $err, $iaddr) = @_;
|
||||||
|
$hash = $hash->{origHash} if($hash->{origHash});
|
||||||
return $hash->{callback}($hash, $err, "") if($err);
|
return $hash->{callback}($hash, $err, "") if($err);
|
||||||
my $ret = connect($hash->{conn}, sockaddr_in($port, $iaddr));
|
my $ret = connect($hash->{conn}, sockaddr_in($port, $iaddr));
|
||||||
if(!$ret) {
|
if(!$ret) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user