X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=stage2%2Fbootscripts%2Fifdown;h=3634b36de1396368266abd792ac45287d66d871b;hb=085c7444d60ccd8512e49df7dfa6410934b86510;hp=cc0951a921cf3f7e9d5d693fd35cda8bfba249a6;hpb=16cc35ba4890382ee9368a176e4f5a7fa773b7a6;p=hvlinux.git diff --git a/stage2/bootscripts/ifdown b/stage2/bootscripts/ifdown index cc0951a..3634b36 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,22 @@ 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 + echo "Stopping wpa_supplicant" + 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 +64,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."