vcl: allow reads after transport cleanup 99/39599/7
authorFlorin Coras <[email protected]>
Sat, 30 Sep 2023 19:56:13 +0000 (12:56 -0700)
committerDave Barach <[email protected]>
Sun, 8 Jun 2025 00:39:50 +0000 (00:39 +0000)
Type: improvement

Signed-off-by: Florin Coras <[email protected]>
Change-Id: Ia464aae418999cc09bc38fe9fadd3b164f4e0067

src/vcl/vppcom.c

index 35af7f7..0671a37 100644 (file)
@@ -2119,7 +2119,9 @@ vppcom_session_read_internal (uint32_t session_handle, void *buf, int n,
       VDBG (0, "session %u[0x%llx] is not open! state 0x%x (%s)",
            s->session_index, s->vpp_handle, s->session_state,
            vcl_session_state_str (s->session_state));
-      return vcl_session_closed_error (s);
+      rx_fifo = vcl_session_is_ct (s) ? s->ct_rx_fifo : s->rx_fifo;
+      if (svm_fifo_is_empty_cons (rx_fifo))
+       return vcl_session_closed_error (s);
     }
 
   if (PREDICT_FALSE (s->flags & VCL_SESSION_F_RD_SHUTDOWN))