X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=stage2%2Fbootscripts%2Fnetwork;h=66039c40d0357fce19daabf86ee0b28ea356f8e9;hb=6039efc819b29ad7fa890c95fda918c57ebe475c;hp=f42ea1fd700a35daade256ca5d7e779c126f8a45;hpb=7f1a3e5d69d0b1d64619604c30243e0070dc09ad;p=hvlinux.git diff --git a/stage2/bootscripts/network b/stage2/bootscripts/network index f42ea1f..66039c4 100755 --- a/stage2/bootscripts/network +++ b/stage2/bootscripts/network @@ -23,36 +23,85 @@ fi CWD=`pwd` cd /etc/sysconfig/network +clean_network_up_indication() +{ + if [ -f "${NETWORKING_UP_FILE}" ]; then + rm "${NETWORKING_UP_FILE}" + fi +} + +network_start() +{ + NUMBER_OF_IF_STARTED=0 + NUMBER_OF_IF_TO_START=$(echo ${INTERFACES} | wc -w) + + for i in ${INTERFACES}; do + if LANG=C egrep -q -L "^ONBOOT=\"?[Yy][Ee][Ss]\"?" ifconfig.$i ; then + local STR="Ethernet Adapter <$i> init" + local CMD="/etc/rc.d/init.d/ifup $i" + + if [ x"${BACKGROUND_START}" == xyes ]; then + cmd_run_log ${CMD} + else + cmd_run_log_box_warn "${STR}" ${CMD} + fi + + if [ ${?} -eq 0 ]; then + NUMBER_OF_IF_STARTED=$((NUMBER_OF_IF_STARTED + 1)) + fi + fi + done + + if [ "x${NUMBER_OF_IF_STARTED}" == "x${NUMBER_OF_IF_TO_START}" ]; then + # Signal to other scripts that all network interfaces have been + # started (especially usefull to prevent mountnetfs bootscript to + # blovk forever) + touch "${NETWORKING_UP_FILE}" + fi +} + +network_stop() +{ + for i in ${INTERFACES} ; do + if LC_ALL= LANG= ip link show dev $i 2> /dev/null | grep -q "UP"; + then + cmd_run_log_box_warn "Ethernet Adapter <$i> stop" \ + /etc/rc.d/init.d/ifdown "$i" + fi + done + + ip route flush all +} + # See how we were called. case "$1" in start) - for i in ${INTERFACES_UP}; do - if LANG=C egrep -L "^ONBOOT=\"?[Yy][Ee][Ss]\"?" ifconfig.$i >/dev/null 2>&1 ; then - cmd_run_log_box "Ethernet Adapter <$i> init" /etc/rc.d/init.d/ifup "$i" - fi - done + clean_network_up_indication + + if [ x"${BACKGROUND_START}" == xyes ]; then + network_start & + else + network_start + fi ;; - + stop) - for i in ${INTERFACES_DN} ; do - if LC_ALL= LANG= ip link show dev $i 2> /dev/null | grep -q "UP" >/dev/null 2>&1 ; then - cmd_run_log_box "Ethernet Adapter <$i> stop" /etc/rc.d/init.d/ifdown "$i" - fi - done + clean_network_up_indication + network_stop ;; - + restart) cd $CWD $0 stop $0 start ;; - + status) echo "Active devices:" /sbin/ip -oneline addr show up | grep inet \ | sed 's/\(^.*\): \([a-zA-Z0-9]*\) *inet \([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*/ \2 (\3)/' ;; - + *) echo $"Usage: $0 {start|stop|restart|status}" exit ${EXIT_CODE_FAILURE}