From: Yu Watanabe Date: Mon, 1 Jun 2020 05:22:06 +0000 (+0900) Subject: network: wireguard: set ListenPort= when no peers are configured X-Git-Tag: v246-rc1~228^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=50254f55006b896639a14af1254536ce979a9810;p=thirdparty%2Fsystemd.git network: wireguard: set ListenPort= when no peers are configured Closes #15786. --- diff --git a/src/network/netdev/wireguard.c b/src/network/netdev/wireguard.c index bfed13e2ecc..713cdaa8847 100644 --- a/src/network/netdev/wireguard.c +++ b/src/network/netdev/wireguard.c @@ -219,6 +219,7 @@ static int wireguard_set_interface(NetDev *netdev) { _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *message = NULL; WireguardIPmask *mask_start = NULL; WireguardPeer *peer, *peer_start; + bool sent_once = false; uint32_t serial; Wireguard *w; int r; @@ -227,7 +228,7 @@ static int wireguard_set_interface(NetDev *netdev) { w = WIREGUARD(netdev); assert(w); - for (peer_start = w->peers; peer_start; ) { + for (peer_start = w->peers; peer_start || !sent_once; ) { uint16_t i = 0; message = sd_netlink_message_unref(message); @@ -278,6 +279,8 @@ static int wireguard_set_interface(NetDev *netdev) { r = sd_netlink_send(netdev->manager->genl, message, &serial); if (r < 0) return log_netdev_error_errno(netdev, r, "Could not set wireguard device: %m"); + + sent_once = true; } return 0;