diff options
author | Dave Barach <dave@barachs.net> | 2020-10-09 11:33:55 -0400 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2020-10-09 17:20:28 +0000 |
commit | 6754a16ca3e01556f6d0383737aa22d89d32733b (patch) | |
tree | f66403ef75b59887dcf2cc84f7adaa4f1691c7e0 /src/plugins/wireguard/wireguard_api.c | |
parent | 695eb9353dc4895a17d960488675b7e44c8022db (diff) |
wireguard: park the timer process
Until the feature is configured. It would make sense to push more of
the feature init code into the newly-added wg_feature_init()
function. This patch fixes a severe hemorrhoid.
Type: improvement
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I87095575363baa41407dd52492159a7b8c2899e7
Diffstat (limited to 'src/plugins/wireguard/wireguard_api.c')
-rwxr-xr-x | src/plugins/wireguard/wireguard_api.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/plugins/wireguard/wireguard_api.c b/src/plugins/wireguard/wireguard_api.c index 283c09915fe..c9fe1e1a2d2 100755 --- a/src/plugins/wireguard/wireguard_api.c +++ b/src/plugins/wireguard/wireguard_api.c @@ -43,6 +43,8 @@ static void u32 sw_if_index = ~0; int rv = 0; + wg_feature_init (wmp); + ip_address_decode2 (&mp->interface.src_ip, &src); if (AF_IP6 == ip_addr_version (&src)) @@ -75,6 +77,8 @@ static void wg_main_t *wmp = &wg_main; int rv = 0; + wg_feature_init (wmp); + VALIDATE_SW_IF_INDEX (mp); rv = wg_if_delete (ntohl (mp->sw_if_index)); @@ -125,6 +129,9 @@ vl_api_wireguard_interface_dump_t_handler (vl_api_wireguard_interface_dump_t * mp) { vl_api_registration_t *reg; + wg_main_t *wmp = &wg_main; + + wg_feature_init (wmp); reg = vl_api_client_index_to_registration (mp->client_index); if (reg == 0) @@ -157,6 +164,8 @@ vl_api_wireguard_peer_add_t_handler (vl_api_wireguard_peer_add_t * mp) goto done; } + wg_feature_init (wmp); + vec_validate (allowed_ips, mp->peer.n_allowed_ips - 1); ip_address_decode2 (&mp->peer.endpoint, &endpoint); @@ -195,6 +204,8 @@ vl_api_wireguard_peer_remove_t_handler (vl_api_wireguard_peer_remove_t * mp) wg_main_t *wmp = &wg_main; int rv = 0; + wg_feature_init (wmp); + rv = wg_peer_remove (ntohl (mp->peer_index)); /* *INDENT-OFF* */ @@ -247,6 +258,9 @@ static void vl_api_wireguard_peers_dump_t_handler (vl_api_wireguard_peers_dump_t * mp) { vl_api_registration_t *reg; + wg_main_t *wmp = &wg_main; + + wg_feature_init (wmp); reg = vl_api_client_index_to_registration (mp->client_index); if (reg == NULL) |