diff --git a/internal/configuration/sources/files/wireguard.go b/internal/configuration/sources/files/wireguard.go index 5ed3a812..658cb895 100644 --- a/internal/configuration/sources/files/wireguard.go +++ b/internal/configuration/sources/files/wireguard.go @@ -101,6 +101,9 @@ func parseINIWireguardAddress(section *ini.Section) ( addresses = make([]netip.Prefix, len(addressStrings)) for i, addressString := range addressStrings { addressString = strings.TrimSpace(addressString) + if !strings.ContainsRune(addressString, '/') { + addressString += "/32" + } addresses[i], err = netip.ParsePrefix(addressString) if err != nil { return nil, fmt.Errorf("parsing address: %w", err) diff --git a/internal/configuration/sources/files/wireguard_test.go b/internal/configuration/sources/files/wireguard_test.go index c74aab43..a93102eb 100644 --- a/internal/configuration/sources/files/wireguard_test.go +++ b/internal/configuration/sources/files/wireguard_test.go @@ -131,7 +131,7 @@ PreSharedKey = x iniData: `[Interface] Address = x `, - errMessage: "parsing address: netip.ParsePrefix(\"x\"): no '/'", + errMessage: "parsing address: netip.ParsePrefix(\"x/32\"): ParseAddr(\"x\"): unable to parse IP", }, "success": { iniData: ` @@ -238,7 +238,7 @@ func Test_parseINIWireguardAddress(t *testing.T) { "bad address": { fileContent: `[Interface] Address = x`, - errMessage: "parsing address: netip.ParsePrefix(\"x\"): no '/'", + errMessage: "parsing address: netip.ParsePrefix(\"x/32\"): ParseAddr(\"x\"): unable to parse IP", }, "success": { fileContent: `[Interface]