aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-05-17 17:30:38 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2019-05-29 01:23:24 +0200
commit604b5a9fa7d2d1a77f7647198ab04a54b5e04ab5 (patch)
tree8a87f15ce6d496f1671dd78ad5f86eedb986405f /src
parentwg-quick: look up existing routes properly (diff)
downloadwireguard-tools-604b5a9fa7d2d1a77f7647198ab04a54b5e04ab5.tar.xz
wireguard-tools-604b5a9fa7d2d1a77f7647198ab04a54b5e04ab5.zip
wg-quick: specify protocol to ip(8), because of inconsistencies
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'src')
-rwxr-xr-xsrc/wg-quick/linux.bash10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/wg-quick/linux.bash b/src/wg-quick/linux.bash
index 8f1812c..2f36dee 100755
--- a/src/wg-quick/linux.bash
+++ b/src/wg-quick/linux.bash
@@ -113,7 +113,9 @@ del_if() {
}
add_addr() {
- cmd ip address add "$1" dev "$INTERFACE"
+ local proto=-4
+ [[ $1 == *:* ]] && proto=-6
+ cmd ip $proto address add "$1" dev "$INTERFACE"
}
set_mtu_up() {
@@ -157,14 +159,16 @@ unset_dns() {
}
add_route() {
+ local proto=-4
+ [[ $1 == *:* ]] && proto=-6
[[ $TABLE != off ]] || return 0
if [[ -n $TABLE && $TABLE != auto ]]; then
- cmd ip route add "$1" dev "$INTERFACE" table "$TABLE"
+ cmd ip $proto route add "$1" dev "$INTERFACE" table "$TABLE"
elif [[ $1 == */0 ]]; then
add_default "$1"
else
- [[ -n $(ip route show dev "$INTERFACE" match "$1" 2>/dev/null) ]] || cmd ip route add "$1" dev "$INTERFACE"
+ [[ -n $(ip $proto route show dev "$INTERFACE" match "$1" 2>/dev/null) ]] || cmd ip $proto route add "$1" dev "$INTERFACE"
fi
}