diff --git a/src/wg-quick/freebsd.bash b/src/wg-quick/freebsd.bash index b529ab2..5864a17 100755 --- a/src/wg-quick/freebsd.bash +++ b/src/wg-quick/freebsd.bash @@ -341,13 +341,15 @@ set_config() { } save_config() { - local old_umask new_config current_config address cmd + local old_umask new_config current_config network cidr address cmd new_config=$'[Interface]\n' - { read -r _; while read -r _ _ _ address _; do - new_config+="Address = $address"$'\n' + { read -r _; while read -r _ _ network address _; do + cidr=(${network//\// }) + new_config+="Address = $address/${cidr[1]}"$'\n' done } < <(netstat -I "$INTERFACE" -n -W -f inet) - { read -r _; while read -r _ _ _ address _; do - new_config+="Address = $address"$'\n' + { read -r _; while read -r _ _ network address _; do + cidr=(${network//\// }) + new_config+="Address = $address/${cidr[1]}"$'\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'