diff options
Diffstat (limited to 'src/network/netdev/wireguard.c')
-rw-r--r-- | src/network/netdev/wireguard.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/network/netdev/wireguard.c b/src/network/netdev/wireguard.c index f3084c0773..5ebc5dfed8 100644 --- a/src/network/netdev/wireguard.c +++ b/src/network/netdev/wireguard.c @@ -452,22 +452,23 @@ int config_parse_wireguard_listen_port( void *userdata) { uint16_t *s = data; - uint16_t port = 0; int r; assert(rvalue); assert(data); - if (!streq(rvalue, "auto")) { - r = parse_ip_port(rvalue, s); - if (r < 0) { - log_syntax(unit, LOG_ERR, filename, line, r, - "Invalid port specification, ignoring assignment: %s", rvalue); - return 0; - } + if (isempty(rvalue) || streq(rvalue, "auto")) { + *s = 0; + return 0; + } + + r = parse_ip_port(rvalue, s); + if (r < 0) { + log_syntax(unit, LOG_ERR, filename, line, r, + "Invalid port specification, ignoring assignment: %s", rvalue); + return 0; } - *s = port; return 0; } |