void close_session(tcp_session_pcb_t *pcb, tcp_session_t *session)
{
if ((NULL == session->sprev) && (NULL == session->snext))
{
pcb->session_list = NULL;
}
else
{
if (NULL == session->sprev)
pcb->session_list = session->snext;
if (NULL != session->sprev)
session->sprev->snext = session->snext;
if (NULL != session->snext)
session->snext->sprev = session->sprev;
}
close(session->sockfd);
session->sockfd = -1;
free(session);
}