tls: fix forced ho cleanup
Do not force cleanup of tcp half-open connection if tcp's cleanup notification to tls is pending. Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I7bccbe8429a4aab10df1c89b66138b967e04ac19
This commit is contained in:

committed by
Florin Coras

parent
f9ab6985d4
commit
4aaedaa2ff
@ -427,7 +427,8 @@ tls_session_cleanup_ho (session_t *s)
|
||||
/* session opaque stores the opaque passed on connect */
|
||||
ho_index = s->opaque;
|
||||
ctx = tls_ctx_half_open_get (ho_index);
|
||||
session_half_open_delete_notify (&ctx->connection);
|
||||
if (!ctx->no_app_session)
|
||||
session_half_open_delete_notify (&ctx->connection);
|
||||
tls_ctx_half_open_free (ho_index);
|
||||
}
|
||||
|
||||
@ -946,10 +947,19 @@ static void
|
||||
tls_cleanup_ho (u32 ho_index)
|
||||
{
|
||||
tls_ctx_t *ctx;
|
||||
session_t *s;
|
||||
|
||||
ctx = tls_ctx_half_open_get (ho_index);
|
||||
session_cleanup_half_open (ctx->tls_session_handle);
|
||||
tls_ctx_half_open_free (ho_index);
|
||||
s = session_get_from_handle (ctx->tls_session_handle);
|
||||
/* If no pending cleanup notification, force cleanup now. Otherwise,
|
||||
* wait for cleanup notification and set no app session on ctx */
|
||||
if (s->session_state != SESSION_STATE_TRANSPORT_DELETED)
|
||||
{
|
||||
session_cleanup_half_open (ctx->tls_session_handle);
|
||||
tls_ctx_half_open_free (ho_index);
|
||||
}
|
||||
else
|
||||
ctx->no_app_session = 1;
|
||||
}
|
||||
|
||||
int
|
||||
|
Reference in New Issue
Block a user