diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2017-07-31 05:15:05 +0200 |
---|---|---|
committer | Samuel Holland <samuel@sholland.org> | 2017-07-31 05:15:05 +0200 |
commit | b2f4a755a0edba81eede6e87577a80d5def7d27a (patch) | |
tree | bad36d19238d0641db719df0c6ace3f725ecb77e /cli/wg-quick.bash | |
parent | df4fc984934e074725ca9aa003cfc73be67dc756 (diff) |
cli: add multi-DNS to wg-quick
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'cli/wg-quick.bash')
-rw-r--r-- | cli/wg-quick.bash | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/cli/wg-quick.bash b/cli/wg-quick.bash index 40417358..7720f349 100644 --- a/cli/wg-quick.bash +++ b/cli/wg-quick.bash @@ -15,7 +15,7 @@ INTERFACE="" NETID=0 ADDRESSES=( ) MTU="" -DNS="" +DNS=( ) CONFIG_FILE="" PROGRAM="${0##*/}" ARGS=( "$@" ) @@ -38,7 +38,7 @@ parse_options() { case "$key" in Address) ADDRESSES+=( ${value//,/ } ); continue ;; MTU) MTU="$value"; continue ;; - DNS) DNS="$value"; continue ;; + DNS) DNS+=( ${value//,/ } ); continue ;; esac fi WG_CONFIG+="$line"$'\n' @@ -86,7 +86,7 @@ up_if() { } set_dns() { - cndc resolver setnetdns "$NETID" "" "$1" + cndc resolver setnetdns "$NETID" "" "${DNS[@]}" } add_addr() { @@ -157,7 +157,7 @@ cmd_up() { add_addr "$i" done up_if - [[ -z $DNS ]] || set_dns "$DNS" + 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 [[ $(ip route get "$i" 2>/dev/null) == *dev\ $INTERFACE\ * ]] || add_route "$i" done |