{
int fds[SESSION_N_FD_TYPE], n_fds = 0;
vl_api_map_another_segment_t *mp;
- svm_fifo_segment_private_t *fs;
vl_api_registration_t *reg;
+ fifo_segment_t *fs;
ssvm_private_t *sp;
u8 fd_flags = 0;
{
svm_msg_q_msg_t _msg, *msg = &_msg;
svm_msg_q_t *app_mq, *vpp_evt_q;
- transport_connection_t *tc;
+ transport_endpoint_t tep;
session_bound_msg_t *mp;
app_worker_t *app_wrk;
session_event_t *evt;
ls = app_listener_get_session (al);
else
ls = app_listener_get_local_session (al);
- tc = listen_session_get_transport (ls);
- mp->lcl_port = tc->lcl_port;
- mp->lcl_is_ip4 = tc->is_ip4;
- clib_memcpy_fast (mp->lcl_ip, &tc->lcl_ip, sizeof (tc->lcl_ip));
+
+ session_get_endpoint (ls, &tep, 1 /* is_lcl */ );
+ mp->lcl_port = tep.port;
+ mp->lcl_is_ip4 = tep.is_ip4;
+ clib_memcpy_fast (mp->lcl_ip, &tep.ip, sizeof (tep.ip));
vpp_evt_q = session_main_get_vpp_event_queue (0);
mp->vpp_evt_q = pointer_to_uword (vpp_evt_q);
a->sep.transport_proto = mp->proto;
a->sep.peer.fib_index = mp->vrf;
a->sep.peer.sw_if_index = ENDPOINT_INVALID_INDEX;
+ a->sep_ext.transport_opts = mp->transport_opts;
if (mp->hostname_len)
{
vec_validate (a->sep_ext.hostname, mp->hostname_len - 1);
a->app_index = app->app_index;
a->wrk_map_index = mp->wrk_index;
if ((rv = vnet_connect (a)))
- clib_warning ("connect returned: %u", rv);
+ clib_warning ("connect returned: %U", format_vnet_api_errno, rv);
vec_free (a->sep_ext.hostname);
}
else