version 1.57, 2021/04/03 06:18:40 |
version 1.58, 2021/04/15 16:24:31 |
|
|
} |
} |
|
|
static void |
static void |
do_log(const char *file, const char *func, int line, LogLevel level, |
do_log(LogLevel level, int force, const char *suffix, const char *fmt, |
int force, const char *suffix, const char *fmt, va_list args) |
va_list args) |
{ |
{ |
struct syslog_data sdata = SYSLOG_DATA_INIT; |
struct syslog_data sdata = SYSLOG_DATA_INIT; |
char msgbuf[MSGBUFSIZ]; |
char msgbuf[MSGBUFSIZ]; |
|
|
/* Avoid recursion */ |
/* Avoid recursion */ |
tmp_handler = log_handler; |
tmp_handler = log_handler; |
log_handler = NULL; |
log_handler = NULL; |
tmp_handler(file, func, line, level, fmtbuf, log_handler_ctx); |
tmp_handler(level, force, fmtbuf, log_handler_ctx); |
log_handler = tmp_handler; |
log_handler = tmp_handler; |
} else if (log_on_stderr) { |
} else if (log_on_stderr) { |
snprintf(msgbuf, sizeof msgbuf, "%.*s\r\n", |
snprintf(msgbuf, sizeof msgbuf, "%.*s\r\n", |
|
|
} |
} |
} |
} |
|
|
if (log_handler == NULL && forced) |
if (forced) |
snprintf(fmt2, sizeof(fmt2), "%s: %s", tag, fmt); |
snprintf(fmt2, sizeof(fmt2), "%s: %s", tag, fmt); |
else if (showfunc) |
else if (showfunc) |
snprintf(fmt2, sizeof(fmt2), "%s: %s", func, fmt); |
snprintf(fmt2, sizeof(fmt2), "%s: %s", func, fmt); |
else |
else |
strlcpy(fmt2, fmt, sizeof(fmt2)); |
strlcpy(fmt2, fmt, sizeof(fmt2)); |
|
|
do_log(file, func, line, level, forced, suffix, fmt2, args); |
do_log(level, forced, suffix, fmt2, args); |
|
} |
|
|
|
void |
|
sshlogdirect(LogLevel level, int forced, const char *fmt, ...) |
|
{ |
|
va_list args; |
|
|
|
va_start(args, fmt); |
|
do_log(level, forced, NULL, fmt, args); |
|
va_end(args); |
} |
} |