diff options
author | 2024-12-30 20:40:51 +0100 | |
---|---|---|
committer | 2024-12-30 20:42:37 +0100 | |
commit | e210d413d53081f8603af16f203fb92e08127cdc (patch) | |
tree | b60aac85839a9339011e815b7192b204127caa73 /src/vnet/session/session.c | |
parent | d11d31653d948c9f3ac80afd69f111657b007f0f (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.c | 13 |
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); |