]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: unify config_parse_wireguard_public_key() and config_parse_wireguard_preshar...
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 10 Sep 2020 04:37:02 +0000 (13:37 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 10 Sep 2020 04:57:39 +0000 (13:57 +0900)
src/network/netdev/netdev-gperf.gperf
src/network/netdev/wireguard.c
src/network/netdev/wireguard.h

index 0e2a9ce045e3dd7db947c31c8b54b0890d3ae452..c532dfd2683b0120cb13ab3fbf0ee2d6db489011 100644 (file)
@@ -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)
index f833cfb61afb64038536348c1e9958cd561ea294..5a6eb80d34435608a4a6af11d8e73bdb811c6dbc 100644 (file)
@@ -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,
index ce336c985acdc6b6185fc8f42b96dd5dacc799aa..61113113e4bc98a682ec6bd3e013f271410eb574 100644 (file)
@@ -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);