From 712c6dc9f51161f12f5fc6469302a6bb9b371e65 Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Tue, 4 Sep 2001 04:02:07 +0000 Subject: fix severe alias handling breakage (#52882) --- sysconfig/network-scripts/ifdown | 7 +++++-- 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 -- cgit v1.2.1