diff options
Diffstat (limited to 'sysconfig/network-scripts/ifdown-aliases')
-rwxr-xr-x | sysconfig/network-scripts/ifdown-aliases | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/sysconfig/network-scripts/ifdown-aliases b/sysconfig/network-scripts/ifdown-aliases new file mode 100755 index 00000000..6334d2f5 --- /dev/null +++ b/sysconfig/network-scripts/ifdown-aliases @@ -0,0 +1,28 @@ +#!/bin/sh + +# removes aliases of device $1 + +device=$1 +if [ "$device" = "" ]; then + echo "usage: $0 <net-device>" + exit 1 +fi + +parent_device=$device + +. network-functions + +# This is the same messy sed script as in the ifup-aliases script. +eval ` ifconfig | sed -e ' /^[^[:space:]]*:[0-9]*/ { s|^\([^:]*\):\([0-9]*\).*$|X=x; TMP="\2"; [ "$device" != "\1" ] \|\| |g; b; }; /^[^[:space:]]/ { s|.*|X=x; [ 0 = 0 ] \|\| |g; b; }; /inet addr:[0-9]*\.[0-9]*\.[0-9]*\.[0-9]* *Bcast:[0-9.]* *Mask:[0-9.]*/ { s|^.*inet addr:\(\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)\) *Bcast:\([0-9.]*\) *Mask:\([0-9.]*\).*$|eval " rdev_${TMP}_addr=\1; rdev_${TMP}_mb=\7_\6; rdevip_\2_\3_\4_\5=${TMP}; rdev_LIST=\\\\"\\\\$rdev_LIST \\\\${TMP}\\\\"; " \|\| |g; b; }; s|^.*$||g; ' ` X=x; + +for DEVNUM in $rdev_LIST ; do + ifconfig $parent_device:$DEVNUM down + do_netreport=yes +done + +# notify programs that have requested notification, if we changed anything +if [ -n "$do_netreport" ]; then + do_netreport +fi + + |