*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
list_for_each_entry_safe(qp, tmp, &hc->packet_queue, node) {
free(qp->packet);
list_del(&qp->node);
list_for_each_entry_safe(qp, tmp, &hc->packet_queue, node) {
free(qp->packet);
list_del(&qp->node);
{
struct http_client *hc, *tmp;
list_for_each_entry_safe(hc, tmp, &clients, node)
{
struct http_client *hc, *tmp;
list_for_each_entry_safe(hc, tmp, &clients, node)
/* need to send header */
PARA_INFO_LOG("queueing header: %d\n", hlen);
/* need to send header */
PARA_INFO_LOG("queueing header: %d\n", hlen);
PARA_INFO_LOG("accepted client #%d: %s (fd %d)\n", numclients,
CLIENT_ADDR(hc), hc->fd);
numclients++;
PARA_INFO_LOG("accepted client #%d: %s (fd %d)\n", numclients,
CLIENT_ADDR(hc), hc->fd);
numclients++;
- list_add(&hc->node, &clients);
+ para_list_add(&hc->node, &clients);
+ add_close_on_fork_list(hc->fd);
+ mark_fd_nonblock(hc->fd);
break; /* wait until server starts playing */
para_fd_set(hc->fd, wfds, max_fileno);
hc->check_w = 1;
break; /* wait until server starts playing */
para_fd_set(hc->fd, wfds, max_fileno);
hc->check_w = 1;
ai->netmask = scd->netmask;
PARA_INFO_LOG("adding %s/%i to access list\n", inet_ntoa(ai->addr),
ai->netmask);
ai->netmask = scd->netmask;
PARA_INFO_LOG("adding %s/%i to access list\n", inet_ntoa(ai->addr),
ai->netmask);