aboutsummaryrefslogtreecommitdiffstats
path: root/sysconfig
diff options
context:
space:
mode:
authorMiloslav Trmac <mitr@volny.cz>2006-07-10 22:12:21 +0000
committerMiloslav Trmac <mitr@volny.cz>2006-07-10 22:12:21 +0000
commit7fc66d23058e8b3bac2a89c424c559eba3bff9c5 (patch)
tree36ce046fee43a0e1cb3d6bb030870b4b6ec30f11 /sysconfig
parent7bd8582fe391bcee3e4babb36daf265728e59526 (diff)
downloadinitscripts-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-xsysconfig/network-scripts/ifdown-post10
-rwxr-xr-xsysconfig/network-scripts/ifdown-routes26
-rwxr-xr-xsysconfig/network-scripts/ifup-routes17
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