diff options
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/network b/src/network index d65c899..12920de 100644 --- a/src/network +++ b/src/network @@ -338,16 +338,27 @@ set_interface() { INTERFACE="$2" case "$1" in - up) + up|up-old) at_interface_up - ip link set dev "$INTERFACE" up + if [ "$1" = old ]; then + ifconfig "$INTERFACE" up + else + ip link set dev "$INTERFACE" up + fi sleep "${UP_SLEEP:-2}" ;; - down|forcedown) + down|forcedown|down-old|forcedown-old) at_interface_down - ip addr flush dev "$INTERFACE" &>/dev/null - if ! quirk nodown || [ "$1" = forcedown ]; then - ip link set dev "$INTERFACE" down &>/dev/null + if [ "${1%-old}" != "$1" ]; then + ## ? + if ! quirk nodown || [ "$1" = forcedown-old ]; then + ifconfig "$INTERFACE" down + fi + else + ip addr flush dev "$INTERFACE" &>/dev/null + if ! quirk nodown || [ "$1" = forcedown ]; then + ip link set dev "$INTERFACE" down &>/dev/null + fi fi ;; *) |