diff options
| author | 2017-03-16 23:57:55 +0100 | |
|---|---|---|
| committer | 2017-03-19 15:34:46 +0100 | |
| commit | ef66ea99e4df861dfc0b8b382d2ca9d57989cd50 (patch) | |
| tree | efb9a8e202f23a4d88d3d2178381bf5ed46f9190 | |
| parent | contrib: add wg-json utility (diff) | |
| download | wireguard-tools-ef66ea99e4df861dfc0b8b382d2ca9d57989cd50.tar.xz wireguard-tools-ef66ea99e4df861dfc0b8b382d2ca9d57989cd50.zip | |
wg-quick: support old ip(8)
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>
| -rwxr-xr-x | src/wg-quick.bash | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/wg-quick.bash b/src/wg-quick.bash index bb7325c..73cfa25 100755 --- a/src/wg-quick.bash +++ b/src/wg-quick.bash @@ -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" |
