diff options
author | Florian Eckert <fe@dev.tdt.de> | 2019-12-05 11:33:38 +0100 |
---|---|---|
committer | John Crispin <john@phrozen.org> | 2020-01-15 21:19:01 +0100 |
commit | 7151054abd5d43bf4c623e311a4c1046af4fff94 (patch) | |
tree | 4e8a09d2173a00c831ce3b7c7ca8aa459ebfd009 | |
parent | d9cfa827acd9155429e4f2b00bc0052156aa5d4d (diff) | |
download | upstream-7151054abd5d43bf4c623e311a4c1046af4fff94.tar.gz upstream-7151054abd5d43bf4c623e311a4c1046af4fff94.tar.bz2 upstream-7151054abd5d43bf4c623e311a4c1046af4fff94.zip |
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 <fe@dev.tdt.de>
-rw-r--r-- | package/network/utils/wireguard-tools/files/wireguard.sh | 5 |
1 files changed, 5 insertions, 0 deletions
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 |