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) {

Reply via email to