diff options
author | Florin Coras <fcoras@cisco.com> | 2023-09-22 19:26:33 -0700 |
---|---|---|
committer | Florin Coras <fcoras@cisco.com> | 2023-09-22 19:27:03 -0700 |
commit | 00d7d86be7f032be6a9a088901e0bb7488210e72 (patch) | |
tree | e53248597ef4daf91690b611f1260592b1bc31f1 /src | |
parent | 7419bede7ad73544338fd4363da833b2d5fc89a5 (diff) |
tls: ignore tx events for not fully established sessions
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I401a116a1a46c0dc5d591115de5ff0eef2f6440b
Diffstat (limited to 'src')
-rw-r--r-- | src/vnet/tls/tls.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/vnet/tls/tls.c b/src/vnet/tls/tls.c index f229902ba68..1461d0c9a70 100644 --- a/src/vnet/tls/tls.c +++ b/src/vnet/tls/tls.c @@ -938,15 +938,18 @@ tls_cleanup_ho (u32 ho_index) int tls_custom_tx_callback (void *session, transport_send_params_t * sp) { - session_t *app_session = (session_t *) session; + session_t *as = (session_t *) session; tls_ctx_t *ctx; - if (PREDICT_FALSE (app_session->session_state - >= SESSION_STATE_TRANSPORT_CLOSED)) - return 0; + if (PREDICT_FALSE (as->session_state >= SESSION_STATE_TRANSPORT_CLOSED || + as->session_state <= SESSION_STATE_ACCEPTING)) + { + sp->flags |= TRANSPORT_SND_F_DESCHED; + return 0; + } - ctx = tls_ctx_get (app_session->connection_index); - return tls_ctx_write (ctx, app_session, sp); + ctx = tls_ctx_get (as->connection_index); + return tls_ctx_write (ctx, as, sp); } u8 * |