X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fsession%2Fsession_api.c;h=479c5d1ca83bbc791d07f5fe85075bc41718fd9b;hb=8ac1d6d05;hp=83af125946edf3e33a2acfe123d95ca31083e5a8;hpb=88001c64e9e5d0dc08e303857ca34687454ebf10;p=vpp.git diff --git a/src/vnet/session/session_api.c b/src/vnet/session/session_api.c index 83af125946e..479c5d1ca83 100755 --- a/src/vnet/session/session_api.c +++ b/src/vnet/session/session_api.c @@ -178,7 +178,6 @@ mq_send_session_accepted_cb (session_t * s) session_accepted_msg_t *mp; session_event_t *evt; application_t *app; - app_listener_t *al; app = application_get (app_wrk->app_index); app_mq = app_wrk->event_queue; @@ -197,9 +196,8 @@ mq_send_session_accepted_cb (session_t * s) if (session_has_transport (s)) { - listener = listen_session_get (s->listener_index); - al = app_listener_get (app, listener->al_index); - mp->listener_handle = app_listener_handle (al); + listener = listen_session_get_from_handle (s->listener_handle); + mp->listener_handle = app_listen_session_handle (listener); if (application_is_proxy (app)) { listener = @@ -219,9 +217,8 @@ mq_send_session_accepted_cb (session_t * s) ct_connection_t *ct; ct = (ct_connection_t *) session_get_transport (s); - listener = listen_session_get (s->listener_index); - al = app_listener_get (app, listener->al_index); - mp->listener_handle = app_listener_handle (al); + listener = listen_session_get_from_handle (s->listener_handle); + mp->listener_handle = app_listen_session_handle (listener); mp->rmt.is_ip4 = session_type_is_ip4 (listener->session_type); mp->rmt.port = ct->c_rmt_port; mp->handle = session_handle (s); @@ -387,7 +384,7 @@ mq_send_session_bound_cb (u32 app_wrk_index, u32 api_context, { 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; @@ -420,10 +417,11 @@ mq_send_session_bound_cb (u32 app_wrk_index, u32 api_context, 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); @@ -642,6 +640,7 @@ vl_api_unbind_uri_t_handler (vl_api_unbind_uri_t * mp) { a->uri = (char *) mp->uri; a->app_index = app->app_index; + a->wrk_map_index = 0; rv = vnet_unbind_uri (a); } else @@ -890,6 +889,7 @@ vl_api_connect_sock_t_handler (vl_api_connect_sock_t * mp) 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.parent_handle = mp->parent_handle; if (mp->hostname_len) { vec_validate (a->sep_ext.hostname, mp->hostname_len - 1); @@ -900,7 +900,7 @@ vl_api_connect_sock_t_handler (vl_api_connect_sock_t * mp) 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