IPv6 support, status module support for hosts with no port
authorJamie Cameron <jcameron@webmin.com>
Tue, 2 Nov 2010 05:50:16 +0000 (22:50 -0700)
committerJamie Cameron <jcameron@webmin.com>
Tue, 2 Nov 2010 05:50:16 +0000 (22:50 -0700)
servers/edit_serv.cgi
servers/index.cgi
servers/lang/en
servers/save_auto.cgi
servers/save_serv.cgi
syslog-ng/save_destination.cgi

index 727203a..4eff836 100755 (executable)
@@ -27,8 +27,15 @@ print &ui_table_start($text{'edit_details'}, undef, 2);
 print &ui_table_row($text{'edit_host'},
                    &ui_textbox("host", $s->{'host'}, 60));
 
-print &ui_table_row($text{'edit_port'},
-                   &ui_textbox("port", $s->{'port'}, 5));
+if ($in{'new'} || $s->{'port'}) {
+       print &ui_table_row($text{'edit_port'},
+                           &ui_textbox("port", $s->{'port'}, 5));
+       }
+else {
+       print &ui_table_row($text{'edit_port'},
+                           &ui_opt_textbox("port", $s->{'port'}, 5,
+                                           $text{'edit_portnone'}));
+       }
 
 if ($s->{'realhost'}) {
        print &ui_table_row($text{'edit_realhost'},
index d131dfd..ecf2e62 100755 (executable)
@@ -33,10 +33,11 @@ if (@servers && $config{'display_mode'}) {
                local @cols;
                local $table =
                        "<table cellpadding=0 cellspacing=0 width=100%><tr>\n";
-               if (!$access{'links'}) {
+               if (!$access{'links'} || !$s->{'port'}) {
                        $table .= "<td>\n";
                        $table .= ($s->{'realhost'} || $s->{'host'});
-                       $table .= ":$s->{'port'}</td>\n";
+                       $table .= ":$s->{'port'}" if ($s->{'port'});
+                       $table .= "</td>\n";
                        }
                else {
                        if ($s->{'user'} || $s->{'autouser'}) {
index ff10205..3500974 100644 (file)
@@ -26,6 +26,7 @@ edit_details=Server details
 edit_host=Hostname or IP address
 edit_realhost=Real hostname
 edit_port=Port
+edit_portnone=None set
 edit_type=Server type
 edit_ssl=SSL server?
 edit_link=Link type
@@ -58,6 +59,7 @@ save_err=Failed to save server
 save_ehost=Missing or invalid hostname
 save_ehost2=Host does not exist
 save_eport=Missing or invalid port
+save_eport2=A port must be given if a link type with a login is selected
 save_euser=Missing username
 save_epass=Missing password
 save_egroup=Missing group name
index b216dc3..efd5241 100755 (executable)
@@ -41,7 +41,8 @@ if ($in{'sched'}) {
        $config{'auto_self'} = $in{'self'};
        $in{'email_def'} || $in{'email'} =~ /\S/ ||&error($text{'auto_eemail'});
        $config{'auto_email'} = $in{'email_def'} ? undef : $in{'email'};
-       $in{'smtp_def'} || gethostbyname($in{'smtp'}) ||
+       $in{'smtp_def'} || &to_ipaddress($in{'smtp'}) ||
+           &to_ip6address($in{'smtp'}) ||
                &error($text{'auto_esmtp'});
        $config{'auto_smtp'} = $in{'smtp_def'} ? undef : $in{'smtp'};
        &save_module_config();
index 8f0a159..9e792a1 100755 (executable)
@@ -24,9 +24,15 @@ if ($in{'delete'}) {
 else {
        # validate inputs
        $in{'host'} =~ /^\S+$/ || &error($text{'save_ehost'});
-       $in{'port'} =~ /^\d+$/ || &error($text{'save_eport'});
+       if ($in{'port_def'}) {
+               $in{'mode'} == 0 || &error($text{'save_eport2'});
+               }
+       else {
+               $in{'port'} =~ /^\d+$/ || &error($text{'save_eport'});
+               }
        if ($in{'mode'} == 1) {
-               gethostbyname($in{'host'}) || &error($text{'save_ehost2'});
+               &to_ipaddress($in{'host'}) || &to_ip6address($in{'host'}) ||
+                       &error($text{'save_ehost2'});
                $in{'wuser'} =~ /\S/ || &error($text{'save_euser'});
                $in{'wpass'} =~ /\S/ || &error($text{'save_epass'});
                }
@@ -78,7 +84,7 @@ else {
                push(@groups, $in{'newgroup'});
                }
        $serv->{'host'} = $in{'host'};
-       $serv->{'port'} = $in{'port'};
+       $serv->{'port'} = $in{'port_def'} ? undef : $in{'port'};
        $serv->{'type'} = $in{'type'};
        $serv->{'ssl'} = $in{'ssl'};
        $serv->{'desc'} = $in{'desc_def'} ? undef : $in{'desc'};
index 2eeb135..4d56c8b 100755 (executable)
@@ -131,7 +131,8 @@ else {
                $net = { 'name' => $in{'net_proto'},
                         'type' => 0,
                         'values' => [ $in{'net_host'} ] };
-               gethostbyname($in{'net_host'}) ||
+               &to_ipaddress($in{'net_host'}) ||
+                   &to_ip6address($in{'net_host'}) ||
                        &error($text{'destination_enet_host'});
                &save_directive($conf, $dest, undef, $net, 1);