aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/wg-quick/openbsd.bash
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-05-27 02:42:04 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2018-05-27 02:42:31 +0200
commit19ce650fb6fab0cbf593d02e7e35f5acd5fe6ab7 (patch)
treea50426ba012b64cd98c5f7ca71803f29a165c2c3 /src/wg-quick/openbsd.bash
parentwg-quick: freebsd: work around security vulnerabilities in bash (diff)
downloadwireguard-tools-19ce650fb6fab0cbf593d02e7e35f5acd5fe6ab7.tar.xz
wireguard-tools-19ce650fb6fab0cbf593d02e7e35f5acd5fe6ab7.zip
wg-quick: determine IPs when saving interface
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'src/wg-quick/openbsd.bash')
-rwxr-xr-xsrc/wg-quick/openbsd.bash10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/wg-quick/openbsd.bash b/src/wg-quick/openbsd.bash
index d37e250..786d145 100755
--- a/src/wg-quick/openbsd.bash
+++ b/src/wg-quick/openbsd.bash
@@ -315,12 +315,12 @@ set_config() {
}
save_config() {
- # TODO: actually save addresses by running ifconfig and dnses too
- local old_umask new_config current_config address cmd
+ local old_umask new_config current_config address network cmd
new_config=$'[Interface]\n'
- for address in "${ADDRESSES[@]}"; do
- new_config+="Address = $address"$'\n'
- done
+ { read -r _; while read -r _ _ network address _; do
+ [[ $network == *Link* ]] || new_config+="Address = $address"$'\n'
+ done } < <(netstat -I "$REAL_INTERFACE" -n -v)
+ # TODO: actually determine current DNS for interface
for address in "${DNS[@]}"; do
new_config+="DNS = $address"$'\n'
done