From ad6728e74b055a9e0ed93232d5cb3054f471df1e Mon Sep 17 00:00:00 2001 From: James Booth Date: Mon, 8 Jun 2015 21:26:44 +0100 Subject: [PATCH] Tidied logging, added debug --- src/client/stabber.c | 10 ++++++++++ src/server/log.c | 15 +++++++++++++-- src/server/server.c | 3 ++- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/client/stabber.c b/src/client/stabber.c index 42f5cc4..e2e20cd 100644 --- a/src/client/stabber.c +++ b/src/client/stabber.c @@ -27,6 +27,7 @@ #include "server/server.h" #include "server/prime.h" #include "server/verify.h" +#include "server/log.h" #include "stabber.h" @@ -39,12 +40,14 @@ stbbr_start(stbbr_log_t loglevel, int port, int httpport) void stbbr_set_timeout(int seconds) { + log_println(STBBR_LOGDEBUG, "Setting timeout: %d seconds", seconds); verify_set_timeout(seconds); } int stbbr_auth_passwd(char *password) { + log_println(STBBR_LOGDEBUG, "Setting auth password: %s", password); prime_required_passwd(password); return 1; } @@ -52,6 +55,7 @@ stbbr_auth_passwd(char *password) int stbbr_for_id(char *id, char *stream) { + log_println(STBBR_LOGDEBUG, "Stubbing for id: %s, stanza: %s", id, stream); prime_for_id(id, stream); return 1; } @@ -59,6 +63,7 @@ stbbr_for_id(char *id, char *stream) int stbbr_for_query(char *query, char *stream) { + log_println(STBBR_LOGDEBUG, "Stubbing for query: %s, stanza: %s", query, stream); prime_for_query(query, stream); return 1; } @@ -66,29 +71,34 @@ stbbr_for_query(char *query, char *stream) void stbbr_wait_for(char *id) { + log_println(STBBR_LOGDEBUG, "Waiting for id: %s", id); server_wait_for(id); } int stbbr_last_received(char *stanza) { + log_println(STBBR_LOGDEBUG, "verifying last: %s", stanza); return verify_last(stanza); } int stbbr_received(char *stanza) { + log_println(STBBR_LOGDEBUG, "verifying: %s", stanza); return verify_any(stanza); } void stbbr_send(char *stream) { + log_println(STBBR_LOGDEBUG, "Sending: %s", stream); server_send(stream); } void stbbr_stop(void) { + log_println(STBBR_LOGDEBUG, "Stopping stabber"); server_stop(); } diff --git a/src/server/log.c b/src/server/log.c index 5d46d7a..81a0c47 100644 --- a/src/server/log.c +++ b/src/server/log.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -32,7 +33,9 @@ #include "stabber.h" static FILE *logp; +static gboolean logready = FALSE; static stbbr_log_t minlevel; +pthread_mutex_t loglock; gchar * _xdg_get_data_home(void) @@ -107,6 +110,7 @@ _mkdir_recursive(const char *dir) void log_init(stbbr_log_t loglevel) { + pthread_mutex_lock(&loglock); minlevel = loglevel; gchar *xdg_data = _xdg_get_data_home(); GString *log_dir = g_string_new(xdg_data); @@ -119,6 +123,8 @@ log_init(stbbr_log_t loglevel) logp = fopen(log_file, "a"); g_chmod(log_file, S_IRUSR | S_IWUSR); free(log_file); + logready = TRUE; + pthread_mutex_unlock(&loglock); } static char* @@ -136,7 +142,8 @@ _levelstr(stbbr_log_t loglevel) void log_println(stbbr_log_t loglevel, const char * const msg, ...) { - if (loglevel >= minlevel) { + if (logready && loglevel >= minlevel) { + pthread_mutex_lock(&loglock); va_list arg; va_start(arg, msg); GString *fmt_msg = g_string_new(NULL); @@ -154,13 +161,17 @@ log_println(stbbr_log_t loglevel, const char * const msg, ...) g_free(date_fmt); g_string_free(fmt_msg, TRUE); va_end(arg); + pthread_mutex_unlock(&loglock); } } void log_close(void) { - if (logp) { + pthread_mutex_lock(&loglock); + if (logready && logp) { fclose(logp); } + logready = FALSE; + pthread_mutex_unlock(&loglock); } diff --git a/src/server/server.c b/src/server/server.c index 7cd00e8..31e9d7a 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -255,7 +255,7 @@ server_wait_for(char *id) void* _start_server_cb(void* userdata) { - prctl(PR_SET_NAME, "stbbr"); + prctl(PR_SET_NAME, "stbr"); struct sockaddr_in client_addr; @@ -299,6 +299,7 @@ _start_server_cb(void* userdata) int server_run(stbbr_log_t loglevel, int port, int httpport) { + prctl(PR_SET_NAME, "main"); pthread_mutex_lock(&send_queue_lock); send_queue = NULL; pthread_mutex_unlock(&send_queue_lock);