summaryrefslogtreecommitdiffstats
path: root/src/network
diff options
context:
space:
mode:
authorJouke Witteveen <j.witteveen@gmail.com>2012-06-21 12:19:53 +0200
committerJouke Witteveen <j.witteveen@gmail.com>2012-06-21 12:19:53 +0200
commit5ac724b8d139b7e38c3a16c8752bad55076ea670 (patch)
treeb7d5cdb68c5e050829aa6de401224284c0b482c0 /src/network
parent4e034777fa0bfffa11d87b602e6b2b941edd3262 (diff)
downloadnetctl-5ac724b8d139b7e38c3a16c8752bad55076ea670.tar.gz
netctl-5ac724b8d139b7e38c3a16c8752bad55076ea670.tar.xz
Introduce polling timeout logic
This should fix FS#30361 along the way.
Diffstat (limited to 'src/network')
-rw-r--r--src/network7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/network b/src/network
index 1c466c7..02d74d7 100644
--- a/src/network
+++ b/src/network
@@ -372,17 +372,14 @@ interface_is_up() {
# $2: the interface name
bring_interface()
{
- local INTERFACE="$2" timeout="${UP_TIMEOUT:-5}"
+ local INTERFACE="$2"
case "$1" in
up)
if ! ( eval $IFACE_UP ); then
return 1
fi
ip link set dev "$INTERFACE" up &>/dev/null
- while ! interface_is_up "$INTERFACE"; do
- (( timeout-- > 0 )) || return 1
- sleep 1
- done
+ timeout_wait "${UP_TIMEOUT:-5}" 'interface_is_up "$INTERFACE"' || return 1
;;
flush|down)
if ! ( eval $IFACE_DOWN ); then