/*
- * Copyright (C) 2006-2007 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2008 Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
struct dccp_client *dc;
int ret;
- if (!FD_ISSET(listen_fd, rfds))
+ if (listen_fd < 0 || !FD_ISSET(listen_fd, rfds))
return;
ret = para_accept(listen_fd, NULL, 0);
if (ret < 0) {
if (ret < 0)
return ret;
listen_fd = ret;
+ ret = mark_fd_nonblocking(listen_fd);
+ if (ret < 0) {
+ PARA_EMERG_LOG("%s\n", para_strerror(-ret));
+ exit(EXIT_FAILURE);
+ }
add_close_on_fork_list(listen_fd);
- mark_fd_nonblocking(listen_fd);
return 1;
}
s->client_cmds[SENDER_DELETE] = NULL;
self = s;
ret = dccp_open();
- if (ret < 0) {
+ if (ret < 0)
PARA_ERROR_LOG("%s\n", para_strerror(-ret));
- s->status = SENDER_OFF;
- } else
- s->status = SENDER_ON;
}