diff options
author | Artem Glazychev <artem.glazychev@xored.com> | 2021-06-11 00:10:00 +0700 |
---|---|---|
committer | Ed Warnicke <hagbard@gmail.com> | 2021-10-06 21:32:33 +0000 |
commit | dd630d15d3e9d13da9ed98d3171b9ec4529e4e66 (patch) | |
tree | 83b14e2ccf510b8296919b30825af28c81c49c34 /src/plugins/wireguard/wireguard_send.c | |
parent | 22efac3b537a3a1f0b57d5942bdb78c3190ce858 (diff) |
wireguard: add events for peer
we can receive events from peer about its state:
-WIREGUARD_PEER_STATUS_DEAD
-WIREGUARD_PEER_ESTABLISHED
Type: improvement
Change-Id: Ide83fbe2cfafa79ded5bcf3f6a884c26a7583db0
Signed-off-by: Artem Glazychev <artem.glazychev@xored.com>
Diffstat (limited to 'src/plugins/wireguard/wireguard_send.c')
-rw-r--r-- | src/plugins/wireguard/wireguard_send.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/plugins/wireguard/wireguard_send.c b/src/plugins/wireguard/wireguard_send.c index 4451e000776..a5f81774a19 100644 --- a/src/plugins/wireguard/wireguard_send.c +++ b/src/plugins/wireguard/wireguard_send.c @@ -106,8 +106,8 @@ wg_send_handshake (vlib_main_t * vm, wg_peer_t * peer, bool is_retry) if (!is_retry) peer->timer_handshake_attempts = 0; - if (!wg_birthdate_has_expired (peer->last_sent_handshake, - REKEY_TIMEOUT) || peer->is_dead) + if (!wg_birthdate_has_expired (peer->last_sent_handshake, REKEY_TIMEOUT) || + wg_peer_is_dead (peer)) return true; if (noise_create_initiation (vm, @@ -199,6 +199,7 @@ wg_send_keepalive (vlib_main_t * vm, wg_peer_t * peer) } else if (PREDICT_FALSE (state == SC_FAILED)) { + wg_peer_update_flags (peer - wg_peer_pool, WG_PEER_ESTABLISHED, false); ret = false; goto out; } @@ -252,13 +253,11 @@ wg_send_handshake_response (vlib_main_t * vm, wg_peer_t * peer) return false; ip46_enqueue_packet (vm, bi0, is_ip4); + return true; } - else - return false; + return false; } - else - return false; - return true; + return false; } /* |