journal: rename syslog tag to identifier since that's what we call it on the server side.

This commit is contained in:
Lennart Poettering 2012-01-05 21:43:49 +01:00
parent 258cdffc2f
commit 4cd9a9d9ec
4 changed files with 84 additions and 85 deletions

View file

@ -209,7 +209,7 @@ _public_ int sd_journal_sendv(const struct iovec *iov, int n) {
return 0;
}
_public_ int sd_journal_stream_fd(const char *tag, int priority, int priority_prefix) {
_public_ int sd_journal_stream_fd(const char *identifier, int priority, int level_prefix) {
union sockaddr_union sa;
int fd;
char *header;
@ -238,17 +238,17 @@ _public_ int sd_journal_stream_fd(const char *tag, int priority, int priority_pr
return -errno;
}
if (!tag)
tag = "";
if (!identifier)
identifier = "";
l = strlen(tag);
l = strlen(identifier);
header = alloca(l + 1 + 2 + 2 + 2 + 2 + 2);
memcpy(header, tag, l);
memcpy(header, identifier, l);
header[l++] = '\n';
header[l++] = '0' + priority;
header[l++] = '\n';
header[l++] = '0' + !!priority_prefix;
header[l++] = '0' + !!level_prefix;
header[l++] = '\n';
header[l++] = '0';
header[l++] = '\n';

View file

@ -63,7 +63,7 @@
#define N_IOVEC_META_FIELDS 16
typedef enum StdoutStreamState {
STDOUT_STREAM_TAG,
STDOUT_STREAM_IDENTIFIER,
STDOUT_STREAM_PRIORITY,
STDOUT_STREAM_LEVEL_PREFIX,
STDOUT_STREAM_FORWARD_TO_SYSLOG,
@ -80,7 +80,7 @@ struct StdoutStream {
struct ucred ucred;
char *tag;
char *identifier;
int priority;
bool level_prefix:1;
bool forward_to_syslog:1;
@ -733,13 +733,13 @@ static void forward_syslog_raw(Server *s, const char *buffer, struct ucred *ucre
forward_syslog_iovec(s, &iovec, 1, ucred, tv);
}
static void forward_syslog(Server *s, int priority, const char *tag, const char *message, struct ucred *ucred, struct timeval *tv) {
static void forward_syslog(Server *s, int priority, const char *identifier, const char *message, struct ucred *ucred, struct timeval *tv) {
struct iovec iovec[5];
char header_priority[6], header_time[64], header_pid[16];
int n = 0;
time_t t;
struct tm *tm;
char *tag_buf = NULL;
char *ident_buf = NULL;
assert(s);
assert(priority >= 0);
@ -760,22 +760,22 @@ static void forward_syslog(Server *s, int priority, const char *tag, const char
return;
IOVEC_SET_STRING(iovec[n++], header_time);
/* Third: tag and PID */
/* Third: identifier and PID */
if (ucred) {
if (!tag) {
get_process_comm(ucred->pid, &tag_buf);
tag = tag_buf;
if (!identifier) {
get_process_comm(ucred->pid, &ident_buf);
identifier = ident_buf;
}
snprintf(header_pid, sizeof(header_pid), "[%lu]: ", (unsigned long) ucred->pid);
char_array_0(header_pid);
if (tag)
IOVEC_SET_STRING(iovec[n++], tag);
if (identifier)
IOVEC_SET_STRING(iovec[n++], identifier);
IOVEC_SET_STRING(iovec[n++], header_pid);
} else if (tag) {
IOVEC_SET_STRING(iovec[n++], tag);
} else if (identifier) {
IOVEC_SET_STRING(iovec[n++], identifier);
IOVEC_SET_STRING(iovec[n++], ": ");
}
@ -784,7 +784,7 @@ static void forward_syslog(Server *s, int priority, const char *tag, const char
forward_syslog_iovec(s, iovec, n, ucred, tv);
free(tag_buf);
free(ident_buf);
}
static int fixup_priority(int priority) {
@ -795,11 +795,11 @@ static int fixup_priority(int priority) {
return priority;
}
static void forward_kmsg(Server *s, int priority, const char *tag, const char *message, struct ucred *ucred) {
static void forward_kmsg(Server *s, int priority, const char *identifier, const char *message, struct ucred *ucred) {
struct iovec iovec[5];
char header_priority[6], header_pid[16];
int n = 0;
char *tag_buf = NULL;
char *ident_buf = NULL;
int fd;
assert(s);
@ -816,22 +816,22 @@ static void forward_kmsg(Server *s, int priority, const char *tag, const char *m
char_array_0(header_priority);
IOVEC_SET_STRING(iovec[n++], header_priority);
/* Second: tag and PID */
/* Second: identifier and PID */
if (ucred) {
if (!tag) {
get_process_comm(ucred->pid, &tag_buf);
tag = tag_buf;
if (!identifier) {
get_process_comm(ucred->pid, &ident_buf);
identifier = ident_buf;
}
snprintf(header_pid, sizeof(header_pid), "[%lu]: ", (unsigned long) ucred->pid);
char_array_0(header_pid);
if (tag)
IOVEC_SET_STRING(iovec[n++], tag);
if (identifier)
IOVEC_SET_STRING(iovec[n++], identifier);
IOVEC_SET_STRING(iovec[n++], header_pid);
} else if (tag) {
IOVEC_SET_STRING(iovec[n++], tag);
} else if (identifier) {
IOVEC_SET_STRING(iovec[n++], identifier);
IOVEC_SET_STRING(iovec[n++], ": ");
}
@ -851,34 +851,34 @@ static void forward_kmsg(Server *s, int priority, const char *tag, const char *m
close_nointr_nofail(fd);
finish:
free(tag_buf);
free(ident_buf);
}
static void forward_console(Server *s, const char *tag, const char *message, struct ucred *ucred) {
static void forward_console(Server *s, const char *identifier, const char *message, struct ucred *ucred) {
struct iovec iovec[4];
char header_pid[16];
int n = 0, fd;
char *tag_buf = NULL;
char *ident_buf = NULL;
assert(s);
assert(message);
/* First: tag and PID */
/* First: identifier and PID */
if (ucred) {
if (!tag) {
get_process_comm(ucred->pid, &tag_buf);
tag = tag_buf;
if (!identifier) {
get_process_comm(ucred->pid, &ident_buf);
identifier = ident_buf;
}
snprintf(header_pid, sizeof(header_pid), "[%lu]: ", (unsigned long) ucred->pid);
char_array_0(header_pid);
if (tag)
IOVEC_SET_STRING(iovec[n++], tag);
if (identifier)
IOVEC_SET_STRING(iovec[n++], identifier);
IOVEC_SET_STRING(iovec[n++], header_pid);
} else if (tag) {
IOVEC_SET_STRING(iovec[n++], tag);
} else if (identifier) {
IOVEC_SET_STRING(iovec[n++], identifier);
IOVEC_SET_STRING(iovec[n++], ": ");
}
@ -898,16 +898,16 @@ static void forward_console(Server *s, const char *tag, const char *message, str
close_nointr_nofail(fd);
finish:
free(tag_buf);
free(ident_buf);
}
static void read_tag(const char **buf, char **tag) {
static void read_identifier(const char **buf, char **identifier) {
const char *p;
char *t;
size_t l, e;
assert(buf);
assert(tag);
assert(identifier);
p = *buf;
@ -940,18 +940,18 @@ static void read_tag(const char **buf, char **tag) {
t = strndup(p, l);
if (t)
*tag = t;
*identifier = t;
*buf = p + e;
*buf += strspn(*buf, WHITESPACE);
}
static void process_syslog_message(Server *s, const char *buf, struct ucred *ucred, struct timeval *tv) {
char *message = NULL, *syslog_priority = NULL, *syslog_facility = NULL, *syslog_tag = NULL;
char *message = NULL, *syslog_priority = NULL, *syslog_facility = NULL, *syslog_identifier = NULL;
struct iovec iovec[N_IOVEC_META_FIELDS + 5];
unsigned n = 0;
int priority = LOG_USER | LOG_INFO;
char *tag = NULL;
char *identifier = NULL;
assert(s);
assert(buf);
@ -961,13 +961,13 @@ static void process_syslog_message(Server *s, const char *buf, struct ucred *ucr
parse_syslog_priority((char**) &buf, &priority);
skip_syslog_date((char**) &buf);
read_tag(&buf, &tag);
read_identifier(&buf, &identifier);
if (s->forward_to_kmsg)
forward_kmsg(s, priority, tag, buf, ucred);
forward_kmsg(s, priority, identifier, buf, ucred);
if (s->forward_to_console)
forward_console(s, tag, buf, ucred);
forward_console(s, identifier, buf, ucred);
IOVEC_SET_STRING(iovec[n++], "_TRANSPORT=syslog");
@ -978,10 +978,10 @@ static void process_syslog_message(Server *s, const char *buf, struct ucred *ucr
if (asprintf(&syslog_facility, "SYSLOG_FACILITY=%i", LOG_FAC(priority)) >= 0)
IOVEC_SET_STRING(iovec[n++], syslog_facility);
if (tag) {
syslog_tag = strappend("SYSLOG_TAG=", tag);
if (syslog_tag)
IOVEC_SET_STRING(iovec[n++], syslog_tag);
if (identifier) {
syslog_identifier = strappend("SYSLOG_IDENTIFIER=", identifier);
if (syslog_identifier)
IOVEC_SET_STRING(iovec[n++], syslog_identifier);
}
message = strappend("MESSAGE=", buf);
@ -991,10 +991,10 @@ static void process_syslog_message(Server *s, const char *buf, struct ucred *ucr
dispatch_message(s, iovec, n, ELEMENTSOF(iovec), ucred, tv, priority);
free(message);
free(tag);
free(identifier);
free(syslog_priority);
free(syslog_facility);
free(syslog_tag);
free(syslog_identifier);
}
static bool valid_user_field(const char *p, size_t l) {
@ -1038,7 +1038,7 @@ static void process_native_message(Server *s, const void *buffer, size_t buffer_
const char *p;
size_t remaining;
int priority = LOG_INFO;
char *tag = NULL, *message = NULL;
char *identifier = NULL, *message = NULL;
assert(s);
assert(buffer || n == 0);
@ -1128,13 +1128,13 @@ static void process_native_message(Server *s, const void *buffer, size_t buffer_
priority = (priority & LOG_PRIMASK) | (((p[16] - '0')*10 + (p[17] - '0')) << 3);
else if (l >= 12 &&
memcmp(p, "SYSLOG_TAG=", 11) == 0) {
memcmp(p, "SYSLOG_IDENTIFIER=", 11) == 0) {
char *t;
t = strndup(p + 11, l - 11);
if (t) {
free(tag);
tag = t;
free(identifier);
identifier = t;
}
} else if (l >= 8 &&
memcmp(p, "MESSAGE=", 8) == 0) {
@ -1199,13 +1199,13 @@ static void process_native_message(Server *s, const void *buffer, size_t buffer_
if (message) {
if (s->forward_to_syslog)
forward_syslog(s, priority, tag, message, ucred, tv);
forward_syslog(s, priority, identifier, message, ucred, tv);
if (s->forward_to_kmsg)
forward_kmsg(s, priority, tag, message, ucred);
forward_kmsg(s, priority, identifier, message, ucred);
if (s->forward_to_console)
forward_console(s, tag, message, ucred);
forward_console(s, identifier, message, ucred);
}
dispatch_message(s, iovec, n, m, ucred, tv, priority);
@ -1220,13 +1220,13 @@ finish:
free(iovec[j].iov_base);
}
free(tag);
free(identifier);
free(message);
}
static int stdout_stream_log(StdoutStream *s, const char *p) {
struct iovec iovec[N_IOVEC_META_FIELDS + 5];
char *message = NULL, *syslog_priority = NULL, *syslog_facility = NULL, *syslog_tag = NULL;
char *message = NULL, *syslog_priority = NULL, *syslog_facility = NULL, *syslog_identifier = NULL;
unsigned n = 0;
int priority;
@ -1239,13 +1239,13 @@ static int stdout_stream_log(StdoutStream *s, const char *p) {
parse_syslog_priority((char**) &p, &priority);
if (s->forward_to_syslog || s->server->forward_to_syslog)
forward_syslog(s->server, fixup_priority(priority), s->tag, p, &s->ucred, NULL);
forward_syslog(s->server, fixup_priority(priority), s->identifier, p, &s->ucred, NULL);
if (s->forward_to_kmsg || s->server->forward_to_kmsg)
forward_kmsg(s->server, priority, s->tag, p, &s->ucred);
forward_kmsg(s->server, priority, s->identifier, p, &s->ucred);
if (s->forward_to_console || s->server->forward_to_console)
forward_console(s->server, s->tag, p, &s->ucred);
forward_console(s->server, s->identifier, p, &s->ucred);
IOVEC_SET_STRING(iovec[n++], "_TRANSPORT=stdout");
@ -1256,10 +1256,10 @@ static int stdout_stream_log(StdoutStream *s, const char *p) {
if (asprintf(&syslog_facility, "SYSLOG_FACILITY=%i", LOG_FAC(priority)) >= 0)
IOVEC_SET_STRING(iovec[n++], syslog_facility);
if (s->tag) {
syslog_tag = strappend("SYSLOG_TAG=", s->tag);
if (syslog_tag)
IOVEC_SET_STRING(iovec[n++], syslog_tag);
if (s->identifier) {
syslog_identifier = strappend("SYSLOG_IDENTIFIER=", s->identifier);
if (syslog_identifier)
IOVEC_SET_STRING(iovec[n++], syslog_identifier);
}
message = strappend("MESSAGE=", p);
@ -1271,7 +1271,7 @@ static int stdout_stream_log(StdoutStream *s, const char *p) {
free(message);
free(syslog_priority);
free(syslog_facility);
free(syslog_tag);
free(syslog_identifier);
return 0;
}
@ -1286,9 +1286,9 @@ static int stdout_stream_line(StdoutStream *s, char *p) {
switch (s->state) {
case STDOUT_STREAM_TAG:
s->tag = strdup(p);
if (!s->tag) {
case STDOUT_STREAM_IDENTIFIER:
s->identifier = strdup(p);
if (!s->identifier) {
log_error("Out of memory");
return -ENOMEM;
}
@ -1456,7 +1456,7 @@ static void stdout_stream_free(StdoutStream *s) {
close_nointr_nofail(s->fd);
}
free(s->tag);
free(s->identifier);
free(s);
}

View file

@ -92,8 +92,8 @@ static int output_short(sd_journal *j, unsigned line, bool show_all) {
const void *data;
size_t length;
size_t n = 0;
char *hostname = NULL, *tag = NULL, *comm = NULL, *pid = NULL, *message = NULL;
size_t hostname_len = 0, tag_len = 0, comm_len = 0, pid_len = 0, message_len = 0;
char *hostname = NULL, *identifier = NULL, *comm = NULL, *pid = NULL, *message = NULL;
size_t hostname_len = 0, identifier_len = 0, comm_len = 0, pid_len = 0, message_len = 0;
assert(j);
@ -105,7 +105,7 @@ static int output_short(sd_journal *j, unsigned line, bool show_all) {
else if (r > 0)
continue;
r = parse_field(data, length, "SYSLOG_TAG=", &tag, &tag_len);
r = parse_field(data, length, "SYSLOG_IDENTIFIER=", &identifier, &identifier_len);
if (r < 0)
goto finish;
else if (r > 0)
@ -153,9 +153,9 @@ static int output_short(sd_journal *j, unsigned line, bool show_all) {
n += hostname_len + 1;
}
if (tag && shall_print(show_all, tag, tag_len)) {
printf(" %.*s", (int) tag_len, tag);
n += tag_len + 1;
if (identifier && shall_print(show_all, identifier, identifier_len)) {
printf(" %.*s", (int) identifier_len, identifier);
n += identifier_len + 1;
} else if (comm && shall_print(show_all, comm, comm_len)) {
printf(" %.*s", (int) comm_len, comm);
n += comm_len + 1;
@ -190,7 +190,7 @@ static int output_short(sd_journal *j, unsigned line, bool show_all) {
finish:
free(hostname);
free(tag);
free(identifier);
free(comm);
free(pid);
free(message);

View file

@ -31,7 +31,6 @@
/* TODO:
*
* - add options for copy-to-console, copy-to-kmsg
* - OR of matches is borked...
* - extend hash tables table as we go
* - accelerate looking for "all hostnames" and suchlike.
@ -55,7 +54,7 @@ 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);
int sd_journal_stream_fd(const char *tag, int priority, int priority_prefix);
int sd_journal_stream_fd(const char *identifier, int priority, int level_prefix);
/* Browse journal stream */