hsa: http client send signal on transport reset 41/43441/2
authorMatus Fabian <[email protected]>
Wed, 16 Jul 2025 16:09:51 +0000 (12:09 -0400)
committerMatus Fabian <[email protected]>
Thu, 17 Jul 2025 07:51:43 +0000 (03:51 -0400)
we don't need to wait for timeout

Type: improvement

Change-Id: I7aef2581c1ac48d4b147914ccae8aa5bedb363ca
Signed-off-by: Matus Fabian <[email protected]>
src/plugins/hs_apps/http_client.c

index 6ddf0b5..b6462be 100644 (file)
@@ -361,6 +361,7 @@ hc_session_transport_closed_callback (session_t *s)
   hc_main_t *hcm = &hc_main;
   hc_worker_t *wrk = hc_worker_get (s->thread_index);
 
+  HTTP_DBG (1, "transport closed");
   clib_spinlock_lock_if_init (&hcm->lock);
   if (s->session_state == SESSION_STATE_TRANSPORT_CLOSED)
     {
@@ -390,8 +391,12 @@ hc_session_reset_callback (session_t *s)
   hc_main_t *hcm = &hc_main;
   hc_session_t *hc_session;
   vnet_disconnect_args_t _a = { 0 }, *a = &_a;
+  hc_worker_t *wrk = hc_worker_get (s->thread_index);
   int rv;
 
+  HTTP_DBG (1, "transport reset");
+  vlib_process_signal_event_mt (wrk->vlib_main, hcm->cli_node_index,
+                               HC_TRANSPORT_CLOSED, 0);
   hc_session = hc_session_get (s->opaque, s->thread_index);
   hc_session->session_flags |= HC_S_FLAG_IS_CLOSED;