diff --git a/web-lib-funcs.pl b/web-lib-funcs.pl index 004d64150..c446ea96b 100755 --- a/web-lib-funcs.pl +++ b/web-lib-funcs.pl @@ -3348,16 +3348,18 @@ elsif (!&supports_ipv6()) { } else { # Perform IPv6 DNS lookup - my @ai = getaddrinfo($host, undef, AF_INET6(), SOCK_STREAM); - while(@ai) { - my @newia; - (undef, undef, undef, $inaddr, undef, @newai) = @ai; - if ($inaddr) { - my $addr; - (undef, $addr) = unpack_sockaddr_in6($inaddr); - push(@rv, inet_ntop(AF_INET6(), $addr)); + eval { + my @ai = getaddrinfo($host, undef, AF_INET6(), SOCK_STREAM); + while(@ai) { + my @newia; + (undef, undef, undef, $inaddr, undef, @newai) = @ai; + if ($inaddr) { + my $addr; + (undef, $addr) = unpack_sockaddr_in6($inaddr); + push(@rv, inet_ntop(AF_INET6(), $addr)); + } + @ai = @newai; } - @ai = @newai; } } return wantarray ? @rv : $rv[0];