From dfb3b8771292e4c863ca266856aa2b5eb7cc7518 Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Fri, 16 Aug 2019 17:48:44 -0700 Subject: session: add explicit reset api Type: feature This can be used to forcefully close a session. It's only available to builtin applications for now. Transports must support the reset api otherwise normal close is used. Change-Id: I5e6d681cbc4c8045385e293e0e9d86fa2bf45849 Signed-off-by: Florin Coras --- src/vnet/session/session_node.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/vnet/session/session_node.c') diff --git a/src/vnet/session/session_node.c b/src/vnet/session/session_node.c index 5af54a8165a..1d662a20e3c 100644 --- a/src/vnet/session/session_node.c +++ b/src/vnet/session/session_node.c @@ -902,6 +902,12 @@ session_event_dispatch (session_worker_t * wrk, vlib_node_runtime_t * node, break; session_transport_close (s); break; + case SESSION_CTRL_EVT_RESET: + s = session_get_from_handle_if_valid (e->session_handle); + if (PREDICT_FALSE (!s)) + break; + session_transport_reset (s); + break; case SESSION_IO_EVT_BUILTIN_RX: s = session_event_get_session (e, thread_index); if (PREDICT_FALSE (!s || s->session_state >= SESSION_STATE_CLOSING)) -- cgit 1.2.3-korg