summaryrefslogtreecommitdiffstats
path: root/src/vnet/session/session.c
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2018-10-17 14:53:11 -0700
committerMarco Varlese <marco.varlese@suse.de>2018-10-19 06:58:46 +0000
commit9a1e6eafd68b372e7aec53f75ac8f1881de72150 (patch)
tree6df01ec56c54ea500bbff4e33d9ecd996ae7bfe2 /src/vnet/session/session.c
parent703ee73dfbbec8c34ff7106170f5de05d9eae689 (diff)
tls: fix connection failures/interrupts at scale (VPP-1464)
Change-Id: I0bc4062c1fd3202ee201acb36a2bb14fc6ee1543 Signed-off-by: Florin Coras <fcoras@cisco.com> (cherry picked from commit c01d578a625fb136bc33b0eb9c19907769a67989)
Diffstat (limited to 'src/vnet/session/session.c')
-rw-r--r--src/vnet/session/session.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/vnet/session/session.c b/src/vnet/session/session.c
index 23d258ffdea..81c93064d38 100644
--- a/src/vnet/session/session.c
+++ b/src/vnet/session/session.c
@@ -814,18 +814,22 @@ stream_session_delete_notify (transport_connection_t * tc)
* from the app, do the whole disconnect since we might still
* have lingering events */
stream_session_disconnect (s);
+ s->session_state = SESSION_STATE_CLOSED;
break;
case SESSION_STATE_CLOSING:
/* Cleanup lookup table. Transport needs to still be valid */
session_lookup_del_session (s);
+ s->session_state = SESSION_STATE_CLOSED;
break;
case SESSION_STATE_CLOSED:
case SESSION_STATE_ACCEPTING:
stream_session_delete (s);
break;
+ default:
+ /* Assume connection was not yet added the lookup table */
+ session_free_w_fifos (s);
+ break;
}
-
- s->session_state = SESSION_STATE_CLOSED;
}
/**