diff options
-rw-r--r-- | src/connections/ethernet | 19 | ||||
-rw-r--r-- | src/connections/ethernet-iproute | 16 |
2 files changed, 22 insertions, 13 deletions
diff --git a/src/connections/ethernet b/src/connections/ethernet index 9ec27fb..a0408e5 100644 --- a/src/connections/ethernet +++ b/src/connections/ethernet @@ -11,18 +11,19 @@ ethernet_up() { fi fi - # Connection check - if ip link show "$INTERFACE"|grep -q "NO-CARRIER"; then - err_append "no connection available" - return 1 - fi + ip link set $INTERFACE up - ifconfig "$INTERFACE" up - - # Some hardware is not immediately ready after ifconfig up - while ip link show $INTERFACE|grep -q "state UNKNOWN"; do + let timeout=0 + until ip link show $INTERFACE|grep -q "state UP" + do sleep 0.5 + let timeout++ + if [[ $timeout -eq 5 ]]; then + err_append "No connection" + return 1 + fi done + if checkyesno "${AUTH8021X:-no}"; then . "${SUBR_DIR}"/8021x diff --git a/src/connections/ethernet-iproute b/src/connections/ethernet-iproute index a960e1d..bb6b152 100644 --- a/src/connections/ethernet-iproute +++ b/src/connections/ethernet-iproute @@ -18,11 +18,19 @@ ethernet_up() { fi fi - if ip link show $INTERFACE|grep -q "NO-CARRIER"; then - error "No connection available" - fi + ip link set $INTERFACE up + + let timeout=0 + until ip link show $INTERFACE|grep -q "state UP" + do + sleep 0.5 + let timeout++ + if [[ $timeout -eq 5 ]]; then + error "No connection" + return 1 + fi + done - ip link set $INTERFACE up if checkyesno ${AUTH8021X:-no}; then . ${SUBR_DIR}/8021x |