aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/tools/wg-quick/freebsd.bash
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/wg-quick/freebsd.bash')
-rwxr-xr-xsrc/tools/wg-quick/freebsd.bash8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/tools/wg-quick/freebsd.bash b/src/tools/wg-quick/freebsd.bash
index 6e94983..d9a0b03 100755
--- a/src/tools/wg-quick/freebsd.bash
+++ b/src/tools/wg-quick/freebsd.bash
@@ -309,12 +309,14 @@ set_config() {
}
save_config() {
- # TODO: actually save addresses by running ifconfig
local old_umask new_config current_config address cmd
new_config=$'[Interface]\n'
- for address in "${ADDRESSES[@]}"; do
+ { read -r _; while read -r _ _ _ address _; do
new_config+="Address = $address"$'\n'
- done
+ done } < <(netstat -I "$INTERFACE" -n -W -f inet)
+ { read -r _; while read -r _ _ _ address _; do
+ new_config+="Address = $address"$'\n'
+ done } < <(netstat -I "$INTERFACE" -n -W -f inet6)
while read -r address; do
[[ $address =~ ^nameserver\ ([a-zA-Z0-9_=+:%.-]+)$ ]] && new_config+="DNS = ${BASH_REMATCH[1]}"$'\n'
done < <(resolvconf -l "$INTERFACE" 2>/dev/null)