session: support builtin ct accepts 82/42582/5
authorFlorin Coras <[email protected]>
Thu, 27 Mar 2025 06:29:01 +0000 (02:29 -0400)
committerDave Barach <[email protected]>
Sat, 12 Apr 2025 00:48:06 +0000 (00:48 +0000)
Type: improvement

Change-Id: I876630549e113b9ee5e81357a30523cbcc6b434e
Signed-off-by: Florin Coras <[email protected]>
src/vnet/session/session_input.c

index 01be281..23a5182 100644 (file)
@@ -4,6 +4,7 @@
 
 #include <vnet/session/session.h>
 #include <vnet/session/application.h>
+#include <vnet/session/application_local.h>
 
 static inline int
 mq_try_lock (svm_msg_q_t *mq)
@@ -166,6 +167,13 @@ app_worker_flush_events_inline (app_worker_t *app_wrk, u32 thread_index,
                  if (!(s->flags & SESSION_F_APP_CLOSED))
                    app->cb_fns.session_disconnect_callback (s);
                }
+             else if (!session_has_transport (s))
+               {
+                 /* Special handling for cut-through sessions for builtin apps
+                  * similar to session_mq_accepted_reply_handler */
+                 session_set_state (s, SESSION_STATE_READY);
+                 ct_session_connect_notify (s, SESSION_E_NONE);
+               }
            }
          break;
        case SESSION_CTRL_EVT_CONNECTED: