diff options
Diffstat (limited to 'network-scripts/ifdown-routes')
-rwxr-xr-x | network-scripts/ifdown-routes | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/network-scripts/ifdown-routes b/network-scripts/ifdown-routes new file mode 100755 index 00000000..1d1549dc --- /dev/null +++ b/network-scripts/ifdown-routes @@ -0,0 +1,33 @@ +#! /bin/bash +# +# Drops static routes which go through device $1 + +if [ -z "$1" ]; then + echo $"usage: ifdown-routes <net-device> [<nickname>]" + exit 1 +fi + +# The routes are actually dropped just by setting the link down, so nothing +# needs to be done + +MATCH='^[[:space:]]*(\#.*)?$' + +# Routing rules +FILES="/etc/sysconfig/network-scripts/rule-$1 /etc/sysconfig/network-scripts/rule6-$1" +if [ -n "$2" -a "$2" != "$1" ]; then + FILES="$FILES /etc/sysconfig/network-scripts/rule-$2 /etc/sysconfig/network-scripts/rule6-$2" +fi + +for file in $FILES; do + if [ -f "$file" ]; then + proto= + if [ "$file" != "${file##*/rule6-}" ]; then + proto="-6" + fi + { cat "$file" ; echo ; } | while read line; do + if [[ ! "$line" =~ $MATCH ]]; then + /sbin/ip $proto rule del $line + fi + done + fi +done |