From d0bbc21caa6e68693a47db60c93e99422bf2a858 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sat, 17 Dec 2011 01:32:49 +0100 Subject: [PATCH] journal: introduce mandatory sd_journal_printf() priority parameter --- src/journal/journal-send.c | 19 +++++++++++-------- src/journal/sd-journal.h | 4 ++-- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c index e2575a98..238d64c1 100644 --- a/src/journal/journal-send.c +++ b/src/journal/journal-send.c @@ -52,30 +52,33 @@ retry: return fd; } -int sd_journal_print(const char *format, ...) { +int sd_journal_print(int priority, const char *format, ...) { int r; va_list ap; va_start(ap, format); - r = sd_journal_printv(format, ap); + r = sd_journal_printv(priority, format, ap); va_end(ap); return r; } -int sd_journal_printv(const char *format, va_list ap) { - char buffer[8 + LINE_MAX]; - struct iovec iov; +int sd_journal_printv(int priority, const char *format, va_list ap) { + char buffer[8 + LINE_MAX], p[11]; + struct iovec iov[2]; + + snprintf(p, sizeof(p), "PRIORITY=%i", priority & LOG_PRIMASK); + char_array_0(p); memcpy(buffer, "MESSAGE=", 8); vsnprintf(buffer+8, sizeof(buffer) - 8, format, ap); - char_array_0(buffer); zero(iov); - IOVEC_SET_STRING(iov, buffer); + IOVEC_SET_STRING(iov[0], buffer); + IOVEC_SET_STRING(iov[1], p); - return sd_journal_sendv(&iov, 1); + return sd_journal_sendv(iov, 2); } int sd_journal_send(const char *format, ...) { diff --git a/src/journal/sd-journal.h b/src/journal/sd-journal.h index b167dcf0..05a929d9 100644 --- a/src/journal/sd-journal.h +++ b/src/journal/sd-journal.h @@ -45,8 +45,8 @@ /* Write to daemon */ -int sd_journal_print(const char *format, ...) __attribute__ ((format (printf, 1, 2))); -int sd_journal_printv(const char *format, va_list ap); +int sd_journal_print(int piority, const char *format, ...) __attribute__ ((format (printf, 2, 3))); +int sd_journal_printv(int priority, const char *format, va_list ap); int sd_journal_send(const char *format, ...) __attribute__((sentinel)); int sd_journal_sendv(const struct iovec *iov, int n); -- 2.39.5