hc->fd, msg);
numclients--;
close(hc->fd);
-
+ del_close_on_fork_list(hc->fd);
list_for_each_entry_safe(qp, tmp, &hc->packet_queue, node) {
free(qp->packet);
list_del(&qp->node);
free(hc);
}
-static void http_shutdown_clients_real(void)
-{
- struct http_client *hc, *tmp;
- list_for_each_entry_safe(hc, tmp, &clients, node)
- http_shutdown_client(hc, "afs request");
-}
static void http_shutdown_clients(void)
{
struct http_client *hc, *tmp;
CLIENT_ADDR(hc), hc->fd);
numclients++;
list_add(&hc->node, &clients);
+ add_close_on_fork_list(hc->fd);
+ mark_fd_nonblock(hc->fd);
return;
err_out:
PARA_WARNING_LOG("ignoring connect request from %s (%s)\n",
{
server_fd = init_tcp_socket(port);
if (server_fd < 0) {
- http_shutdown_clients_real();
+ http_shutdown_clients();
self->status = SENDER_OFF;
return server_fd;
}
del_close_on_fork_list(server_fd);
server_fd = -1;
}
- http_shutdown_clients_real();
+ http_shutdown_clients();
return 1;
}