diff options
author | Miloslav Trmac <mitr@volny.cz> | 2006-07-10 22:12:21 +0000 |
---|---|---|
committer | Miloslav Trmac <mitr@volny.cz> | 2006-07-10 22:12:21 +0000 |
commit | 7fc66d23058e8b3bac2a89c424c559eba3bff9c5 (patch) | |
tree | 36ce046fee43a0e1cb3d6bb030870b4b6ec30f11 /sysconfig | |
parent | 7bd8582fe391bcee3e4babb36daf265728e59526 (diff) | |
download | initscripts-7fc66d23058e8b3bac2a89c424c559eba3bff9c5.tar initscripts-7fc66d23058e8b3bac2a89c424c559eba3bff9c5.tar.gz initscripts-7fc66d23058e8b3bac2a89c424c559eba3bff9c5.tar.bz2 initscripts-7fc66d23058e8b3bac2a89c424c559eba3bff9c5.tar.xz initscripts-7fc66d23058e8b3bac2a89c424c559eba3bff9c5.zip |
Add support for rule-$device (#132252)
Diffstat (limited to 'sysconfig')
-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 |