summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2023-12-12 14:01:43 -0800
committerDave Barach <vpp@barachs.net>2024-01-09 17:07:26 +0000
commit5afc13d594bf874092e135a8dc94d30c4537526b (patch)
tree6c73bd665cb422b8c8b82d2d5a58b1dc88ac08f4
parent2b5bc3bce6fc5d4a2bbe1342522c62f9da0efd19 (diff)
session: avoid spurious closed notifications
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ia98556e7ae61547cf153c78ec085cd4248bee74a
-rw-r--r--src/vnet/session/session.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/vnet/session/session.c b/src/vnet/session/session.c
index 9ac9229d4db..2afc37a77f8 100644
--- a/src/vnet/session/session.c
+++ b/src/vnet/session/session.c
@@ -1184,6 +1184,9 @@ session_transport_closed_notify (transport_connection_t * tc)
if (!(s = session_get_if_valid (tc->s_index, tc->thread_index)))
return;
+ if (s->session_state >= SESSION_STATE_TRANSPORT_CLOSED)
+ return;
+
/* Transport thinks that app requested close but it actually didn't.
* Can happen for tcp:
* 1)if fin and rst are received in close succession.