From: Vladimír Čunát Date: Wed, 28 Jul 2021 17:29:51 +0000 (+0200) Subject: lib/log level names: disregard SYSLOG_NAMES X-Git-Tag: v5.4.0~2^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fc692f2c27f593fa70237bf2413daa0cd6bf2d7d;p=thirdparty%2Fknot-resolver.git lib/log level names: disregard SYSLOG_NAMES It's a non-standard feature of syslog.h and I don't think it's worth the trouble. We didn't really utilize it; someone would have to #define it, and moreover we would get into problems if this wasn't being done the same on all places including log.h. Making the names adapt to the platform would also mean that config files and docs wouldn't be portable. Also make kr_log_level2name() return const. --- diff --git a/lib/log.c b/lib/log.c index ef1e508b5..794cf9f90 100644 --- a/lib/log.c +++ b/lib/log.c @@ -83,20 +83,6 @@ log_group_names_t log_group_names[] = { { NULL, -1 }, }; -#ifndef SYSLOG_NAMES -syslog_code_t prioritynames[] = { - { "alert", LOG_ALERT }, - { "crit", LOG_CRIT }, - { "debug", LOG_DEBUG }, - { "emerg", LOG_EMERG }, - { "err", LOG_ERR }, - { "info", LOG_INFO }, - { "notice", LOG_NOTICE }, - { "warning", LOG_WARNING }, - { NULL, -1 }, -}; -#endif - bool kr_log_group_is_set(enum kr_log_group group) { return kr_log_groups & (1ULL << group); @@ -145,12 +131,29 @@ static void kres_gnutls_log(int level, const char *message) kr_log_debug(GNUTLS, "(%d) %s", level, message); } -char *kr_log_level2name(kr_log_level_t level) + +struct log_level_name { + const char *name; + kr_log_level_t level; +}; +const struct log_level_name level_names[] = { + { "alert", LOG_ALERT }, + { "crit", LOG_CRIT }, + { "debug", LOG_DEBUG }, + { "emerg", LOG_EMERG }, + { "err", LOG_ERR }, + { "info", LOG_INFO }, + { "notice", LOG_NOTICE }, + { "warning", LOG_WARNING }, + { NULL, -1 }, +}; + +const char *kr_log_level2name(kr_log_level_t level) { - for (int i = 0; prioritynames[i].c_name; ++i) + for (int i = 0; level_names[i].name; ++i) { - if (prioritynames[i].c_val == level) - return prioritynames[i].c_name; + if (level_names[i].level == level) + return level_names[i].name; } return NULL; @@ -161,10 +164,10 @@ kr_log_level_t kr_log_name2level(const char *name) if (kr_fails_assert(name)) return -1; - for (int i = 0; prioritynames[i].c_name; ++i) + for (int i = 0; level_names[i].name; ++i) { - if (strcmp(prioritynames[i].c_name, name) == 0) - return prioritynames[i].c_val; + if (strcmp(level_names[i].name, name) == 0) + return level_names[i].level; } return -1; diff --git a/lib/log.h b/lib/log.h index 65901b69e..7ae8a3569 100644 --- a/lib/log.h +++ b/lib/log.h @@ -191,20 +191,10 @@ void kr_log_target_set(kr_log_target_t target); /* Syslog */ KR_EXPORT -char *kr_log_level2name(kr_log_level_t level); +const char *kr_log_level2name(kr_log_level_t level); KR_EXPORT kr_log_level_t kr_log_name2level(const char *name); -#ifndef SYSLOG_NAMES -typedef struct _code { - char *c_name; - int c_val; -} syslog_code_t; - -KR_EXPORT -extern syslog_code_t prioritynames[]; -#endif - /* Misc. */