1
0
Fork 0
mirror of https://github.com/pygos/init.git synced 2024-11-22 19:19:47 +01:00

Normalize syslog message line endings

Most syslog messages have a line feed at the end, but some don't. This patch
removes trailing spaces from all syslog messages that have one and always adds
a line feed in the logging back end.

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
This commit is contained in:
David Oberhollenzer 2018-08-22 18:20:34 +02:00
parent 73404a09d4
commit 532f5e6819
2 changed files with 8 additions and 2 deletions

View file

@ -151,10 +151,10 @@ static int logfile_write(logfile_t *file, const syslog_msg_t *msg)
if (fac_name == NULL) if (fac_name == NULL)
return -1; return -1;
ret = dprintf(file->fd, "[%s][%s][%s][%u] %s", timebuf, ret = dprintf(file->fd, "[%s][%s][%s][%u] %s\n", timebuf,
fac_name, lvl_str, msg->pid, msg->message); fac_name, lvl_str, msg->pid, msg->message);
} else { } else {
ret = dprintf(file->fd, "[%s][%s][%u] %s", timebuf, lvl_str, ret = dprintf(file->fd, "[%s][%s][%u] %s\n", timebuf, lvl_str,
msg->pid, msg->message); msg->pid, msg->message);
} }

View file

@ -132,6 +132,7 @@ int syslog_msg_parse(syslog_msg_t *msg, char *str)
struct tm tstamp; struct tm tstamp;
pid_t pid = 0; pid_t pid = 0;
int priority; int priority;
size_t len;
memset(msg, 0, sizeof(*msg)); memset(msg, 0, sizeof(*msg));
@ -177,6 +178,11 @@ int syslog_msg_parse(syslog_msg_t *msg, char *str)
msg->ident = ident; msg->ident = ident;
msg->message = str; msg->message = str;
len = strlen(str);
while (len > 0 && isspace(str[len - 1]))
--len;
str[len] = '\0';
if (ident != NULL) { if (ident != NULL) {
for (ptr = ident; *ptr != '\0'; ++ptr) { for (ptr = ident; *ptr != '\0'; ++ptr) {
if (!isalnum(*ptr)) if (!isalnum(*ptr))