Further IPv6 inetd fix
authorJamie Cameron <jcameron@webmin.com>
Fri, 13 May 2011 05:27:14 +0000 (22:27 -0700)
committerJamie Cameron <jcameron@webmin.com>
Fri, 13 May 2011 05:27:14 +0000 (22:27 -0700)
https://sourceforge.net/tracker/?func=detail&atid=117457&aid=3300507&group_id=17457

miniserv.pl

index 03bf1b8..98c7aff 100755 (executable)
@@ -421,14 +421,15 @@ if ($config{'inetd'}) {
                }
 
        # Work out the hostname for this web server
-       $host = &get_socket_name(SOCK, 0);
+       local $sn = getsockname(SOCK);
+       $ipv6 = length($sn) > 16;
+       $host = &get_socket_name(SOCK, $ipv6);
        $host || exit;
        $port = $config{'port'};
        $acptaddr = getpeername(SOCK);
        $acptaddr || exit;
 
        # Work out remote and local IPs
-       $ipv6 = length($acptaddr) > 16;
        (undef, $peera, undef) = &get_address_ip($acptaddr, $ipv6);
        (undef, $locala) = &get_socket_ip(SOCK, $ipv6);