get rid of list_enqueue_new()
fix logic of udp_server_cb()