Пример #1
0
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;
  }
}
Пример #2
0
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);
}
Пример #3
0
void		disconnect_graphic(int fd)
{
  list_del_elem_at_position(&g_s.gc_list, fd);
}