More work on 'detect' in ADDRESS

git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@4168 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
This commit is contained in:
teastep
2006-06-26 19:32:47 +00:00
parent 886efa758b
commit 0c8f630b85
4 changed files with 57 additions and 11 deletions

View File

@ -1114,7 +1114,7 @@ ip route show table $duplicate | while read net route; do
default|nexthop)
;;
*)
run_ip route add table $number \$net \$route"
run_ip route add table $number \$net \$route
;;
esac
done
@ -6391,16 +6391,28 @@ __EOF__
SAME:nodst:*)
target="SAME --nodst"
addresses=${addresses#SAME:nodst:}
for address in $(separate_list $addresses); do
addrlist="$addrlist --to $address";
done
if [ "$addresses" = detect ]; then
addrlist='$addrlist'
else
for address in $(separate_list $addresses); do
addrlist="$addrlist --to $address";
done
fi
;;
SAME:*)
target="SAME"
addresses=${addresses#SAME:}
for address in $(separate_list $addresses); do
addrlist="$addrlist --to $address";
done
if [ "$addresses" = detect ]; then
addrlist='$addrlist'
else
for address in $(separate_list $addresses); do
addrlist="$addrlist --to $address";
done
fi
;;
detect)
target=SNAT
addrlist='$addrlist'
;;
*)
for address in $(separate_list $addresses); do
@ -6417,7 +6429,22 @@ __EOF__
;;
esac
if [ -n "$add_snat_aliases" ]; then
if [ "$addrlist" = '$addrlist' ]; then
indent >&3 << __EOF__
addrlist=
addressses=\$(find_interface_addresses $interface)
if [ -n "\$addresses" ]; then
for address in \$addresses; do
addrlist="$addrlist --to-source $address"
done
else
fatal_error "Unable to determine the IP address(es) of $interface"
fi
__EOF__
elif [ -n "$add_snat_aliases" ]; then
for address in $(separate_list $addresses); do
address=${address%:)}
if [ -n "$address" ]; then
@ -6464,7 +6491,7 @@ __EOF__
__EOF__
done
if [ -n "$addresses" ]; then
if [ -n "$addresses" -a "$addresses" != detect ]; then
message=" To $destination $displayproto from \$network through ${interface} using $addresses"
else
message=" To $destination $displayproto from \$network through ${interface}"