From ea309c46608e3df96771f2d7ef97453e98fece13 Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Thu, 26 Oct 2023 08:46:46 -0700 Subject: tcp: postpone cleanup on connect failures Type: fix Signed-off-by: Florin Coras Change-Id: I231b319d4d7aa3e17cc8cfe8aaa4762995a5b2c4 --- src/vnet/tcp/tcp_input.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/vnet/tcp/tcp_input.c') diff --git a/src/vnet/tcp/tcp_input.c b/src/vnet/tcp/tcp_input.c index 1494fd84b6b..932a7ec66ab 100644 --- a/src/vnet/tcp/tcp_input.c +++ b/src/vnet/tcp/tcp_input.c @@ -1909,7 +1909,9 @@ tcp46_syn_sent_inline (vlib_main_t *vm, vlib_node_runtime_t *node, SESSION_E_NONE)) { tcp_send_reset_w_pkt (new_tc, b[0], thread_index, is_ip4); - tcp_connection_cleanup (new_tc); + tcp_program_cleanup (wrk, new_tc); + new_tc->state = TCP_STATE_CLOSED; + new_tc->c_s_index = ~0; error = TCP_ERROR_CREATE_SESSION_FAIL; goto cleanup_ho; } @@ -1930,8 +1932,10 @@ tcp46_syn_sent_inline (vlib_main_t *vm, vlib_node_runtime_t *node, if (session_stream_connect_notify (&new_tc->connection, SESSION_E_NONE)) { - tcp_connection_cleanup (new_tc); tcp_send_reset_w_pkt (tc, b[0], thread_index, is_ip4); + tcp_program_cleanup (wrk, new_tc); + new_tc->state = TCP_STATE_CLOSED; + new_tc->c_s_index = ~0; TCP_EVT (TCP_EVT_RST_SENT, tc); error = TCP_ERROR_CREATE_SESSION_FAIL; goto cleanup_ho; -- cgit 1.2.3-korg