void pam_syslog(const pam_handle_t *pamh, int priority, const char *fmt, ...) { va_list args; va_start(args, fmt); pam_vsyslog(pamh, priority, fmt, args); va_end(args); }
static int error(pam_handle_t *pamh, const char *fmt, ...) { va_list va; va_start(va, fmt); pam_vsyslog(pamh, LOG_ERR, fmt, va); va_end(va); return PAM_SESSION_ERR; }
static void debug(pam_handle_t *pamh, const char *fmt, ...) { va_list va; if (xdebug) { va_start(va, fmt); pam_vsyslog(pamh, LOG_DEBUG, fmt, va); va_end(va); } }
void PAM_FORMAT((printf, 3, 4)) _whawty_logf(whawty_ctx_t* ctx, int priority, const char* fmt, ...) { if(ctx->flags_ & WHAWTY_CONF_SILENT) return; if(priority == LOG_DEBUG && !(ctx->flags_ & WHAWTY_CONF_DEBUG)) return; va_list args; va_start(args, fmt); pam_vsyslog(ctx->pamh_, priority, fmt, args); va_end(args); }
/***************************************************************************** Func Name: pam_local_logger Date Created: 2009/2/23 Author: chendong Description: 调试信息输出函数 Input: const char* fmt 格式化字符串 ... 参数列表 Output: 无 Return: 无 Caution: ----------------------------------------------------------------------------- Modification History DATE NAME DESCRIPTION ----------------------------------------------------------------------------- ******************************************************************************/ void pam_local_logger (const char *fmt, ...) { va_list args; if (0 == g_pam_local_debug) { return; } va_start (args, fmt); pam_vsyslog (NULL, LOG_DEBUG, fmt, args); va_end (args); return; }
/* * Log wrapper function that adds the user. Log a message with the given * priority, prefixed by (user <user>) with the account name being * authenticated if known. */ static void log_vplain(struct pam_args *pargs, int priority, const char *fmt, va_list args) { char *msg; if (priority == LOG_DEBUG && (pargs == NULL || !pargs->debug)) return; if (pargs != NULL && pargs->user != NULL) { msg = format(fmt, args); if (msg == NULL) return; pam_syslog(pargs->pamh, priority, "(user %s) %s", pargs->user, msg); free(msg); } else if (pargs != NULL) { pam_vsyslog(pargs->pamh, priority, fmt, args); } else { msg = format(fmt, args); if (msg == NULL) return; syslog(priority | LOG_AUTHPRIV, "%s", msg); free(msg); } }