From: Yu Watanabe Date: Thu, 10 Sep 2020 04:37:02 +0000 (+0900) Subject: network: unify config_parse_wireguard_public_key() and config_parse_wireguard_preshar... X-Git-Tag: v247-rc1~262^2~18 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=02241e4339f5f911601ab7979f81adbdf0c588f4;p=thirdparty%2Fsystemd.git network: unify config_parse_wireguard_public_key() and config_parse_wireguard_preshared_key() --- diff --git a/src/network/netdev/netdev-gperf.gperf b/src/network/netdev/netdev-gperf.gperf index 0e2a9ce045e..c532dfd2683 100644 --- a/src/network/netdev/netdev-gperf.gperf +++ b/src/network/netdev/netdev-gperf.gperf @@ -220,8 +220,8 @@ WireGuard.PrivateKey, config_parse_wireguard_private_key, WireGuard.PrivateKeyFile, config_parse_wireguard_private_key_file, 0, 0 WireGuardPeer.AllowedIPs, config_parse_wireguard_allowed_ips, 0, 0 WireGuardPeer.Endpoint, config_parse_wireguard_endpoint, 0, 0 -WireGuardPeer.PublicKey, config_parse_wireguard_public_key, 0, 0 -WireGuardPeer.PresharedKey, config_parse_wireguard_preshared_key, 0, 0 +WireGuardPeer.PublicKey, config_parse_wireguard_peer_key, 0, 0 +WireGuardPeer.PresharedKey, config_parse_wireguard_peer_key, 0, 0 WireGuardPeer.PresharedKeyFile, config_parse_wireguard_preshared_key_file, 0, 0 WireGuardPeer.PersistentKeepalive, config_parse_wireguard_keepalive, 0, 0 Xfrm.InterfaceId, config_parse_uint32, 0, offsetof(Xfrm, if_id) diff --git a/src/network/netdev/wireguard.c b/src/network/netdev/wireguard.c index f833cfb61af..5a6eb80d344 100644 --- a/src/network/netdev/wireguard.c +++ b/src/network/netdev/wireguard.c @@ -564,7 +564,7 @@ int config_parse_wireguard_private_key_file( return free_and_replace(w->private_key_file, path); } -int config_parse_wireguard_preshared_key( +int config_parse_wireguard_peer_key( const char *unit, const char *filename, unsigned line, @@ -576,7 +576,7 @@ int config_parse_wireguard_preshared_key( void *data, void *userdata) { - WireguardPeer *peer; + _cleanup_(wireguard_peer_free_or_set_invalidp) WireguardPeer *peer = NULL; Wireguard *w; int r; @@ -588,7 +588,13 @@ int config_parse_wireguard_preshared_key( if (r < 0) return log_oom(); - (void) wireguard_decode_key_and_warn(rvalue, peer->preshared_key, unit, filename, line, lvalue); + r = wireguard_decode_key_and_warn(rvalue, + streq(lvalue, "PublicKey") ? peer->public_key : peer->preshared_key, + unit, filename, line, lvalue); + if (r < 0) + return r; + + TAKE_PTR(peer); return 0; } @@ -635,38 +641,6 @@ int config_parse_wireguard_preshared_key_file( return 0; } -int config_parse_wireguard_public_key( - const char *unit, - const char *filename, - unsigned line, - const char *section, - unsigned section_line, - const char *lvalue, - int ltype, - const char *rvalue, - void *data, - void *userdata) { - - _cleanup_(wireguard_peer_free_or_set_invalidp) WireguardPeer *peer = NULL; - Wireguard *w; - int r; - - assert(data); - w = WIREGUARD(data); - assert(w); - - r = wireguard_peer_new_static(w, filename, section_line, &peer); - if (r < 0) - return log_oom(); - - r = wireguard_decode_key_and_warn(rvalue, peer->public_key, unit, filename, line, lvalue); - if (r < 0) - return 0; - - TAKE_PTR(peer); - return 0; -} - int config_parse_wireguard_allowed_ips( const char *unit, const char *filename, diff --git a/src/network/netdev/wireguard.h b/src/network/netdev/wireguard.h index ce336c985ac..61113113e4b 100644 --- a/src/network/netdev/wireguard.h +++ b/src/network/netdev/wireguard.h @@ -61,10 +61,8 @@ extern const NetDevVTable wireguard_vtable; CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_allowed_ips); CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_endpoint); CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_listen_port); - -CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_public_key); +CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_peer_key); CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_private_key); CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_private_key_file); -CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_preshared_key); CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_preshared_key_file); CONFIG_PARSER_PROTOTYPE(config_parse_wireguard_keepalive);