aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Nottingham <notting@redhat.com>2003-09-04 03:16:19 +0000
committerBill Nottingham <notting@redhat.com>2003-09-04 03:16:19 +0000
commit5e9dd516e2e0b1634114a9df4c0dd297c140116f (patch)
treed0259187ab4f41de315cda22140d35e9fc756bac
parentb70b029e71dd36de95b8d424e68f96efec7eb408 (diff)
downloadinitscripts-5e9dd516e2e0b1634114a9df4c0dd297c140116f.tar
initscripts-5e9dd516e2e0b1634114a9df4c0dd297c140116f.tar.gz
initscripts-5e9dd516e2e0b1634114a9df4c0dd297c140116f.tar.bz2
initscripts-5e9dd516e2e0b1634114a9df4c0dd297c140116f.tar.xz
initscripts-5e9dd516e2e0b1634114a9df4c0dd297c140116f.zip
add bonding & xDSL to the list of devices brought up afterwards (#97030,#91399)
and bring them down first (#103042)
-rwxr-xr-xrc.d/init.d/network51
1 files changed, 48 insertions, 3 deletions
diff --git a/rc.d/init.d/network b/rc.d/init.d/network
index 0c0e2894..612238ce 100755
--- a/rc.d/init.d/network
+++ b/rc.d/init.d/network
@@ -96,17 +96,29 @@ case "$1" in
awk '{ print $3 }' 2>/dev/null`
sysctl -w kernel.hotplug="/bin/true" > /dev/null 2>&1
- cipeinterfaces=""
+ cipeinterfaces=""
+ bondinterfaces=""
+ xdslinterfaces=""
# bring up all other interfaces configured to come up at boot time
for i in $interfaces; do
eval $(LANG=C fgrep "DEVICE=" ifcfg-$i)
+ eval $(LANG=C fgrep "TYPE=" ifcfg-$i)
if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi
if [ "${DEVICE##cipcb}" != "$DEVICE" ] ; then
cipeinterfaces="$cipeinterfaces $DEVICE"
continue
fi
+ if [ "${DEVICE##bond}" != "$DEVICE" ] ; then
+ bondinterfaces="$bondinterfaces $DEVICE"
+ continue
+ fi
+ if [ "$TYPE" = "xDSL" ]; then
+ xdslinterfaces="$xdslinterfaces $DEVICE"
+ continue
+ fi
+
if LANG=C egrep -L "^ONBOOT=['\"]?[Nn][Oo]['\"]?" ifcfg-$i > /dev/null ; then
# this loads the module, to preserve ordering
is_available $i
@@ -120,8 +132,8 @@ case "$1" in
action $"Bringing up interface $i: " ./ifup $i boot
done
- # Bring up CIPE VPN interfaces
- for i in $cipeinterfaces ; do
+ # Bring up xDSL, CIPE, and bonding interfaces
+ for i in $xdslinterfaces $cipeinterfaces $bondinterfaces ; do
if ! LANG=C egrep -L "^ONBOOT=['\"]?[Nn][Oo]['\"]?" ifcfg-$i >/dev/null 2>&1 ; then
# If we're in confirmation mode, get user confirmation.
if [ -f /var/run/confirm ]; then
@@ -172,6 +184,39 @@ case "$1" in
fi
fi
+ cipeinterfaces=""
+ bondinterfaces=""
+ xdslinterfaces=""
+
+ # get list of bonding, cipe, and xdsl interfaces
+ for i in $interfaces; do
+ eval $(LANG=C fgrep "DEVICE=" ifcfg-$i)
+ eval $(LANG=C fgrep "TYPE=" ifcfg-$i)
+ if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi
+
+ if [ "${DEVICE##cipcb}" != "$DEVICE" ] ; then
+ cipeinterfaces="$cipeinterfaces $DEVICE"
+ continue
+ fi
+ if [ "${DEVICE##bond}" != "$DEVICE" ] ; then
+ bondinterfaces="$bondinterfaces $DEVICE"
+ continue
+ fi
+ if [ "$TYPE" = "xDSL" ]; then
+ xdslinterfaces="$xdslinterfaces $DEVICE"
+ continue
+ fi
+ done
+
+ for i in $bondinterfaces $cipeinterfaces $xdslinterfaces ; do
+ eval $(fgrep "DEVICE=" ifcfg-$i)
+ if [ -z "$DEVICE" ] ; then DEVICE="$i"; fi
+
+ if ! check_device_down $i; then
+ action $"Shutting down interface $i: " ./ifdown $i boot
+ fi
+ done
+
# shut down all interfaces (other than loopback)
for i in $interfaces ; do
eval $(fgrep "DEVICE=" ifcfg-$i)