- s0->enqueue_epoch = my_enqueue_epoch;
-
- vec_add1 (smm->session_indices_to_enqueue_by_thread
- [my_thread_index],
- s0 - smm->sessions[my_thread_index]);
+ child0 = udp_connection_alloc (my_thread_index);
+ if (is_ip4)
+ {
+ ip_set (&child0->c_lcl_ip, &ip40->dst_address, 1);
+ ip_set (&child0->c_rmt_ip, &ip40->src_address, 1);
+ }
+ else
+ {
+ ip_set (&child0->c_lcl_ip, &ip60->dst_address, 0);
+ ip_set (&child0->c_rmt_ip, &ip60->src_address, 0);
+ }
+ child0->c_lcl_port = udp0->dst_port;
+ child0->c_rmt_port = udp0->src_port;
+ child0->c_is_ip4 = is_ip4;
+
+ if (stream_session_accept (&child0->connection,
+ tc0->s_index, 1))
+ {
+ error0 = UDP_ERROR_CREATE_SESSION;
+ goto trace0;
+ }
+ s0 =
+ session_get (child0->c_s_index, child0->c_thread_index);
+ s0->session_state = SESSION_STATE_READY;
+ tc0 = &child0->connection;
+ uc0 = udp_get_connection_from_transport (tc0);
+ error0 = UDP_ERROR_LISTENER;