diff options
Diffstat (limited to 'sysconfig/network-scripts')
-rwxr-xr-x | sysconfig/network-scripts/ifdown-post | 10 | ||||
-rwxr-xr-x | sysconfig/network-scripts/ifdown-routes | 26 | ||||
-rwxr-xr-x | sysconfig/network-scripts/ifup-routes | 17 |
3 files changed, 53 insertions, 0 deletions
diff --git a/sysconfig/network-scripts/ifdown-post b/sysconfig/network-scripts/ifdown-post index 87f28a16..ed0dd67c 100755 --- a/sysconfig/network-scripts/ifdown-post +++ b/sysconfig/network-scripts/ifdown-post @@ -5,9 +5,19 @@ cd /etc/sysconfig/network-scripts . network-functions +unset REALDEVICE +if [ "$1" = --realdevice ] ; then + REALDEVICE=$2 + shift 2 +fi + CONFIG=$1 source_config +[ -z "$REALDEVICE" ] && REALDEVICE=$DEVICE + +/etc/sysconfig/network-scripts/ifdown-routes ${REALDEVICE} ${DEVNAME} + if [ "$PEERDNS" != "no" -o -n "$RESOLV_MODS" -a "$RESOLV_MODS" != "no" ]; then if [ -f /etc/resolv.conf.save ]; then change_resolv_conf /etc/resolv.conf.save diff --git a/sysconfig/network-scripts/ifdown-routes b/sysconfig/network-scripts/ifdown-routes new file mode 100755 index 00000000..fef0ec3b --- /dev/null +++ b/sysconfig/network-scripts/ifdown-routes @@ -0,0 +1,26 @@ +#! /bin/bash +# +# Drops static routes which go through device $1 +if [ -z "$1" ]; then + echo $"usage: ifup-routes <net-device> [<nickname>]" + exit 1 +fi + +# The routes are actually dropped just by setting the link down, so nothing +# needs to be done + +# Routing rules +FILES="/etc/sysconfig/network-scripts/rule-$1" +if [ -n "$2" -a "$2" != "$1" ]; then + FILES="$FILES /etc/sysconfig/network-scripts/rule-$2" +fi + +for file in $FILES; do + if [ -f "$file" ]; then + { cat "$file" ; echo ; } | while read line; do + if [[ ! "$line" =~ '^[[:space:]]*(\#.*)?$' ]]; then + /sbin/ip rule del $line + fi + done + fi +done diff --git a/sysconfig/network-scripts/ifup-routes b/sysconfig/network-scripts/ifup-routes index cd5ba7fd..f6a228ae 100755 --- a/sysconfig/network-scripts/ifup-routes +++ b/sysconfig/network-scripts/ifup-routes @@ -47,3 +47,20 @@ done NICK=${2:-$1} CONFIG="/etc/sysconfig/network-scripts/$NICK.route" [ -f $CONFIG ] && handle_file $CONFIG $1 + + +# Routing rules +FILES="/etc/sysconfig/network-scripts/rule-$1" +if [ -n "$2" -a "$2" != "$1" ]; then + FILES="$FILES /etc/sysconfig/network-scripts/rule-$2" +fi + +for file in $FILES; do + if [ -f "$file" ]; then + { cat "$file" ; echo ; } | while read line; do + if [[ ! "$line" =~ '^[[:space:]]*(\#.*)?$' ]]; then + /sbin/ip rule add $line + fi + done + fi +done |