diff --git a/servers/edit_serv.cgi b/servers/edit_serv.cgi index 727203a2a..4eff8368a 100755 --- a/servers/edit_serv.cgi +++ b/servers/edit_serv.cgi @@ -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'}, diff --git a/servers/index.cgi b/servers/index.cgi index d131dfdb2..ecf2e6240 100755 --- a/servers/index.cgi +++ b/servers/index.cgi @@ -33,10 +33,11 @@ if (@servers && $config{'display_mode'}) { local @cols; local $table = "
| \n"; $table .= ($s->{'realhost'} || $s->{'host'}); - $table .= ":$s->{'port'} | \n"; + $table .= ":$s->{'port'}" if ($s->{'port'}); + $table .= "\n"; } else { if ($s->{'user'} || $s->{'autouser'}) { diff --git a/servers/lang/en b/servers/lang/en index ff102058f..3500974f8 100644 --- a/servers/lang/en +++ b/servers/lang/en @@ -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 diff --git a/servers/save_auto.cgi b/servers/save_auto.cgi index b216dc348..efd52419b 100755 --- a/servers/save_auto.cgi +++ b/servers/save_auto.cgi @@ -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(); diff --git a/servers/save_serv.cgi b/servers/save_serv.cgi index 8f0a159a1..9e792a113 100755 --- a/servers/save_serv.cgi +++ b/servers/save_serv.cgi @@ -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'}; diff --git a/syslog-ng/save_destination.cgi b/syslog-ng/save_destination.cgi index 2eeb13542..4d56c8bcd 100755 --- a/syslog-ng/save_destination.cgi +++ b/syslog-ng/save_destination.cgi @@ -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);