Make sure half-open sessions are marked as transport closed once
connected notification is provided. This ensures that if they've been
scheduled for tx, the event is ignored.
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I8c44584e843d93365ec737ae4e1bcb74eba35506
(cherry picked from commit
fb49e078164cd077f652358ad6cfdcda4bdfe73e)
else
{
/* Cleanup half-open session lookup table if need be */
else
{
/* Cleanup half-open session lookup table if need be */
- if (ho->session_state != SESSION_STATE_TRANSPORT_CLOSING)
+ if (ho->session_state != SESSION_STATE_TRANSPORT_CLOSED)
{
transport_connection_t *tc;
tc = transport_get_half_open (session_get_transport_proto (ho),
{
transport_connection_t *tc;
tc = transport_get_half_open (session_get_transport_proto (ho),
session_t *ho = ho_session_get (tc->s_index);
/* Cleanup half-open lookup table if need be */
session_t *ho = ho_session_get (tc->s_index);
/* Cleanup half-open lookup table if need be */
- if (ho->session_state != SESSION_STATE_TRANSPORT_CLOSING)
+ if (ho->session_state != SESSION_STATE_TRANSPORT_CLOSED)
{
if (!(tc->flags & TRANSPORT_CONNECTION_F_NO_LOOKUP))
session_lookup_del_half_open (tc);
{
if (!(tc->flags & TRANSPORT_CONNECTION_F_NO_LOOKUP))
session_lookup_del_half_open (tc);
session_lookup_del_half_open (tc);
ho = ho_session_get (tc->s_index);
session_lookup_del_half_open (tc);
ho = ho_session_get (tc->s_index);
- session_set_state (ho, SESSION_STATE_TRANSPORT_CLOSING);
+ session_set_state (ho, SESSION_STATE_TRANSPORT_CLOSED);
opaque = ho->opaque;
app_wrk = app_worker_get_if_valid (ho->app_wrk_index);
if (!app_wrk)
opaque = ho->opaque;
app_wrk = app_worker_get_if_valid (ho->app_wrk_index);
if (!app_wrk)