Add get_endpoint in transport vft
[vpp.git] / src / vnet / session / session.c
index 58ec1c0..c1d02ab 100644 (file)
@@ -1228,7 +1228,7 @@ session_segment_handle (session_t * s)
 {
   svm_fifo_t *f;
 
-  if (s->session_state == SESSION_STATE_LISTENING)
+  if (!s->rx_fifo)
     return SESSION_INVALID_HANDLE;
 
   f = s->rx_fifo;
@@ -1291,6 +1291,20 @@ session_get_transport (session_t * s)
                                   s->connection_index);
 }
 
+void
+session_get_endpoint (session_t * s, ip46_address_t * ip, u16 * port,
+                     u8 * is_ip4, u8 is_lcl)
+{
+  if (s->session_state != SESSION_STATE_LISTENING)
+    return transport_get_endpoint (session_get_transport_proto (s),
+                                  s->connection_index, s->thread_index, ip,
+                                  port, is_ip4, is_lcl);
+  else
+    return transport_get_listener_endpoint (session_get_transport_proto (s),
+                                           s->connection_index, ip, port,
+                                           is_ip4, is_lcl);
+}
+
 transport_connection_t *
 listen_session_get_transport (session_t * s)
 {