From 1cd862a337f4725c53f735f0d4e82a7d49774d9c Mon Sep 17 00:00:00 2001 From: Lukas Nykryn Date: Wed, 2 Apr 2014 17:29:09 +0200 Subject: add configurable DEVTIMEOUT --- sysconfig/network-scripts/ifup | 2 +- sysconfig/network-scripts/ifup-eth | 2 +- sysconfig/network-scripts/network-functions | 17 +++++++++++++++++ 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) -- cgit v1.2.1