summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/server_worker_receive.c')
-rw-r--r--src/server/server_worker_receive.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/server/server_worker_receive.c b/src/server/server_worker_receive.c
index 10944a9..5b4edc3 100644
--- a/src/server/server_worker_receive.c
+++ b/src/server/server_worker_receive.c
@@ -1,3 +1,9 @@
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+
+#include "../error/error.h"
+
#include "server.h"
int ZoO_server_worker_receive
@@ -5,8 +11,11 @@ int ZoO_server_worker_receive
struct ZoO_server_worker worker [const restrict static 1]
)
{
+ const int old_errno = errno;
ssize_t received;
+ errno = 0;
+
received =
getline
(
@@ -17,11 +26,20 @@ int ZoO_server_worker_receive
if (received == -1)
{
- /* TODO: error message? */
+ ZoO_ERROR
+ (
+ stderr,
+ "Thread could not receive from socket: %s.",
+ strerror(errno)
+ );
+
+ errno = old_errno;
return -1;
}
+ errno = old_errno;
+
worker->buffer_length = (size_t) received;
return 0;