summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorAaron Jones <aaronmdjones@gmail.com>2018-12-16 21:04:02 +0000
committerJason A. Donenfeld <Jason@zx2c4.com>2018-12-18 14:41:27 +0100
commitf5741849527f3f61fdec0057a598634b5841afe1 (patch)
treeccebcb76b6212556a0ddfb3d063c5eb5feed45d6
parentcompat: account for Clang CFI (diff)
downloadwireguard-monolithic-historical-f5741849527f3f61fdec0057a598634b5841afe1.tar.xz
wireguard-monolithic-historical-f5741849527f3f61fdec0057a598634b5841afe1.zip
wg-quick: bring interface up while setting MTU
This avoids another ip(8) invocation for little benefit. Confirmed to work with iproute2 and busybox. Signed-off-by: Aaron Jones <aaronmdjones@gmail.com>
-rwxr-xr-xsrc/tools/wg-quick/linux.bash13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/tools/wg-quick/linux.bash b/src/tools/wg-quick/linux.bash
index 48ce163..fd62316 100755
--- a/src/tools/wg-quick/linux.bash
+++ b/src/tools/wg-quick/linux.bash
@@ -112,18 +112,14 @@ del_if() {
cmd ip link delete dev "$INTERFACE"
}
-up_if() {
- cmd ip link set "$INTERFACE" up
-}
-
add_addr() {
cmd ip address add "$1" dev "$INTERFACE"
}
-set_mtu() {
+set_mtu_up() {
local mtu=0 endpoint output
if [[ -n $MTU ]]; then
- cmd ip link set mtu "$MTU" dev "$INTERFACE"
+ cmd ip link set mtu "$MTU" up dev "$INTERFACE"
return
fi
while read -r _ endpoint; do
@@ -136,7 +132,7 @@ set_mtu() {
[[ ( $output =~ mtu\ ([0-9]+) || ( $output =~ dev\ ([^ ]+) && $(ip link show dev "${BASH_REMATCH[1]}") =~ mtu\ ([0-9]+) ) ) && ${BASH_REMATCH[1]} -gt $mtu ]] && mtu="${BASH_REMATCH[1]}"
fi
[[ $mtu -gt 0 ]] || mtu=1500
- cmd ip link set mtu $(( mtu - 80 )) dev "$INTERFACE"
+ cmd ip link set mtu $(( mtu - 80 )) up dev "$INTERFACE"
}
resolvconf_iface_prefix() {
@@ -286,8 +282,7 @@ cmd_up() {
for i in "${ADDRESSES[@]}"; do
add_addr "$i"
done
- set_mtu
- up_if
+ set_mtu_up
set_dns
for i in $(while read -r _ i; do for i in $i; do [[ $i =~ ^[0-9a-z:.]+/[0-9]+$ ]] && echo "$i"; done; done < <(wg show "$INTERFACE" allowed-ips) | sort -nr -k 2 -t /); do
add_route "$i"