From 272e335b057dce34304d17074a81d3e3d0cde175 Mon Sep 17 00:00:00 2001 From: nsensfel Date: Tue, 7 Jan 2020 11:25:43 +0100 Subject: ... --- src/client.c | 2 +- src/config/parameters/parameters.c | 11 +++++++++-- src/server/handle_client.c | 3 ++- src/server/interruption.c | 10 ++++++++++ 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/client.c b/src/client.c index c4c1148..0b84fe7 100644 --- a/src/client.c +++ b/src/client.c @@ -125,7 +125,7 @@ static int send_commands ( i++; ((j > 0) && (i < argc)); - j++, i-- + j--, i++ ) { if (fputc(' ', socket) == EOF) diff --git a/src/config/parameters/parameters.c b/src/config/parameters/parameters.c index bff7642..eb06c42 100644 --- a/src/config/parameters/parameters.c +++ b/src/config/parameters/parameters.c @@ -357,6 +357,14 @@ int relabsd_parameters_argument_count_for { *result = 1; } + else if + ( + RELABSD_STRING_EQUALS("-q", option) + || RELABSD_STRING_EQUALS("--quit", option) + ) + { + *result = 0; + } else { return -1; @@ -402,8 +410,7 @@ void relabsd_parameters_print_usage (const char exec [const restrict static 1]) "\t\tModifies an axis.\n\n" "\t[-f | --config] " - ":\n" - "\t\t(Re)defines an axis.\n\n" + "\t\tUse the options defined in .\n\n" "\t[-q | --quit]:\n" "\t\tTerminates the targeted server instance.\n\n" 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; } -- cgit v1.2.3-70-g09d2