+ p = hash_get (vcm->session_index_by_vpp_handles, mp->listener_handle);
+ if (p)
+ {
+ int rval;
+ session_t *listen_session;
+
+ rval = vppcom_session_at_index (p[0], &listen_session);
+ if (PREDICT_FALSE (rval))
+ {
+ if (VPPCOM_DEBUG > 1)
+ clib_warning ("[%d] invalid listen session, sid (%u) "
+ "has been closed!", getpid (), p[0]);
+ }
+ else
+ {
+ session->lcl_port = listen_session->lcl_port;
+ session->lcl_addr = listen_session->lcl_addr;
+ }
+ clib_spinlock_unlock (&vcm->sessions_lockp);
+ hash_unset (vcm->session_index_by_vpp_handles, mp->handle);
+ }
+ else
+ {
+ clib_warning ("[%d] couldn't find listen session: unknown vpp "
+ "listener handle %llx", getpid (), mp->listener_handle);
+ }
+
+ /* TBD: move client_session_index_fifo into listener session */