Quanah,
> >> This patch results in an non-working Net::Server object for me.
> >> Specifically because of line 790:
> I also am hitting this problem with similar code created by this patch:
>
> SSLEAY.pm: $pfamily = $afamily == AF_INET ? PF_INET
> SSLEAY.pm: : $afamily == AF_INET6 ? PF_INET6 : $afamily;
> SSL.pm: $pfamily = $afamily == AF_INET ? PF_INET
> SSL.pm: : $afamily == AF_INET6 ? PF_INET6 : $afamily;
> TCP.pm: $pfamily = $afamily == AF_INET ? PF_INET
> TCP.pm: : $afamily == AF_INET6 ? PF_INET6 : $afamily;
>
> These blocks all generate the runaway string error. It is seen
> consistently on SLES10 64-bit and Ubuntu 10 64-bit systems. Other
> operating systems we use don't report this error for whatever reason.
Puzzling - no idea.
> I'm currently re-writing this as a 3-part if statement, when I'm finished
> I'll email out my finalized patch.
Thanks!
Attached is a small additional fix over my original patch.
Please include it too in the finalized patch.
Mark
--- Net/Server/Proto/TCP.pm~ 2011-05-19 20:13:47.000000000 +0200
+++ Net/Server/Proto/TCP.pm 2011-06-08 18:11:54.000000000 +0200
@@ -78,6 +78,6 @@
}else{ # we do have IO::Socket::INET6, it handles inet6 as well as inet
# obtain a list of IP addresses for $host, resolve port name
- my @res1 = getaddrinfo($host, $port,
- AF_UNSPEC, SOCK_STREAM, 0, AI_PASSIVE);
+ my @res1 = getaddrinfo($host, $port, AF_UNSPEC, SOCK_STREAM, 0,
+ AI_PASSIVE|AI_ADDRCONFIG);
die "Unresolvable [$host]:$port: $res1[0]" if @res1 < 5;
while (@res1 >= 5) {
--- Net/Server/Proto/SSL.pm~ 2011-05-19 20:13:47.000000000 +0200
+++ Net/Server/Proto/SSL.pm 2011-06-08 18:12:06.000000000 +0200
@@ -104,6 +104,6 @@
}else{ # we do have IO::Socket::INET6, it handles inet6 as well as inet
# obtain a list of IP addresses for $host, resolve port name
- my @res1 = getaddrinfo($host, $port,
- AF_UNSPEC, SOCK_STREAM, 0, AI_PASSIVE);
+ my @res1 = getaddrinfo($host, $port, AF_UNSPEC, SOCK_STREAM, 0,
+ AI_PASSIVE|AI_ADDRCONFIG);
die "Unresolvable [$host]:$port: $res1[0]" if @res1 < 5;
while (@res1 >= 5) {
--- Net/Server/Proto/SSLEAY.pm~ 2011-05-19 20:13:47.000000000 +0200
+++ Net/Server/Proto/SSLEAY.pm 2011-06-08 18:12:38.000000000 +0200
@@ -102,6 +102,6 @@
}else{ # we do have IO::Socket::INET6, it handles inet6 as well as inet
# obtain a list of IP addresses for $host, resolve port name
- my @res1 = getaddrinfo($host, $port,
- AF_UNSPEC, SOCK_STREAM, 0, AI_PASSIVE);
+ my @res1 = getaddrinfo($host, $port, AF_UNSPEC, SOCK_STREAM, 0,
+ AI_PASSIVE|AI_ADDRCONFIG);
die "Unresolvable [$host]:$port: $res1[0]" if @res1 < 5;
while (@res1 >= 5) {