From 86bd51b39a2dc3b43fc28b89a137c86bdb1a8b45 Mon Sep 17 00:00:00 2001 From: Moritz Grimm Date: Fri, 19 Jan 2018 11:48:57 +0100 Subject: [PATCH] Decouple cfg from log --- src/ezstream.c | 4 +++- src/log.c | 19 +++++++++++++------ src/log.h | 4 +++- tests/check_cfg.c | 3 ++- tests/check_cfg_decoder.c | 3 ++- tests/check_cfg_encoder.c | 3 ++- tests/check_cfg_intake.c | 3 ++- tests/check_cfg_server.c | 3 ++- tests/check_cfg_stream.c | 3 ++- tests/check_cfg_xmlfile.c | 3 ++- tests/check_log.c | 13 +++++-------- tests/check_mdata.c | 6 +++++- tests/check_playlist.c | 7 ++++++- tests/check_stream.c | 3 +++ 14 files changed, 52 insertions(+), 25 deletions(-) diff --git a/src/ezstream.c b/src/ezstream.c index 8a1acf6..a008bfa 100644 --- a/src/ezstream.c +++ b/src/ezstream.c @@ -724,12 +724,14 @@ main(int argc, char *argv[]) ret = 1; if (0 > cfg_init() || 0 > cmdline_parse(argc, argv, &ret) || - 0 > log_init() || + 0 > log_init(cfg_get_program_name()) || 0 > playlist_init() || 0 > cfg_file_reload() || 0 > stream_init()) return (ez_shutdown(ret)); + log_set_verbosity(cfg_get_program_verbosity()); + if (0 > cfg_check(&errstr)) { log_error("%s: %s", cfg_get_program_config_file(), errstr); return (ez_shutdown(2)); diff --git a/src/log.c b/src/log.c index 1793685..1c602c4 100644 --- a/src/log.c +++ b/src/log.c @@ -25,9 +25,10 @@ #include #include -#include "cfg.h" #include "log.h" +static unsigned int _log_verbosity; + static int _log(enum log_levels, const char *, ...) ATTRIBUTE_NONNULL(2) ATTRIBUTE_FORMAT(printf, 2, 3); @@ -64,18 +65,18 @@ _vlog(enum log_levels lvl, const char *fmt, va_list ap) p = LOG_WARNING; break; case NOTICE: - if (cfg_get_program_verbosity() < 1) + if (_log_verbosity < 1) return (0); p = LOG_NOTICE; break; case INFO: - if (cfg_get_program_verbosity() < 2) + if (_log_verbosity < 2) return (0); p = LOG_INFO; break; case DEBUG: default: - if (cfg_get_program_verbosity() < 3) + if (_log_verbosity < 3) return (0); p = LOG_DEBUG; break; @@ -89,9 +90,9 @@ _vlog(enum log_levels lvl, const char *fmt, va_list ap) } int -log_init(void) +log_init(const char *program_name) { - openlog(cfg_get_program_name(), + openlog(program_name, LOG_PID|LOG_CONS|LOG_NDELAY|LOG_PERROR, LOG_USER); return (0); @@ -103,6 +104,12 @@ log_exit(void) closelog(); } +void +log_set_verbosity(unsigned int verbosity) +{ + _log_verbosity = verbosity; +} + int log_syserr(enum log_levels lvl, int error, const char *pfx) { diff --git a/src/log.h b/src/log.h index 6d27eb8..2da007f 100644 --- a/src/log.h +++ b/src/log.h @@ -28,9 +28,11 @@ enum log_levels { DEBUG }; -int log_init(void); +int log_init(const char *); void log_exit(void); +void log_set_verbosity(unsigned int); + int log_syserr(enum log_levels, int, const char *); int log_alert(const char *, ...) diff --git a/tests/check_cfg.c b/tests/check_cfg.c index f64c011..2f3bd64 100644 --- a/tests/check_cfg.c +++ b/tests/check_cfg.c @@ -26,6 +26,7 @@ END_TEST START_TEST(test_program_name) { + ck_assert_ptr_eq(cfg_get_program_name(), NULL); TEST_STRLCPY(cfg_set_program_name, cfg_get_program_name, PATH_MAX); } END_TEST @@ -197,7 +198,7 @@ void setup_checked(void) { if (0 < cfg_init() || - 0 < log_init()) + 0 < log_init(NULL)) ck_abort_msg("setup_checked failed"); } diff --git a/tests/check_cfg_decoder.c b/tests/check_cfg_decoder.c index 9cb5ca6..ef0fc9b 100644 --- a/tests/check_cfg_decoder.c +++ b/tests/check_cfg_decoder.c @@ -157,7 +157,8 @@ void setup_checked(void) { if (0 < cfg_init() || - 0 < log_init()) + 0 < cfg_set_program_name("check_cfg_decoder", NULL) || + 0 < log_init(cfg_get_program_name())) ck_abort_msg("setup_checked failed"); decoders = cfg_decoder_list_create(); diff --git a/tests/check_cfg_encoder.c b/tests/check_cfg_encoder.c index 05a48e2..ee1c4d0 100644 --- a/tests/check_cfg_encoder.c +++ b/tests/check_cfg_encoder.c @@ -149,7 +149,8 @@ void setup_checked(void) { if (0 < cfg_init() || - 0 < log_init()) + 0 < cfg_set_program_name("check_cfg_encoder", NULL) || + 0 < log_init(cfg_get_program_name())) ck_abort_msg("setup_checked failed"); encoders = cfg_encoder_list_create(); diff --git a/tests/check_cfg_intake.c b/tests/check_cfg_intake.c index dd7d99c..6dc44c9 100644 --- a/tests/check_cfg_intake.c +++ b/tests/check_cfg_intake.c @@ -135,7 +135,8 @@ void setup_checked(void) { if (0 < cfg_init() || - 0 < log_init()) + 0 < cfg_set_program_name("check_cfg_intake", NULL) || + 0 < log_init(cfg_get_program_name())) ck_abort_msg("setup_checked failed"); intakes = cfg_intake_list_create(); diff --git a/tests/check_cfg_server.c b/tests/check_cfg_server.c index 59b8835..517c943 100644 --- a/tests/check_cfg_server.c +++ b/tests/check_cfg_server.c @@ -213,7 +213,8 @@ void setup_checked(void) { if (0 < cfg_init() || - 0 < log_init()) + 0 < cfg_set_program_name("check_cfg_server", NULL) || + 0 < log_init(cfg_get_program_name())) ck_abort_msg("setup_checked failed"); servers = cfg_server_list_create(); diff --git a/tests/check_cfg_stream.c b/tests/check_cfg_stream.c index b6e808d..d3104cc 100644 --- a/tests/check_cfg_stream.c +++ b/tests/check_cfg_stream.c @@ -224,7 +224,8 @@ void setup_checked(void) { if (0 < cfg_init() || - 0 < log_init()) + 0 < cfg_set_program_name("check_cfg_stream", NULL) || + 0 < log_init(cfg_get_program_name())) ck_abort_msg("setup_checked failed"); streams = cfg_stream_list_create(); diff --git a/tests/check_cfg_xmlfile.c b/tests/check_cfg_xmlfile.c index 936d7d1..c7336c3 100644 --- a/tests/check_cfg_xmlfile.c +++ b/tests/check_cfg_xmlfile.c @@ -66,7 +66,8 @@ void setup_checked(void) { if (0 < cfg_init() || - 0 < log_init()) + 0 < cfg_set_program_name("check_cfg_xmlfile", NULL) || + 0 < log_init(cfg_get_program_name())) ck_abort_msg("setup_checked failed"); } diff --git a/tests/check_log.c b/tests/check_log.c index bbe0257..a5ef38f 100644 --- a/tests/check_log.c +++ b/tests/check_log.c @@ -1,7 +1,6 @@ #include #include -#include "cfg.h" #include "log.h" Suite * log_suite(void); @@ -15,7 +14,7 @@ START_TEST(test_log) ck_assert_int_eq(log_syserr(ALERT, 0, "alert"), 0); verbosity = 0; - ck_assert_int_eq(cfg_set_program_verbosity(verbosity, NULL), 0); + log_set_verbosity(verbosity); ck_assert_int_ne(log_alert("alert"), 0); ck_assert_int_ne(log_syserr(ALERT, EINVAL, "alert"), 0); ck_assert_int_ne(log_syserr(ALERT, EINVAL, NULL), 0); @@ -26,19 +25,19 @@ START_TEST(test_log) ck_assert_int_eq(log_notice("notice"), 0); ck_assert_int_eq(log_syserr(NOTICE, EINVAL, "notice"), 0); - ck_assert_int_eq(cfg_set_program_verbosity(++verbosity, NULL), 0); + log_set_verbosity(++verbosity); ck_assert_int_ne(log_notice("notice"), 0); ck_assert_int_ne(log_syserr(NOTICE, EINVAL, "notice"), 0); ck_assert_int_eq(log_info("info"), 0); ck_assert_int_eq(log_syserr(INFO, EINVAL, "info"), 0); - ck_assert_int_eq(cfg_set_program_verbosity(++verbosity, NULL), 0); + log_set_verbosity(++verbosity); ck_assert_int_ne(log_info("info"), 0); ck_assert_int_ne(log_syserr(INFO, EINVAL, "info"), 0); ck_assert_int_eq(log_debug("debug"), 0); ck_assert_int_eq(log_syserr(DEBUG, EINVAL, "debug"), 0); - ck_assert_int_eq(cfg_set_program_verbosity(++verbosity, NULL), 0); + log_set_verbosity(++verbosity); ck_assert_int_ne(log_debug("debug"), 0); ck_assert_int_ne(log_syserr(DEBUG, EINVAL, "debug"), 0); } @@ -63,8 +62,7 @@ log_suite(void) void setup_checked(void) { - if (0 < cfg_init() || - 0 < log_init()) + if (0 < log_init("check_log")) ck_abort_msg("setup_checked failed"); } @@ -72,7 +70,6 @@ void teardown_checked(void) { log_exit(); - cfg_exit(); } int diff --git a/tests/check_mdata.c b/tests/check_mdata.c index f1b0d32..bd5f4aa 100644 --- a/tests/check_mdata.c +++ b/tests/check_mdata.c @@ -2,6 +2,7 @@ #include +#include "cfg.h" #include "log.h" #include "mdata.h" @@ -180,7 +181,9 @@ mdata_suite(void) void setup_checked(void) { - if (0 < log_init()) + if (0 < cfg_init() || + 0 < cfg_set_program_name("check_mdata", NULL) || + 0 < log_init(cfg_get_program_name())) ck_abort_msg("setup_checked failed"); md = mdata_create(); @@ -194,6 +197,7 @@ teardown_checked(void) ck_assert_ptr_eq(md, NULL); log_exit(); + cfg_exit(); } int diff --git a/tests/check_playlist.c b/tests/check_playlist.c index 7477cf0..e5f601f 100644 --- a/tests/check_playlist.c +++ b/tests/check_playlist.c @@ -1,5 +1,7 @@ #include +#include "cfg.h" +#include "log.h" #include "playlist.h" Suite * playlist_suite(void); @@ -124,7 +126,10 @@ playlist_suite(void) void setup_checked(void) { - if (0 < playlist_init()) + if (0 < cfg_init() || + 0 < cfg_set_program_name("check_playlist", NULL) || + 0 < log_init(cfg_get_program_name()) || + 0 < playlist_init()) ck_abort_msg("setup_checked failed"); } diff --git a/tests/check_stream.c b/tests/check_stream.c index 30c2c3e..f98b726 100644 --- a/tests/check_stream.c +++ b/tests/check_stream.c @@ -1,6 +1,7 @@ #include #include "cfg.h" +#include "log.h" #include "mdata.h" #include "stream.h" #include "xalloc.h" @@ -120,6 +121,8 @@ void setup_checked(void) { if (0 < cfg_init() || + 0 < cfg_set_program_name("check_stream", NULL) || + 0 < log_init(cfg_get_program_name()) || 0 < stream_init()) ck_abort_msg("setup_checked failed"); }