diff options
author | Jouke Witteveen <j.witteveen@gmail.com> | 2012-06-21 12:19:53 +0200 |
---|---|---|
committer | Jouke Witteveen <j.witteveen@gmail.com> | 2012-06-21 12:19:53 +0200 |
commit | 5ac724b8d139b7e38c3a16c8752bad55076ea670 (patch) | |
tree | b7d5cdb68c5e050829aa6de401224284c0b482c0 /src/network | |
parent | 4e034777fa0bfffa11d87b602e6b2b941edd3262 (diff) | |
download | netctl-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/network | 7 |
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 |