Add pinentry for gnupg
[hvlinux.git] / stage2 / bootscripts / network
index 7817244..66039c4 100755 (executable)
@@ -23,40 +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 [ -n "${GATEWAY}" ]; then
-           cmd_run_log_box "Adding default route to gateway ${GATEWAY}" ip route add default via ${GATEWAY}
-       fi
+        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}