summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/server_worker.c')
-rw-r--r--src/server/server_worker.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/server/server_worker.c b/src/server/server_worker.c
index c96f92e..e1118e8 100644
--- a/src/server/server_worker.c
+++ b/src/server/server_worker.c
@@ -1,6 +1,7 @@
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
+#include <errno.h>
#include "server.h"
@@ -10,6 +11,8 @@ static int initialize
void * input
)
{
+ const int old_errno = errno;
+
memcpy
(
(void *) &(worker->params),
@@ -29,12 +32,24 @@ static int initialize
worker->socket_as_file = fdopen(worker->params.socket, "w+");
+ errno = 0;
+
if (worker->socket_as_file == (FILE *) NULL)
{
- /* TODO: error message? */
+ ZoO_ERROR
+ (
+ stderr,
+ "Unable to open client socket as a file stream: %s.",
+ strerror(errno)
+ );
+
+ errno = old_errno;
+
return -1;
}
+ errno = old_errno;
+
return 0;
}