m.handle = session_handle (s);
session_get_endpoint (s, &m.rmt, 0 /* is_lcl */);
+ session_get_endpoint (s, &m.lcl, 1 /* is_lcl */);
}
else
{
m.listener_handle = app_listen_session_handle (listener);
m.rmt.is_ip4 = session_type_is_ip4 (listener->session_type);
m.rmt.port = ct->c_rmt_port;
+ m.lcl.port = ct->c_lcl_port;
m.handle = session_handle (s);
m.vpp_event_queue_address =
fifo_segment_msg_q_offset (eq_seg, s->thread_index);
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
{
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;