diff options
author | Johann Latocha | 2012-02-02 23:32:03 +0100 |
---|---|---|
committer | Johann Latocha | 2012-02-02 23:32:03 +0100 |
commit | b4df59e1711abb0e9a0a21dd92b8f966d9334b4a (patch) | |
tree | a6def33319fe06ef7ce62134ed3ea2573a37fca7 /src/server/utils.c | |
parent | [MISC] .cproject and .project removed (diff) | |
download | dnbd3-b4df59e1711abb0e9a0a21dd92b8f966d9334b4a.tar.gz dnbd3-b4df59e1711abb0e9a0a21dd92b8f966d9334b4a.tar.xz dnbd3-b4df59e1711abb0e9a0a21dd92b8f966d9334b4a.zip |
[SERVER] IPC over unix socket
[SERVER] Print connected clients and used images
Diffstat (limited to 'src/server/utils.c')
-rw-r--r-- | src/server/utils.c | 80 |
1 files changed, 16 insertions, 64 deletions
diff --git a/src/server/utils.c b/src/server/utils.c index f3a4c5e..67d91c9 100644 --- a/src/server/utils.c +++ b/src/server/utils.c @@ -18,72 +18,12 @@ * */ -#include "server.h" -#include "utils.h" - -#include <stdio.h> #include <stdlib.h> -#include <signal.h> #include <fcntl.h> #include <sys/stat.h> - -void dnbd3_write_pid_file(pid_t pid) -{ - FILE *f = fopen(SERVER_PID_FILE, "w"); - if (f != NULL) - { - fprintf(f, "%i", pid); - fclose(f); - } - else - { - printf("ERROR: Couldn't write pid file (%s).\n", SERVER_PID_FILE); - } -} - -pid_t dnbd3_read_pid_file() -{ - pid_t pid = 0; - - FILE *f = fopen(SERVER_PID_FILE, "r"); - if (f != NULL) - { - fscanf(f, "%i", &pid); - fclose(f); - } - else - { - printf("ERROR: Couldn't read pid file (%s).\n", SERVER_PID_FILE); - } - - return pid; -} - -void dnbd3_delete_pid_file() -{ - if (unlink(SERVER_PID_FILE) != 0) - { - printf("ERROR: Couldn't delete pid file (%s).\n", SERVER_PID_FILE); - } -} - -void dnbd3_send_signal(int signum) -{ - pid_t pid = dnbd3_read_pid_file(); - if (pid != 0) - { - if (kill(pid, signum) != 0) - { - printf("ERROR: dnbd3-server is not running\n"); - dnbd3_delete_pid_file(); - } - } - else - { - printf("ERROR: dnbd3-server is not running\n"); - } -} +#include "server.h" +#include "utils.h" void dnbd3_load_config(char *file) { @@ -124,7 +64,7 @@ void dnbd3_load_config(char *file) } g_strfreev(groups); - g_key_file_free (gkf); + g_key_file_free(gkf); } void dnbd3_reload_config(char* config_file_name) @@ -139,10 +79,22 @@ dnbd3_image_t* dnbd3_get_image(int vid, int rid) // TODO: find better data structure dnbd3_image_t *result = NULL; int i; - for (i = 0; i < _num_images; ++i) { + for (i = 0; i < _num_images; ++i) + { if (_images[i].vid == vid && _images[i].rid == rid) result = &_images[i]; } return result; } + +void dnbd3_handle_sigpipe(int signum) +{ + printf("ERROR: SIGPIPE received!\n"); +} + +void dnbd3_handle_sigterm(int signum) +{ + printf("INFO: SIGTERM or SIGINT received!\n"); + dnbd3_cleanup(); +} |