]> git.ipfire.org Git - thirdparty/wireguard-tools.git/commitdiff
wg-quick: support old ip(8)
authorPim van Pelt <pim@ipng.nl>
Thu, 16 Mar 2017 22:57:55 +0000 (23:57 +0100)
committerJason A. Donenfeld <Jason@zx2c4.com>
Sun, 19 Mar 2017 14:34:46 +0000 (15:34 +0100)
Old versions of ip(8) do not accept arguments to `ip rule show.` This
patch works around that limitation.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
src/wg-quick.bash

index bb7325cc011969aec05b0c5e9162527692ee44fa..73cfa259be7c6a6892524d070dc60905404b5290 100755 (executable)
@@ -83,13 +83,17 @@ del_if() {
        DEFAULT_TABLE=0
        [[ $fwmark != off ]] && DEFAULT_TABLE=$(( $fwmark ))
        if [[ $DEFAULT_TABLE -ne 0 ]]; then
-               while [[ -n $(ip -4 rule show table $DEFAULT_TABLE) ]]; do
+               while [[ $(ip -4 rule show) == *"lookup $DEFAULT_TABLE"* ]]; do
                        cmd ip -4 rule delete table $DEFAULT_TABLE
-                       [[ $(ip -4 rule show table main) == *"from all lookup main suppress_prefixlength 0"* ]] && cmd ip -4 rule delete table main suppress_prefixlength 0
                done
-               while [[ -n $(ip -6 rule show table $DEFAULT_TABLE) ]]; do
+               while [[ $(ip -4 rule show) == *"from all lookup main suppress_prefixlength 0"* ]]; do
+                       cmd ip -4 rule delete table main suppress_prefixlength 0
+               done
+               while [[ $(ip -6 rule show) == *"lookup $DEFAULT_TABLE"* ]]; do
                        cmd ip -6 rule delete table $DEFAULT_TABLE
-                       [[ $(ip -6 rule show table main) == *"from all lookup main suppress_prefixlength 0"* ]] && cmd ip -6 rule delete table main suppress_prefixlength 0
+               done
+               while [[ $(ip -6 rule show) == *"from all lookup main suppress_prefixlength 0"* ]]; do
+                       cmd ip -6 rule delete table main suppress_prefixlength 0
                done
        fi
        cmd ip link delete dev "$INTERFACE"