From 832e3236a72f88ad85b78ea35ec3beb80313dd5d 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 278fde39..4cf292ec 100755 --- a/sysconfig/network-scripts/ifup +++ b/sysconfig/network-scripts/ifup @@ -99,7 +99,7 @@ if [ "${VLAN}" = "yes" ] && [ "$ISALIAS" = "no" ]; 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 c94c535e..bc0eb962 100755 --- a/sysconfig/network-scripts/ifup-eth +++ b/sysconfig/network-scripts/ifup-eth @@ -73,7 +73,7 @@ if [ "${TYPE}" = "Tap" ]; then 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 d7299572..ff683b90 100644 --- a/sysconfig/network-scripts/network-functions +++ b/sysconfig/network-scripts/network-functions @@ -329,6 +329,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