| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/client.c | 2 | ||||
| -rw-r--r-- | src/config/parameters/parameters.c | 11 | ||||
| -rw-r--r-- | src/server/handle_client.c | 3 | ||||
| -rw-r--r-- | 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] <config_file>" -         "<options>:\n" -         "\t\t(Re)defines an axis.\n\n" +         "\t\tUse the options defined in <config_file>.\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;  } | 


