Provides three states for pjdlog_initialized, so we can also tell that
this is fist initialization ever. MFC after: 2 weeks
This commit is contained in:
parent
a6c0f1f242
commit
a61f579394
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=219369
@ -34,7 +34,6 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdbool.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -42,7 +41,11 @@ __FBSDID("$FreeBSD$");
|
|||||||
|
|
||||||
#include "pjdlog.h"
|
#include "pjdlog.h"
|
||||||
|
|
||||||
static bool pjdlog_initialized = false;
|
#define PJDLOG_NEVER_INITIALIZED 0
|
||||||
|
#define PJDLOG_NOT_INITIALIZED 1
|
||||||
|
#define PJDLOG_INITIALIZED 2
|
||||||
|
|
||||||
|
static int pjdlog_initialized = PJDLOG_NEVER_INITIALIZED;
|
||||||
static int pjdlog_mode, pjdlog_debug_level;
|
static int pjdlog_mode, pjdlog_debug_level;
|
||||||
static char pjdlog_prefix[128];
|
static char pjdlog_prefix[128];
|
||||||
|
|
||||||
@ -50,7 +53,8 @@ void
|
|||||||
pjdlog_init(int mode)
|
pjdlog_init(int mode)
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(!pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_NEVER_INITIALIZED ||
|
||||||
|
pjdlog_initialized == PJDLOG_NOT_INITIALIZED);
|
||||||
assert(mode == PJDLOG_MODE_STD || mode == PJDLOG_MODE_SYSLOG);
|
assert(mode == PJDLOG_MODE_STD || mode == PJDLOG_MODE_SYSLOG);
|
||||||
|
|
||||||
if (mode == PJDLOG_MODE_SYSLOG)
|
if (mode == PJDLOG_MODE_SYSLOG)
|
||||||
@ -59,19 +63,19 @@ pjdlog_init(int mode)
|
|||||||
pjdlog_debug_level = 0;
|
pjdlog_debug_level = 0;
|
||||||
bzero(pjdlog_prefix, sizeof(pjdlog_prefix));
|
bzero(pjdlog_prefix, sizeof(pjdlog_prefix));
|
||||||
|
|
||||||
pjdlog_initialized = true;
|
pjdlog_initialized = PJDLOG_INITIALIZED;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
pjdlog_fini(void)
|
pjdlog_fini(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
|
|
||||||
if (pjdlog_mode == PJDLOG_MODE_SYSLOG)
|
if (pjdlog_mode == PJDLOG_MODE_SYSLOG)
|
||||||
closelog();
|
closelog();
|
||||||
|
|
||||||
pjdlog_initialized = false;
|
pjdlog_initialized = PJDLOG_NOT_INITIALIZED;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -84,7 +88,7 @@ void
|
|||||||
pjdlog_mode_set(int mode)
|
pjdlog_mode_set(int mode)
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
assert(mode == PJDLOG_MODE_STD || mode == PJDLOG_MODE_SYSLOG);
|
assert(mode == PJDLOG_MODE_STD || mode == PJDLOG_MODE_SYSLOG);
|
||||||
|
|
||||||
if (pjdlog_mode == mode)
|
if (pjdlog_mode == mode)
|
||||||
@ -105,7 +109,7 @@ int
|
|||||||
pjdlog_mode_get(void)
|
pjdlog_mode_get(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
|
|
||||||
return (pjdlog_mode);
|
return (pjdlog_mode);
|
||||||
}
|
}
|
||||||
@ -118,7 +122,7 @@ void
|
|||||||
pjdlog_debug_set(int level)
|
pjdlog_debug_set(int level)
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
assert(level >= 0);
|
assert(level >= 0);
|
||||||
|
|
||||||
pjdlog_debug_level = level;
|
pjdlog_debug_level = level;
|
||||||
@ -131,7 +135,7 @@ int
|
|||||||
pjdlog_debug_get(void)
|
pjdlog_debug_get(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
|
|
||||||
return (pjdlog_debug_level);
|
return (pjdlog_debug_level);
|
||||||
}
|
}
|
||||||
@ -145,7 +149,7 @@ pjdlog_prefix_set(const char *fmt, ...)
|
|||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
|
|
||||||
va_start(ap, fmt);
|
va_start(ap, fmt);
|
||||||
pjdlogv_prefix_set(fmt, ap);
|
pjdlogv_prefix_set(fmt, ap);
|
||||||
@ -160,7 +164,7 @@ void
|
|||||||
pjdlogv_prefix_set(const char *fmt, va_list ap)
|
pjdlogv_prefix_set(const char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
assert(fmt != NULL);
|
assert(fmt != NULL);
|
||||||
|
|
||||||
vsnprintf(pjdlog_prefix, sizeof(pjdlog_prefix), fmt, ap);
|
vsnprintf(pjdlog_prefix, sizeof(pjdlog_prefix), fmt, ap);
|
||||||
@ -203,7 +207,7 @@ pjdlog_common(int loglevel, int debuglevel, int error, const char *fmt, ...)
|
|||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
|
|
||||||
va_start(ap, fmt);
|
va_start(ap, fmt);
|
||||||
pjdlogv_common(loglevel, debuglevel, error, fmt, ap);
|
pjdlogv_common(loglevel, debuglevel, error, fmt, ap);
|
||||||
@ -219,7 +223,7 @@ pjdlogv_common(int loglevel, int debuglevel, int error, const char *fmt,
|
|||||||
va_list ap)
|
va_list ap)
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
assert(loglevel == LOG_EMERG || loglevel == LOG_ALERT ||
|
assert(loglevel == LOG_EMERG || loglevel == LOG_ALERT ||
|
||||||
loglevel == LOG_CRIT || loglevel == LOG_ERR ||
|
loglevel == LOG_CRIT || loglevel == LOG_ERR ||
|
||||||
loglevel == LOG_WARNING || loglevel == LOG_NOTICE ||
|
loglevel == LOG_WARNING || loglevel == LOG_NOTICE ||
|
||||||
@ -296,7 +300,7 @@ void
|
|||||||
pjdlogv(int loglevel, const char *fmt, va_list ap)
|
pjdlogv(int loglevel, const char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
|
|
||||||
/* LOG_DEBUG is invalid here, pjdlogv?_debug() should be used. */
|
/* LOG_DEBUG is invalid here, pjdlogv?_debug() should be used. */
|
||||||
assert(loglevel == LOG_EMERG || loglevel == LOG_ALERT ||
|
assert(loglevel == LOG_EMERG || loglevel == LOG_ALERT ||
|
||||||
@ -315,7 +319,7 @@ pjdlog(int loglevel, const char *fmt, ...)
|
|||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
|
|
||||||
va_start(ap, fmt);
|
va_start(ap, fmt);
|
||||||
pjdlogv(loglevel, fmt, ap);
|
pjdlogv(loglevel, fmt, ap);
|
||||||
@ -329,7 +333,7 @@ void
|
|||||||
pjdlogv_debug(int debuglevel, const char *fmt, va_list ap)
|
pjdlogv_debug(int debuglevel, const char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
|
|
||||||
pjdlogv_common(LOG_DEBUG, debuglevel, -1, fmt, ap);
|
pjdlogv_common(LOG_DEBUG, debuglevel, -1, fmt, ap);
|
||||||
}
|
}
|
||||||
@ -342,7 +346,7 @@ pjdlog_debug(int debuglevel, const char *fmt, ...)
|
|||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
|
|
||||||
va_start(ap, fmt);
|
va_start(ap, fmt);
|
||||||
pjdlogv_debug(debuglevel, fmt, ap);
|
pjdlogv_debug(debuglevel, fmt, ap);
|
||||||
@ -356,7 +360,7 @@ void
|
|||||||
pjdlogv_errno(int loglevel, const char *fmt, va_list ap)
|
pjdlogv_errno(int loglevel, const char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
|
|
||||||
pjdlogv_common(loglevel, 0, errno, fmt, ap);
|
pjdlogv_common(loglevel, 0, errno, fmt, ap);
|
||||||
}
|
}
|
||||||
@ -369,7 +373,7 @@ pjdlog_errno(int loglevel, const char *fmt, ...)
|
|||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
|
|
||||||
va_start(ap, fmt);
|
va_start(ap, fmt);
|
||||||
pjdlogv_errno(loglevel, fmt, ap);
|
pjdlogv_errno(loglevel, fmt, ap);
|
||||||
@ -383,7 +387,7 @@ void
|
|||||||
pjdlogv_exit(int exitcode, const char *fmt, va_list ap)
|
pjdlogv_exit(int exitcode, const char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
|
|
||||||
pjdlogv_errno(LOG_ERR, fmt, ap);
|
pjdlogv_errno(LOG_ERR, fmt, ap);
|
||||||
exit(exitcode);
|
exit(exitcode);
|
||||||
@ -398,7 +402,7 @@ pjdlog_exit(int exitcode, const char *fmt, ...)
|
|||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
|
|
||||||
va_start(ap, fmt);
|
va_start(ap, fmt);
|
||||||
pjdlogv_exit(exitcode, fmt, ap);
|
pjdlogv_exit(exitcode, fmt, ap);
|
||||||
@ -413,7 +417,7 @@ void
|
|||||||
pjdlogv_exitx(int exitcode, const char *fmt, va_list ap)
|
pjdlogv_exitx(int exitcode, const char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
|
|
||||||
pjdlogv(LOG_ERR, fmt, ap);
|
pjdlogv(LOG_ERR, fmt, ap);
|
||||||
exit(exitcode);
|
exit(exitcode);
|
||||||
@ -428,7 +432,7 @@ pjdlog_exitx(int exitcode, const char *fmt, ...)
|
|||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
|
|
||||||
va_start(ap, fmt);
|
va_start(ap, fmt);
|
||||||
pjdlogv_exitx(exitcode, fmt, ap);
|
pjdlogv_exitx(exitcode, fmt, ap);
|
||||||
@ -445,7 +449,7 @@ pjdlog_abort(const char *func, const char *file, int line,
|
|||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
assert(pjdlog_initialized);
|
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* When there is no message we pass __func__ as 'fmt'.
|
* When there is no message we pass __func__ as 'fmt'.
|
||||||
|
Loading…
Reference in New Issue
Block a user