X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Futils%2Ferror.c;h=2bc99013ebe719199b7f53b2665f5e43dd7a95ae;hb=b75718ea9fe4d6c90f1794e517a0712729553c0c;hp=f40e31ada656f24e4719783bbe279cf49cfb7be2;hpb=39a45905e0b237e458b1826ff9b4fad1c4a59550;p=sysdb.git diff --git a/src/utils/error.c b/src/utils/error.c index f40e31a..2bc9901 100644 --- a/src/utils/error.c +++ b/src/utils/error.c @@ -35,10 +35,10 @@ #include #include +#include #include -#include - #include +#include /* * private data types @@ -47,7 +47,7 @@ typedef struct { int prio; sdb_strbuf_t *msg; - _Bool logged; + bool logged; } sdb_error_ctx_t; #define SDB_ERROR_INIT { -1, NULL, 1 } @@ -58,7 +58,7 @@ typedef struct { static sdb_error_ctx_t default_error_ctx = SDB_ERROR_INIT; static pthread_key_t error_ctx_key; -static _Bool error_ctx_key_initialized = 0; +static bool error_ctx_key_initialized = 0; static int (*logger)(int prio, const char *msg) = NULL; @@ -195,13 +195,19 @@ sdb_log(int prio, const char *fmt, ...) int ret; va_start(ap, fmt); - ret = sdb_error_vprintf(fmt, ap); + ret = sdb_vlog(prio, fmt, ap); va_end(ap); + return ret; +} /* sdb_log */ +int +sdb_vlog(int prio, const char *fmt, va_list ap) +{ + int ret = sdb_error_vprintf(fmt, ap); if (ret > 0) sdb_do_log(prio); return ret; -} /* sdb_log */ +} /* sdb_vlog */ int sdb_error_set(const char *fmt, ...) @@ -270,6 +276,24 @@ sdb_error_get_prio(void) return ctx->prio; } /* sdb_error_get_prio */ +int +sdb_error_parse_priority(char *prio) +{ + if (! strcasecmp(prio, "EMERG")) + return SDB_LOG_EMERG; + else if (! strcasecmp(prio, "ERROR")) + return SDB_LOG_ERR; + else if (! strcasecmp(prio, "WARNING")) + return SDB_LOG_WARNING; + else if (! strcasecmp(prio, "NOTICE")) + return SDB_LOG_NOTICE; + else if (! strcasecmp(prio, "INFO")) + return SDB_LOG_INFO; + else if (! strcasecmp(prio, "DEBUG")) + return SDB_LOG_DEBUG; + return -1; +} /* sdb_error_parse_priority */ + char * sdb_strerror(int errnum, char *strerrbuf, size_t buflen) {