Fix -m owner problem; more implementation of '

optional'

git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@5995 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
This commit is contained in:
teastep 2007-04-18 15:43:04 +00:00
parent 051d78a8cc
commit 6fce3afc57

View File

@ -1041,8 +1041,9 @@ sub get_interface_address ( $ ) {
my ( $interface ) = $_[0];
my $variable = interface_address( $interface );
my $function = interface_is_optional( $interface ) ? 'find_first_interface_address_if_any' : 'find_first_interface_address';
$interfaceaddr{$interface} = "$variable=\$(find_first_interface_address $interface)";
$interfaceaddr{$interface} = "$variable=\$($function $interface)";
"\$$variable";
}
@ -1062,9 +1063,13 @@ sub get_interface_addresses ( $ ) {
my $variable = interface_addresses( $interface );
$interfaceaddr{$interface} = qq($variable=\$(get_interface_addresses $interface)
if ( interface_is_optional $interface ) {
$interfaceaddrs{$interface} = qq($variable=\$(get_interface_addresses $interface)\n);
} else {
$interfaceaddrs{$interface} = qq($variable=\$(get_interface_addresses $interface)
[ -n "\$$variable" ] || fatal_error "Unable to determine the IP address(es) of $interface"
);
}
"\$$variable";
}
@ -1084,9 +1089,13 @@ sub get_interface_nets ( $ ) {
my $variable = interface_nets( $interface );
if ( interface_is_optional $interface ) {
$interfaceaddr{$interface} = qq($variable=\$(get_routed_networks $interface)\n);
} else {
$interfaceaddr{$interface} = qq($variable=\$(get_routed_networks $interface)
[ -n "\$$variable" ] || fatal_error "Unable to determine the routes through interface \\"$interface\\""
);
}
"\$$variable";