summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/vcl/vppcom.c4
-rw-r--r--src/vnet/session/application_interface.h1
-rw-r--r--src/vnet/session/session_api.c2
3 files changed, 5 insertions, 2 deletions
diff --git a/src/vcl/vppcom.c b/src/vcl/vppcom.c
index b3efdcd9817..28f46f17b93 100644
--- a/src/vcl/vppcom.c
+++ b/src/vcl/vppcom.c
@@ -471,8 +471,8 @@ vcl_session_accepted_handler (vcl_worker_t * wrk, session_accepted_msg_t * mp,
sizeof (ip46_address_t));
vcl_session_table_add_vpp_handle (wrk, mp->handle, session->session_index);
- session->transport.lcl_port = listen_session->transport.lcl_port;
- session->transport.lcl_ip = listen_session->transport.lcl_ip;
+ session->transport.lcl_port = mp->lcl.port;
+ session->transport.lcl_ip = mp->lcl.ip;
session->session_type = listen_session->session_type;
session->is_dgram = vcl_proto_is_dgram (session->session_type);
session->listener_index = listen_session->session_index;
diff --git a/src/vnet/session/application_interface.h b/src/vnet/session/application_interface.h
index 733f5dc0ef6..46029f0307a 100644
--- a/src/vnet/session/application_interface.h
+++ b/src/vnet/session/application_interface.h
@@ -378,6 +378,7 @@ typedef struct session_accepted_msg_
u64 segment_handle;
uword vpp_event_queue_address;
u32 mq_index;
+ transport_endpoint_t lcl;
transport_endpoint_t rmt;
u8 flags;
} __clib_packed session_accepted_msg_t;
diff --git a/src/vnet/session/session_api.c b/src/vnet/session/session_api.c
index cf5a66d9e7a..fe9ebc15db3 100644
--- a/src/vnet/session/session_api.c
+++ b/src/vnet/session/session_api.c
@@ -163,6 +163,7 @@ mq_send_session_accepted_cb (session_t * s)
m.handle = session_handle (s);
session_get_endpoint (s, &m.rmt, 0 /* is_lcl */);
+ session_get_endpoint (s, &m.lcl, 1 /* is_lcl */);
}
else
{
@@ -173,6 +174,7 @@ mq_send_session_accepted_cb (session_t * s)
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);