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:
Pawel Jakub Dawidek 2011-03-07 10:33:52 +00:00
parent a6c0f1f242
commit a61f579394
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=219369

View File

@ -34,7 +34,6 @@ __FBSDID("$FreeBSD$");
#include <assert.h>
#include <errno.h>
#include <stdarg.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@ -42,7 +41,11 @@ __FBSDID("$FreeBSD$");
#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 char pjdlog_prefix[128];
@ -50,7 +53,8 @@ void
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);
if (mode == PJDLOG_MODE_SYSLOG)
@ -59,19 +63,19 @@ pjdlog_init(int mode)
pjdlog_debug_level = 0;
bzero(pjdlog_prefix, sizeof(pjdlog_prefix));
pjdlog_initialized = true;
pjdlog_initialized = PJDLOG_INITIALIZED;
}
void
pjdlog_fini(void)
{
assert(pjdlog_initialized);
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
if (pjdlog_mode == PJDLOG_MODE_SYSLOG)
closelog();
pjdlog_initialized = false;
pjdlog_initialized = PJDLOG_NOT_INITIALIZED;
}
/*
@ -84,7 +88,7 @@ void
pjdlog_mode_set(int mode)
{
assert(pjdlog_initialized);
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
assert(mode == PJDLOG_MODE_STD || mode == PJDLOG_MODE_SYSLOG);
if (pjdlog_mode == mode)
@ -105,7 +109,7 @@ int
pjdlog_mode_get(void)
{
assert(pjdlog_initialized);
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
return (pjdlog_mode);
}
@ -118,7 +122,7 @@ void
pjdlog_debug_set(int level)
{
assert(pjdlog_initialized);
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
assert(level >= 0);
pjdlog_debug_level = level;
@ -131,7 +135,7 @@ int
pjdlog_debug_get(void)
{
assert(pjdlog_initialized);
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
return (pjdlog_debug_level);
}
@ -145,7 +149,7 @@ pjdlog_prefix_set(const char *fmt, ...)
{
va_list ap;
assert(pjdlog_initialized);
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
va_start(ap, fmt);
pjdlogv_prefix_set(fmt, ap);
@ -160,7 +164,7 @@ void
pjdlogv_prefix_set(const char *fmt, va_list ap)
{
assert(pjdlog_initialized);
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
assert(fmt != NULL);
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;
assert(pjdlog_initialized);
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
va_start(ap, fmt);
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)
{
assert(pjdlog_initialized);
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
assert(loglevel == LOG_EMERG || loglevel == LOG_ALERT ||
loglevel == LOG_CRIT || loglevel == LOG_ERR ||
loglevel == LOG_WARNING || loglevel == LOG_NOTICE ||
@ -296,7 +300,7 @@ void
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. */
assert(loglevel == LOG_EMERG || loglevel == LOG_ALERT ||
@ -315,7 +319,7 @@ pjdlog(int loglevel, const char *fmt, ...)
{
va_list ap;
assert(pjdlog_initialized);
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
va_start(ap, fmt);
pjdlogv(loglevel, fmt, ap);
@ -329,7 +333,7 @@ void
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);
}
@ -342,7 +346,7 @@ pjdlog_debug(int debuglevel, const char *fmt, ...)
{
va_list ap;
assert(pjdlog_initialized);
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
va_start(ap, fmt);
pjdlogv_debug(debuglevel, fmt, ap);
@ -356,7 +360,7 @@ void
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);
}
@ -369,7 +373,7 @@ pjdlog_errno(int loglevel, const char *fmt, ...)
{
va_list ap;
assert(pjdlog_initialized);
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
va_start(ap, fmt);
pjdlogv_errno(loglevel, fmt, ap);
@ -383,7 +387,7 @@ void
pjdlogv_exit(int exitcode, const char *fmt, va_list ap)
{
assert(pjdlog_initialized);
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
pjdlogv_errno(LOG_ERR, fmt, ap);
exit(exitcode);
@ -398,7 +402,7 @@ pjdlog_exit(int exitcode, const char *fmt, ...)
{
va_list ap;
assert(pjdlog_initialized);
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
va_start(ap, fmt);
pjdlogv_exit(exitcode, fmt, ap);
@ -413,7 +417,7 @@ void
pjdlogv_exitx(int exitcode, const char *fmt, va_list ap)
{
assert(pjdlog_initialized);
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
pjdlogv(LOG_ERR, fmt, ap);
exit(exitcode);
@ -428,7 +432,7 @@ pjdlog_exitx(int exitcode, const char *fmt, ...)
{
va_list ap;
assert(pjdlog_initialized);
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
va_start(ap, fmt);
pjdlogv_exitx(exitcode, fmt, ap);
@ -445,7 +449,7 @@ pjdlog_abort(const char *func, const char *file, int line,
{
va_list ap;
assert(pjdlog_initialized);
assert(pjdlog_initialized == PJDLOG_INITIALIZED);
/*
* When there is no message we pass __func__ as 'fmt'.