diff options
author | Bill Nottingham <notting@redhat.com> | 2001-09-04 04:02:07 +0000 |
---|---|---|
committer | Bill Nottingham <notting@redhat.com> | 2001-09-04 04:02:07 +0000 |
commit | 712c6dc9f51161f12f5fc6469302a6bb9b371e65 (patch) | |
tree | 74f27d976140db945b9266361ef89a67118c2f80 /sysconfig/network-scripts | |
parent | 6107f6863630a0e4f41e10fea015637a93a18b22 (diff) | |
download | initscripts-712c6dc9f51161f12f5fc6469302a6bb9b371e65.tar initscripts-712c6dc9f51161f12f5fc6469302a6bb9b371e65.tar.gz initscripts-712c6dc9f51161f12f5fc6469302a6bb9b371e65.tar.bz2 initscripts-712c6dc9f51161f12f5fc6469302a6bb9b371e65.tar.xz initscripts-712c6dc9f51161f12f5fc6469302a6bb9b371e65.zip |
fix severe alias handling breakage (#52882)
Diffstat (limited to 'sysconfig/network-scripts')
-rwxr-xr-x | sysconfig/network-scripts/ifdown | 7 | ||||
-rwxr-xr-x | sysconfig/network-scripts/ifup | 17 |
2 files changed, 17 insertions, 7 deletions
diff --git a/sysconfig/network-scripts/ifdown b/sysconfig/network-scripts/ifdown index f93d7958..c807c711 100755 --- a/sysconfig/network-scripts/ifdown +++ b/sysconfig/network-scripts/ifdown @@ -37,6 +37,7 @@ if [ -x /sbin/ifdown-pre-local ]; then fi DEVICETYPE=`echo $DEVICE | sed "s/[0-9]*$//"` +REALDEVICE=`echo ${DEVICE} | sed 's/:.*//g'` OTHERSCRIPT="/etc/sysconfig/network-scripts/ifdown-${DEVICETYPE}" if [ -x $OTHERSCRIPT ]; then @@ -82,10 +83,12 @@ if [ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then } else expand_config - ip addr del ${IPADDR}/${PREFIX} brd ${BROADCAST:-+} dev ${DEVICE} + ip addr del ${IPADDR}/${PREFIX} brd ${BROADCAST:-+} dev ${REALDEVICE} fi -ip link set ${DEVICE} down +if [ "${REALDEVICE}" = "${DEVICE}" ]; then + ip link set ${DEVICE} down +fi [ "$retcode" = "0" ] && retcode=$? # wait up to 5 seconds for device to actually come down... diff --git a/sysconfig/network-scripts/ifup b/sysconfig/network-scripts/ifup index 8e106ebc..e4fcf05f 100755 --- a/sysconfig/network-scripts/ifup +++ b/sysconfig/network-scripts/ifup @@ -213,17 +213,24 @@ else SCOPE= fi - if ! LC_ALL=C ip addr ls ${DEVICE} | grep -q "${IPADDR}/${PREFIX}" ; then - if ! ip addr add ${IPADDR}/${PREFIX} \ - brd ${BROADCAST:-+} dev ${DEVICE} ${SCOPE} ; then + if ! LC_ALL=C ip addr ls ${REALDEVICE} | grep -q "${IPADDR}/${PREFIX}" ; then + if [ "$ISALIAS" = "yes" ]; then + if ! ip addr add ${IPADDR}/${PREFIX} \ + brd ${BROADCAST:-+} dev ${REALDEVICE} ${SCOPE} label ${DEVICE}; then echo $"Error adding address ${IPADDR} for ${DEVICE}." + fi + else + if ! ip addr add ${IPADDR}/${PREFIX} \ + brd ${BROADCAST:-+} dev ${REALDEVICE} ${SCOPE} ; then + echo $"Error adding address ${IPADDR} for ${DEVICE}." + fi fi fi # update ARP cache of neighboring computers - arping -q -A -c 1 -I ${DEVICE} ${IPADDR} + arping -q -A -c 1 -I ${REALDEVICE} ${IPADDR} ( sleep 2; - arping -q -U -c 1 -I ${DEVICE} ${IPADDR} ) > /dev/null 2>&1 < /dev/null & + arping -q -U -c 1 -I ${REALDEVICE} ${IPADDR} ) > /dev/null 2>&1 < /dev/null & # Add a route for the subnet. Replace any existing route. if [ "${ISALIAS}" = no ]; then |