IPv6 support in telnet, SSH and vnc modules
authorJamie Cameron <jcameron@webmin.com>
Sun, 31 Oct 2010 07:47:59 +0000 (00:47 -0700)
committerJamie Cameron <jcameron@webmin.com>
Sun, 31 Oct 2010 07:47:59 +0000 (00:47 -0700)
bandwidth/index.cgi
ssh2/index.cgi
telnet/index.cgi
vnc/index.cgi
zones/create_form.cgi

index 5d97a9c..f6ed8f6 100755 (executable)
@@ -259,8 +259,7 @@ if ($in{'by'}) {
                        # Resolv the hostname
                        local $resolved;
                        if ($in{'resolv'} && $in{'by'} eq 'host') {
-                               $resolved = gethostbyaddr(inet_aton($host),
-                                                         AF_INET);
+                               $resolved = &to_hostname($host);
                                }
 
                        # Skip traffic to high ports, if requested
index ff74047..67e9556 100755 (executable)
@@ -18,17 +18,18 @@ else {
        $addr = $config{'host'} ? $config{'host'} :
                $ENV{'SERVER_NAME'} ? $ENV{'SERVER_NAME'} :
                                      &to_ipaddress(&get_system_hostname());
+       $ip = &to_ipaddress($addr) || &to_ip6address($addr);
        $port = $config{'port'} ? $config{'port'} : 22;
-       if (inet_aton($addr)) {
-               socket(STEST, PF_INET, SOCK_STREAM, getprotobyname("tcp"));
+       if ($ip) {
                $SIG{ALRM} = "connect_timeout";
                alarm(10);
-               $rv = connect(STEST, pack_sockaddr_in($port, inet_aton($addr)));
+               &open_socket($ip, $port, STEST, \$err);
                close(STEST);
+               $rv = !$err;
                }
        }
 if (!$rv) {
-       if (inet_aton($addr)) {
+       if ($ip) {
                print "<p>",&text('index_esocket2', $addr, $port),"<p>\n";
                }
        else {
index ea2b8ee..3643ccf 100755 (executable)
@@ -27,17 +27,18 @@ if ($config{'no_test'}) {
        }
 else {
        # Check if the telnet server is running
-       if (inet_aton($addr)) {
-               socket(STEST, PF_INET, SOCK_STREAM, getprotobyname("tcp"));
+       $ip = &to_ipaddress($addr) || &to_ip6address($addr);
+       if ($ip) {
                $SIG{ALRM} = "connect_timeout";
                alarm(10);
-               $rv = connect(STEST, pack_sockaddr_in($port, inet_aton($addr)));
+               &open_socket($ip, $port, STEST, \$err);
                close(STEST);
+               $rv = !$err;
                }
        }
 if (!$rv) {
        # Not running! Show an error
-       if (inet_aton($addr)) {
+       if ($ip) {
                print "<p>",&text(
                        $config{'mode'} ? 'index_esocket2' : 'index_esocket',
                        $addr, $port),"<p>\n";
index 3abb36e..373e036 100755 (executable)
@@ -54,12 +54,11 @@ else {
        $addr = $config{'host'} ? $config{'host'} :
                $ENV{'SERVER_NAME'} ? $ENV{'SERVER_NAME'} :
                                      &to_ipaddress(&get_system_hostname());
-       socket(STEST, PF_INET, SOCK_STREAM, getprotobyname("tcp"));
-       $SIG{ALRM} = \&connect_timeout;
+       $SIG{ALRM} = "connect_timeout";
        alarm(10);
-       $rv = connect(STEST, pack_sockaddr_in($config{'port'}, inet_aton($addr)));
+       &open_socket($addr, $port, STEST, \$err);
        close(STEST);
-       $rv || &error_exit(&text('index_esocket', $addr, $config{'port'}));
+       $err && &error_exit(&text('index_esocket', $addr, $config{'port'}));
        $port = $config{'port'};
        }
 
index 9b289b2..8155315 100755 (executable)
@@ -92,7 +92,7 @@ print &ui_table_row($text{'create_domain'},
                    &ui_textbox("domain", $domain, 20));
 
 if ($resolv eq "dns") {
-       @servers = map { gethostbyaddr(inet_aton($_), AF_INET) || $_ }
+       @servers = map { &to_hostname($_) || $_ }
                         @{$dns->{'nameserver'}};
        $server = join(" ", @servers);
        }