The so called new_peers were not freed and their sockets were not closed.
We are fixing it now.
forb_peer_disconnected(peer);
forb_peer_put(peer);
}
+ if (port->new_peer)
+ forb_peer_put(port->new_peer);
if (port->desc.proto->port_destroy) {
port->desc.proto->port_destroy(port);
inet_port_destroy(forb_port_t * port)
{
struct inet_port *pd = port->desc.proto_priv;
+ forb_peer_t *peer;
close(pd->epoll_fd);
close(pd->udp_socket);
close(pd->listen_socket);
+ ul_list_for_each_cut(inet_port_new_peer, pd, peer) {
+ forb_peer_put(peer);
+ }
forb_free(pd);
return 0;
}