Fix IP checking function calls in net module

This commit is contained in:
Jamie Cameron
2010-10-30 21:36:11 -07:00
parent 7eae42d222
commit cbba0beaa2
10 changed files with 28 additions and 27 deletions

View File

@@ -250,8 +250,7 @@ return $_[0] =~ /^(dhcp|netmask)$/;
# Is some address valid for a bootup interface
sub valid_boot_address
{
return 1 if (&check_ipaddress($_[0]));
return gethostbyname($_[0]) ? 1 : 0;
return &to_ipaddress($_[0]) ? 1 : 0;
}
# get_dns_config()

View File

@@ -521,9 +521,10 @@ for($i=0; defined($dev = $in{"dev_$i"}); $i++) {
local $netmask = $in{"netmask_$i"};
local $gw = $in{"gw_$i"};
$dev =~ /^\S+$/ || &error(&text('routes_edevice', $dev));
gethostbyname($net) || &error(&text('routes_enet', $net));
&check_ipaddress_any($netmask) || &error(&text('routes_emask', $netmask));
gethostbyname($gw) || &error(&text('routes_egateway', $gw));
&to_ipaddress($net) || &error(&text('routes_enet', $net));
&check_ipaddress_any($netmask) ||
&error(&text('routes_emask', $netmask));
&to_ipaddress($gw) || &error(&text('routes_egateway', $gw));
local $prefix = &mask_to_prefix($netmask);
push(@{$st{$dev}}, [ "up", "ip route add $net/$prefix via $gw" ]);
}
@@ -533,9 +534,11 @@ for($i=0; defined($dev = $in{"ldev_$i"}); $i++) {
local $netmask = $in{"lnetmask_$i"};
next if (!$dev && !$net);
$dev =~ /^\S+$/ || &error(&text('routes_edevice', $dev));
gethostbyname($net) || $net =~ /^(\S+)\/(\d+)$/ && gethostbyname($1) ||
&to_ipaddress($net) ||
$net =~ /^(\S+)\/(\d+)$/ && &to_ipaddress("$1") ||
&error(&text('routes_enet', $net));
&check_ipaddress_any($netmask) || &error(&text('routes_emask', $netmask));
&check_ipaddress_any($netmask) ||
&error(&text('routes_emask', $netmask));
local $prefix = &mask_to_prefix($netmask);
push(@{$hr{$dev}}, [ "up", "ip route add $net/$prefix dev $dev" ]);
}

View File

@@ -194,7 +194,7 @@ else { delete($conf{'IPFORWARDING'}); }
local %ifcs = map { $_->{'fullname'}, 1 } &all_interfaces();
if (!$in{'gateway_def'}) {
gethostbyname($in{'gateway'}) ||
&to_ipaddress($in{'gateway'}) ||
&error(&text('routes_edefault', $in{'gateway'}));
$ifcs{$in{'gatewaydev'}} ||
&error(&text('routes_edevice', $in{'gatewaydev'}));

View File

@@ -428,7 +428,7 @@ local (%conf, @st, %sysctl, %st, @boot);
if (!$supports_dev_gateway) {
# Just update a single file
if ($in{'gateway_def'}) { delete($conf{'GATEWAY'}); }
elsif (!gethostbyname($in{'gateway'})) {
elsif (!&to_ipaddress($in{'gateway'})) {
&error(&text('routes_edefault', $in{'gateway'}));
}
else { $conf{'GATEWAY'} = $in{'gateway'}; }
@@ -483,9 +483,9 @@ for($i=0; defined($dev = $in{"dev_$i"}); $i++) {
next if (!$dev);
$net = $in{"net_$i"}; $netmask = $in{"netmask_$i"}; $gw = $in{"gw_$i"};
$dev =~ /^\S+$/ || &error(&text('routes_edevice', $dev));
gethostbyname($net) || &error(&text('routes_enet', $net));
&to_ipaddress($net) || &error(&text('routes_enet', $net));
&check_ipaddress($netmask) || &error(&text('routes_emask', $netmask));
gethostbyname($gw) || &error(&text('routes_egateway', $gw));
&to_ipaddress($gw) || &error(&text('routes_egateway', $gw));
if ($netmask eq "255.255.255.255") {
push(@st, "$dev host $net gw $gw\n");
}
@@ -498,7 +498,8 @@ for($i=0; defined($dev = $in{"ldev_$i"}); $i++) {
$net = $in{"lnet_$i"}; $netmask = $in{"lnetmask_$i"};
next if (!$dev && !$net);
$dev =~ /^\S+$/ || &error(&text('routes_edevice', $dev));
gethostbyname($net) || $net =~ /^(\S+)\/(\d+)$/ && gethostbyname($1) ||
&to_ipaddress($net) ||
$net =~ /^(\S+)\/(\d+)$/ && &to_ipaddress("$1") ||
&error(&text('routes_enet', $net));
&check_ipaddress($netmask) || &error(&text('routes_emask', $netmask));
if ($netmask eq "255.255.255.255") {

View File

@@ -186,8 +186,7 @@ return $_[0] eq "dhcp";
# Is some address valid for a bootup interface
sub valid_boot_address
{
return 1 if (&check_ipaddress($_[0]));
return gethostbyname($_[0]) ? 1 : 0;
return &to_ipaddress($_[0]) ? 1 : 0;
}
# get_dns_config()
@@ -386,8 +385,8 @@ print &ui_table_row($text{'routes_forward'},
sub parse_routing
{
local @defrt = split(/\s+/, $in{'defrt'});
foreach $d (@defrt) {
gethostbyname($d) || &error(&text('routes_edefault', $d));
foreach my $d (@defrt) {
&to_ipaddress($d) || &error(&text('routes_edefault', $d));
}
&lock_file("/etc/defaultrouter");
if (@defrt) {

View File

@@ -245,7 +245,7 @@ sub parse_routing
# Parse route inputs
local (@routes, $r, $i);
if (!$in{'gateway_def'}) {
gethostbyname($in{'gateway'}) ||
&to_ipaddress($in{'gateway'}) ||
&error(&text('routes_edefault', $in{'gateway'}));
local @def = ( "default", $in{'gateway'}, undef, undef );
if (!$in{'gatewaydev_def'}) {

View File

@@ -332,7 +332,7 @@ sub parse_routing
# Parse route inputs
local (@routes, $r, $i);
if (!$in{'gateway_def'}) {
gethostbyname($in{'gateway'}) ||
&to_ipaddress($in{'gateway'}) ||
&error(&text('routes_edefault', $in{'gateway'}));
local @def = ( "default", $in{'gateway'}, undef, undef );
if (!$in{'gatewaydev_def'}) {

View File

@@ -267,7 +267,7 @@ local $route = "# Generated by Webmin\n";
for($i=0; defined($dev = $in{"lr_dev_$i"}); $i++) {
$net = $in{"lr_net_$i"}; $mask = $in{"lr_mask_$i"};
next if (!$dev && !$net && !$mask);
gethostbyname($net) ||
&to_ipaddress($net) ||
&error(&text('routes_enet', $net));
&check_ipaddress($mask) ||
&error(&text('routes_emask', $mask));
@@ -276,16 +276,16 @@ for($i=0; defined($dev = $in{"lr_dev_$i"}); $i++) {
for($i=0; defined($gw = $in{"sr_gw_$i"}); $i++) {
$net = $in{"sr_net_$i"}; $mask = $in{"sr_mask_$i"};
next if (!$gw && !$net && !$mask);
gethostbyname($gw) ||
&to_ipaddress($gw) ||
&error(&text('routes_egateway', $gw));
gethostbyname($net) ||
&to_ipaddress($net) ||
&error(&text('routes_enet', $net));
&check_ipaddress($mask) ||
&error(&text('routes_emask', $mask));
$route .= "$net\t\t$gw\t\t$mask\n";
}
if (!$in{'default_def'}) {
gethostbyname($in{'default'}) ||
&to_ipaddress($in{'default'}) ||
&error(&text('routes_edefault', $in{'default'}));
$route .= "default\t\t$in{'default'}\n";
}

View File

@@ -210,7 +210,7 @@ sub parse_routing
# Parse route inputs
local (@routes, $r, $i);
if (!$in{'gateway_def'}) {
gethostbyname($in{'gateway'}) ||
&to_ipaddress($in{'gateway'}) ||
&error(&text('routes_edefault', $in{'gateway'}));
local @def = ( "default", $in{'gateway'}, undef, undef );
if (!$in{'gatewaydev_def'}) {

View File

@@ -194,8 +194,7 @@ return $_[0] eq "dhcp";
# Is some address valid for a bootup interface
sub valid_boot_address
{
return 1 if (&check_ipaddress($_[0]));
return gethostbyname($_[0]) ? 1 : 0;
return &to_ipaddress($_[0]) ? 1 : 0;
}
# get_dns_config()
@@ -370,8 +369,8 @@ print &ui_table_row($text{'routes_forward'},
sub parse_routing
{
local @defrt = split(/\s+/, $in{'defrt'});
foreach $d (@defrt) {
gethostbyname($d) || &error(&text('routes_edefault', $d));
foreach my $d (@defrt) {
&to_ipaddress($d) || &error(&text('routes_edefault', $d));
}
&lock_file("/etc/defaultrouter");
if (@defrt) {