| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/handle_client.c | 3 | ||||
| -rw-r--r-- | src/server/interruption.c | 10 | 
2 files changed, 12 insertions, 1 deletions
| diff --git a/src/server/handle_client.c b/src/server/handle_client.c index a5eb7f7..bc18e95 100644 --- a/src/server/handle_client.c +++ b/src/server/handle_client.c @@ -40,6 +40,7 @@ int relabsd_server_handle_client     /* FIXME: reallocating at every new connection is kind of wasteful. */     char * input;     ssize_t input_size; +   size_t input_buffer_size;     errno = 0;     socket_as_file = fdopen(socket, "r"); @@ -59,7 +60,7 @@ int relabsd_server_handle_client     errno = 0; -   input_size = getline(&input, (size_t *) NULL, socket_as_file); +   input_size = getline(&input, &input_buffer_size, socket_as_file);     if (input_size < 1)     { diff --git a/src/server/interruption.c b/src/server/interruption.c index 7dabd3d..12d3c83 100644 --- a/src/server/interruption.c +++ b/src/server/interruption.c @@ -71,6 +71,16 @@ int relabsd_server_initialize_signal_handlers (void)        return -1;     } +   if (signal(SIGTERM, interrupt) == SIG_ERR) +   { +      RELABSD_S_FATAL("Unable to set the SIGTERM signal handler."); + +      (void) close(RELABSD_INTERRUPTION_PIPES[0]); +      (void) close(RELABSD_INTERRUPTION_PIPES[1]); + +      return -1; +   } +     return 0;  } | 


