[PATCH] wg-quick: freebsd: save mask of interface in save_config

Dan Ponte amigan at gmail.com
Wed May 11 13:48:28 UTC 2022


Other than the obvious benefits, this prevents "ifconfig: WARNING: setting interface
address without mask is deprecated, default mask may not be correct." from appearing
on the next start after save.

Signed-off-by: Dan Ponte <amigan at gmail.com>
---
 src/wg-quick/freebsd.bash | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

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'
-- 
2.36.0



More information about the WireGuard mailing list