X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=stage2%2Fbootscripts%2Fifdown;h=a6fabf994b52a163539f2d3f9c7c2024c4128a18;hb=e8cc14e96c051666130d201fa5c60291a881e008;hp=cc0951a921cf3f7e9d5d693fd35cda8bfba249a6;hpb=16cc35ba4890382ee9368a176e4f5a7fa773b7a6;p=hvlinux.git diff --git a/stage2/bootscripts/ifdown b/stage2/bootscripts/ifdown index cc0951a..a6fabf9 100755 --- a/stage2/bootscripts/ifdown +++ b/stage2/bootscripts/ifdown @@ -23,9 +23,14 @@ check_brctl() fi } -if [ "$BOOTPROTO" == "dhcp" ]; then - # DHCP configuration +# First make sure interface is available +if ! ip link show ${DEVICE} 1> /dev/null 2>&1 ; then + echo "Interface ${DEVICE} not available" + exit ${EXIT_CODE_WARNING} +fi +if [ "x${BOOTPROTO}" = "xdhcp" -o "x${BOOTPROTO}" = "xwifi" ]; then + # DHCP configuration # Load DHCP client parameters source /etc/sysconfig/network/dhcp-client @@ -36,17 +41,21 @@ if [ "$BOOTPROTO" == "dhcp" ]; then cmd_run_log ${DHCP_PROG} ${DHCP_STOP} ${DEVICE} || exit ${EXIT_CODE_FAILURE} elif [ x${BOOTPROTO} = "xstatic" ]; then # Static configuration - cmd_run_log ip addr flush ${DEVICE} && - cmd_run_log ip link set ${DEVICE} down || exit ${EXIT_CODE_FAILURE} + cmd_run_log ip addr flush ${DEVICE} || exit ${EXIT_CODE_FAILURE} elif [ x${BOOTPROTO} = "xpppoe" ]; then # PPPoE configuration cmd_run_log pppoe-stop - cmd_run_log ip addr flush ${DEVICE} && - cmd_run_log ip link set ${DEVICE} down || exit ${EXIT_CODE_FAILURE} + cmd_run_log ip addr flush ${DEVICE} || exit ${EXIT_CODE_FAILURE} else exit 1 fi +if [ "x${BOOTPROTO}" = "xwifi" ]; then + killall wpa_supplicant +fi + +cmd_run_log ip link set ${DEVICE} down || exit ${EXIT_CODE_FAILURE} + # Determining if the interface is part of a bridge: if [ -n "${BRIDGE_TO}" ]; then check_brctl @@ -54,7 +63,7 @@ if [ -n "${BRIDGE_TO}" ]; then fi # Determining if the interface is a bridge: -if [ "x${BRIDGE}" == "xyes" ]; then +if [ "x${BRIDGE}" = "xyes" ]; then # Check that the brctl program is present and executable. if [ ! -x ${BRCTL} ]; then msg_log "*** ERROR: /usr/sbin/brctl not found."