void remove_server(t_list *list, t_server *server) { int size; t_server *srv; size = (int)list_get_size(*list) - 1; while (size >= 0) { if ((srv = (t_server*)GET_AT(*list, size)) != NULL) if (server == srv) { list_del_elem_at_position(list, (unsigned int)size); remove_all_channel(srv); free(srv); return ; } --size; } }
static int waiting_list(t_server *srv) { struct timeb now; unsigned int i; t_client *cl; i = 0; ftime(&now); while (i < list_get_size(srv->queue_clients)) { if ((cl = list_get_elem_at_position(srv->queue_clients, i)) != NULL) { if (calculate_elapse(&cl->timer.val, &now) >= 10.0) { if (close(cl->sock) == -1) return (-1); list_del_elem_at_position(&srv->queue_clients, i); return (0); } } i++; } return (0); }
void disconnect_graphic(int fd) { list_del_elem_at_position(&g_s.gc_list, fd); }