mirror of
https://passt.top/passt
synced 2025-05-24 02:05:33 +02:00
log: Don't export passt_vsyslog()
passt_vsyslog() is an exposed function in log.h. However it shouldn't be called from outside log.c: it writes specifically to the system log, and most code should call passt's logging helpers which might go to the syslog or to a log file. Make passt_vsyslog() local to log.c. This requires a code motion to avoid a forward declaration. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
parent
57d2db370b
commit
e36c35c952
2 changed files with 24 additions and 25 deletions
48
log.c
48
log.c
|
@ -249,6 +249,30 @@ static void logfile_write(bool newline, bool cont, int pri,
|
|||
log_written += n;
|
||||
}
|
||||
|
||||
/**
|
||||
* passt_vsyslog() - vsyslog() implementation not using heap memory
|
||||
* @newline: Append newline at the end of the message, if missing
|
||||
* @pri: Facility and level map, same as priority for vsyslog()
|
||||
* @format: Same as vsyslog() format
|
||||
* @ap: Same as vsyslog() ap
|
||||
*/
|
||||
static void passt_vsyslog(bool newline, int pri, const char *format, va_list ap)
|
||||
{
|
||||
char buf[BUFSIZ];
|
||||
int n;
|
||||
|
||||
/* Send without timestamp, the system logger should add it */
|
||||
n = snprintf(buf, BUFSIZ, "<%i> %s: ", pri, log_ident);
|
||||
|
||||
n += vsnprintf(buf + n, BUFSIZ - n, format, ap);
|
||||
|
||||
if (newline && format[strlen(format)] != '\n')
|
||||
n += snprintf(buf + n, BUFSIZ - n, "\n");
|
||||
|
||||
if (log_sock >= 0 && send(log_sock, buf, n, 0) != n && log_stderr)
|
||||
FPRINTF(stderr, "Failed to send %i bytes to syslog\n", n);
|
||||
}
|
||||
|
||||
/**
|
||||
* vlogmsg() - Print or send messages to log or output files as configured
|
||||
* @newline: Append newline at the end of the message, if missing
|
||||
|
@ -373,30 +397,6 @@ void __setlogmask(int mask)
|
|||
setlogmask(mask);
|
||||
}
|
||||
|
||||
/**
|
||||
* passt_vsyslog() - vsyslog() implementation not using heap memory
|
||||
* @newline: Append newline at the end of the message, if missing
|
||||
* @pri: Facility and level map, same as priority for vsyslog()
|
||||
* @format: Same as vsyslog() format
|
||||
* @ap: Same as vsyslog() ap
|
||||
*/
|
||||
void passt_vsyslog(bool newline, int pri, const char *format, va_list ap)
|
||||
{
|
||||
char buf[BUFSIZ];
|
||||
int n;
|
||||
|
||||
/* Send without timestamp, the system logger should add it */
|
||||
n = snprintf(buf, BUFSIZ, "<%i> %s: ", pri, log_ident);
|
||||
|
||||
n += vsnprintf(buf + n, BUFSIZ - n, format, ap);
|
||||
|
||||
if (newline && format[strlen(format)] != '\n')
|
||||
n += snprintf(buf + n, BUFSIZ - n, "\n");
|
||||
|
||||
if (log_sock >= 0 && send(log_sock, buf, n, 0) != n && log_stderr)
|
||||
FPRINTF(stderr, "Failed to send %i bytes to syslog\n", n);
|
||||
}
|
||||
|
||||
/**
|
||||
* logfile_init() - Open log file and write header with PID, version, path
|
||||
* @name: Identifier for header: passt or pasta
|
||||
|
|
1
log.h
1
log.h
|
@ -55,7 +55,6 @@ void trace_init(int enable);
|
|||
|
||||
void __openlog(const char *ident, int option, int facility);
|
||||
void logfile_init(const char *name, const char *path, size_t size);
|
||||
void passt_vsyslog(bool newline, int pri, const char *format, va_list ap);
|
||||
void __setlogmask(int mask);
|
||||
|
||||
#endif /* LOG_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue