| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/server/server_wait_for_event.c')
| -rw-r--r-- | src/server/server_wait_for_event.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/server/server_wait_for_event.c b/src/server/server_wait_for_event.c index b229e6b..015592a 100644 --- a/src/server/server_wait_for_event.c +++ b/src/server/server_wait_for_event.c @@ -4,6 +4,8 @@ #include <stdio.h> #include <string.h> +#include "../error/error.h" + #include "server.h" int ZoO_server_wait_for_event @@ -13,21 +15,28 @@ int ZoO_server_wait_for_event { int ready_fds; const int old_errno = errno; + fd_set ready_to_read; + + ready_to_read = server->socket.as_a_set; /* call to select may alter timeout */ memset((void *) &(server->socket.timeout), 0, sizeof(struct timeval)); server->socket.timeout.tv_sec = ZoO_SERVER_SOCKET_ACCEPT_TIMEOUT_SEC; + errno = 0; + ready_fds = select ( (server->socket.file_descriptor + 1), - &(server->socket.as_a_set), + &ready_to_read, (fd_set *) NULL, (fd_set *) NULL, &(server->socket.timeout) ); + ZoO_DEBUG(stderr, 1, "SELECT returned: %i, errno is %i.", ready_fds, errno); + if (errno == EINTR) { ready_fds = 0; @@ -35,10 +44,10 @@ int ZoO_server_wait_for_event if (ready_fds == -1) { - fprintf + ZoO_FATAL ( stderr, - "[F] Unable to wait on server socket: %s.\n", + "Unable to wait on server socket: %s.", strerror(errno) ); |


