aboutsummaryrefslogtreecommitdiffstats
path: root/sysconfig/network-scripts
diff options
context:
space:
mode:
Diffstat (limited to 'sysconfig/network-scripts')
-rwxr-xr-xsysconfig/network-scripts/ifup2
-rwxr-xr-xsysconfig/network-scripts/ifup-eth2
-rw-r--r--sysconfig/network-scripts/network-functions17
3 files changed, 19 insertions, 2 deletions
diff --git a/sysconfig/network-scripts/ifup b/sysconfig/network-scripts/ifup
index 1d5a9e63..f2a1c8f9 100755
--- a/sysconfig/network-scripts/ifup
+++ b/sysconfig/network-scripts/ifup
@@ -106,7 +106,7 @@ if [ "${VLAN}" = "yes" ] && [ "$ISALIAS" = "no" ] && [ -n $DEVICE ]; then
fi
fi
- is_available ${PHYSDEV} || {
+ is_available_wait ${PHYSDEV} ${DEVTIMEOUT} || {
if [ "$?" = "1" ] ; then
net_log $"$alias device ${DEVICE} does not seem to be present, delaying initialization."
exit 1
diff --git a/sysconfig/network-scripts/ifup-eth b/sysconfig/network-scripts/ifup-eth
index 51f21e82..c8154dc6 100755
--- a/sysconfig/network-scripts/ifup-eth
+++ b/sysconfig/network-scripts/ifup-eth
@@ -80,7 +80,7 @@ if [ -n "${TEAM_CONFIG}" ] && [ ! "${DEVICETYPE}" = "Team" ] && [ -x ./ifup-Team
fi
# now check the real state
-is_available ${REALDEVICE} || {
+is_available_wait ${REALDEVICE} ${DEVTIMEOUT} || {
if [ -n "$alias" ]; then
net_log $"$alias device ${DEVICE} does not seem to be present, delaying initialization."
else
diff --git a/sysconfig/network-scripts/network-functions b/sysconfig/network-scripts/network-functions
index 3b8d79d4..b9b35c0f 100644
--- a/sysconfig/network-scripts/network-functions
+++ b/sysconfig/network-scripts/network-functions
@@ -330,6 +330,23 @@ END {
[ -d "/sys/class/net/$1" ] && return 0 || return 1
}
+is_available_wait ()
+{
+ [ -z "$1" ] && return 1
+
+ local retry=${2##*[!0-9]*}
+
+ is_available $1 && return 0
+
+ while [ 0"$retry" -gt 0 ]; do
+ sleep 1
+ [ -d "/sys/class/net/$1" ] && return 0
+ retry=$(($retry -1))
+ done
+
+ return 1
+}
+
need_hostname ()
{
CHECK_HOSTNAME=$(hostname)