From: Florian Eckert Date: Thu, 5 Dec 2019 10:33:38 +0000 (+0100) Subject: wireguard: skip peer config if public key of the peer is not defined X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=7151054abd5d43bf4c623e311a4c1046af4fff94;p=openwrt%2Fstaging%2Faparcar.git wireguard: skip peer config if public key of the peer is not defined If a config section of a peer does not have a public key defined, the whole interface does not start. The following log is shown daemon.notice netifd: test (21071): Line unrecognized: `PublicKey=' daemon.notice netifd: test (21071): Configuration parsing erro The command 'wg show' does only show the interface name. With this change we skip the peer for this interface and emit a log message. So the other peers get configured. Signed-off-by: Florian Eckert --- diff --git a/package/network/utils/wireguard-tools/files/wireguard.sh b/package/network/utils/wireguard-tools/files/wireguard.sh index 4c811c6ba9..ccac34e45f 100644 --- a/package/network/utils/wireguard-tools/files/wireguard.sh +++ b/package/network/utils/wireguard-tools/files/wireguard.sh @@ -42,6 +42,11 @@ proto_wireguard_setup_peer() { config_get endpoint_port "${peer_config}" "endpoint_port" config_get persistent_keepalive "${peer_config}" "persistent_keepalive" + if [ -z "$public_key" ]; then + echo "Skipping peer config $peer_config because public key is not defined." + return 0 + fi + echo "[Peer]" >> "${wg_cfg}" echo "PublicKey=${public_key}" >> "${wg_cfg}" if [ "${preshared_key}" ]; then