Provide a fallback for platforms that don't support varadic macros.
Sponsored by: DARPA, NAI Labs git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@37 185d5e19-27fe-0310-9dcf-9bff6b9f3609
This commit is contained in:
parent
c450908f60
commit
d5943da7f6
|
@ -43,6 +43,8 @@
|
||||||
|
|
||||||
#include "openpam_impl.h"
|
#include "openpam_impl.h"
|
||||||
|
|
||||||
|
#if defined(openpam_log)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Log a message through syslog(3)
|
* Log a message through syslog(3)
|
||||||
*/
|
*/
|
||||||
|
@ -79,3 +81,37 @@ _openpam_log(int level, const char *func, const char *fmt, ...)
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If openpam_log isn't defined as a macro, we're on a platform that
|
||||||
|
* doesn't support varadic macros (or it does but we aren't aware of
|
||||||
|
* it). Do the next best thing.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void
|
||||||
|
openpam_log(int level, const char *fmt, ...)
|
||||||
|
{
|
||||||
|
va_list ap;
|
||||||
|
int priority;
|
||||||
|
|
||||||
|
switch (level) {
|
||||||
|
case PAM_LOG_DEBUG:
|
||||||
|
priority = LOG_DEBUG;
|
||||||
|
break;
|
||||||
|
case PAM_LOG_VERBOSE:
|
||||||
|
priority = LOG_INFO;
|
||||||
|
break;
|
||||||
|
case PAM_LOG_NOTICE:
|
||||||
|
priority = LOG_NOTICE;
|
||||||
|
break;
|
||||||
|
case PAM_LOG_ERROR:
|
||||||
|
priority = LOG_ERR;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
va_start(ap, fmt);
|
||||||
|
vsyslog(priority, fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue