diff options
author | Jake McGinty <me@jake.su> | 2018-04-05 00:40:02 -0700 |
---|---|---|
committer | Jake McGinty <me@jake.su> | 2018-04-05 00:40:06 -0700 |
commit | 53f06af62e66730363a0c0767825dc85ffdcddea (patch) | |
tree | dc8172bf53d611bac2b43fcadb63cb3cac350a04 | |
parent | tools: allow for ipv6 endpoints in wg-quick (diff) | |
download | wireguard-rs-53f06af62e66730363a0c0767825dc85ffdcddea.tar.xz wireguard-rs-53f06af62e66730363a0c0767825dc85ffdcddea.zip |
tools: delete passthrough route in wg-quick > del_if
-rwxr-xr-x | tools/wg-quick.bash | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tools/wg-quick.bash b/tools/wg-quick.bash index b641d88..3c107f8 100755 --- a/tools/wg-quick.bash +++ b/tools/wg-quick.bash @@ -91,6 +91,16 @@ add_if() { } del_if() { + 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" endpoints) | sort -nr -k 2 -t /); do + echo "removing route for endpoint $i" + if [[ $i =~ ^\[([a-z0-9:.]+)\]:[0-9]+$ ]]; then + netstat -rn | grep "${BASH_REMATCH[1]}" > /dev/null && \ + cmd route delete -inet6 -host "${BASH_REMATCH[1]}" # delete any old route for endpoint + elif [[ $i =~ ^([0-9.]+):[0-9]+$ ]]; then + netstat -rn | grep "${BASH_REMATCH[1]}" > /dev/null && \ + cmd route delete -host "${BASH_REMATCH[1]}" # delete any old route for endpoint + fi + done cmd rm -f "/var/run/wireguard/$INTERFACE.sock" } |