aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/session/session.c
diff options
context:
space:
mode:
authorMatus Fabian <matfabia@cisco.com>2024-12-30 20:40:51 +0100
committerMatus Fabian <matfabia@cisco.com>2024-12-30 20:42:37 +0100
commite210d413d53081f8603af16f203fb92e08127cdc (patch)
treeb60aac85839a9339011e815b7192b204127caa73 /src/vnet/session/session.c
parentd11d31653d948c9f3ac80afd69f111657b007f0f (diff)
session: proxy session migration fix
Type: fix Change-Id: I487ee4e69d8885f46d7a4af2c66a710da66108c5 Signed-off-by: Matus Fabian <matfabia@cisco.com>
Diffstat (limited to 'src/vnet/session/session.c')
-rw-r--r--src/vnet/session/session.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/vnet/session/session.c b/src/vnet/session/session.c
index be2c5dc4df7..cc0e89fd1e2 100644
--- a/src/vnet/session/session.c
+++ b/src/vnet/session/session.c
@@ -1030,10 +1030,13 @@ session_switch_pool (void *cb_args)
if (!app_wrk)
goto app_closed;
- /* Cleanup fifo segment slice state for fifos */
- sm = app_worker_get_connect_segment_manager (app_wrk);
- segment_manager_detach_fifo (sm, &s->rx_fifo);
- segment_manager_detach_fifo (sm, &s->tx_fifo);
+ if (!(s->flags & SESSION_F_PROXY))
+ {
+ /* Cleanup fifo segment slice state for fifos */
+ sm = app_worker_get_connect_segment_manager (app_wrk);
+ segment_manager_detach_fifo (sm, &s->rx_fifo);
+ segment_manager_detach_fifo (sm, &s->tx_fifo);
+ }
/* Check if session closed during migration */
if (s->session_state >= SESSION_STATE_TRANSPORT_CLOSING)
@@ -1079,7 +1082,7 @@ session_dgram_connect_notify (transport_connection_t * tc,
session_lookup_add_connection (tc, session_handle (new_s));
app_wrk = app_worker_get_if_valid (new_s->app_wrk_index);
- if (app_wrk)
+ if (app_wrk && !(new_s->flags & SESSION_F_PROXY))
{
/* New set of fifos attached to the same shared memory */
sm = app_worker_get_connect_segment_manager (app_wrk);