diff options
Diffstat (limited to 'src/vnet/session')
-rw-r--r-- | src/vnet/session/session_api.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/vnet/session/session_api.c b/src/vnet/session/session_api.c index f54a46b39ba..cf5a66d9e7a 100644 --- a/src/vnet/session/session_api.c +++ b/src/vnet/session/session_api.c @@ -303,8 +303,6 @@ mq_send_session_connected_cb (u32 app_wrk_index, u32 api_context, m.server_rx_fifo = fifo_segment_fifo_offset (s->rx_fifo); m.server_tx_fifo = fifo_segment_fifo_offset (s->tx_fifo); m.segment_handle = session_segment_handle (s); - s->rx_fifo->shr->client_session_index = api_context; - s->tx_fifo->shr->client_session_index = api_context; } else { @@ -326,6 +324,11 @@ mq_send_session_connected_cb (u32 app_wrk_index, u32 api_context, m.ct_segment_handle = session_segment_handle (ss); } + /* Setup client session index in advance, in case data arrives + * before the app processes message and updates it */ + s->rx_fifo->shr->client_session_index = api_context; + s->tx_fifo->shr->client_session_index = api_context; + snd_msg: app_mq = app_wrk->event_queue; |