diff options
author | Sami Kerola | 2014-07-27 19:33:22 +0200 |
---|---|---|
committer | Sami Kerola | 2014-07-28 22:15:18 +0200 |
commit | 133bf77bc28db78dee5b200c428c104a5727398a (patch) | |
tree | e170822b0a5d7c139341f61056f5e4c385152503 /misc-utils | |
parent | logger: warn when --file and command line message are combined (diff) | |
download | kernel-qcow2-util-linux-133bf77bc28db78dee5b200c428c104a5727398a.tar.gz kernel-qcow2-util-linux-133bf77bc28db78dee5b200c428c104a5727398a.tar.xz kernel-qcow2-util-linux-133bf77bc28db78dee5b200c428c104a5727398a.zip |
logger: add hostname to rfc3164 message
This makes the obsolete protocol a little bit more compliant with the
internet standard, but few should care now when we have rfc5424 support,
and rfc3164 feels broken. For example it requires hostname to be not
fully qualified, which is hard to understand, and should make users to
prefer the new protocol.
Reported-by: Frank Thilo <thilo@unix-ag.org>
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=705217
CC: Andreas Henriksson <andreas@fatal.se>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Diffstat (limited to 'misc-utils')
-rw-r--r-- | misc-utils/logger.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/misc-utils/logger.c b/misc-utils/logger.c index ac583fd10..9da404d26 100644 --- a/misc-utils/logger.c +++ b/misc-utils/logger.c @@ -298,7 +298,7 @@ static pid_t get_process_id(struct logger_ctl *ctl) static void syslog_rfc3164(struct logger_ctl *ctl, char *msg) { - char buf[1000], pid[30], *cp, *tp; + char buf[1000], pid[30], *cp, *tp, *hostname, *dot; time_t now; pid_t process; @@ -312,10 +312,15 @@ static void syslog_rfc3164(struct logger_ctl *ctl, char *msg) cp = ctl->tag; else cp = xgetlogin(); + hostname = xgethostname(); + dot = strchr(hostname, '.'); + if (dot) + *dot = '\0'; time(&now); tp = ctime(&now) + 4; - snprintf(buf, sizeof(buf), "<%d>%.15s %.200s%s: %.400s", - ctl->pri, tp, cp, pid, msg); + snprintf(buf, sizeof(buf), "<%d>%.15s %s %.200s%s: %.400s", + ctl->pri, tp, hostname, cp, pid, msg); + free(hostname); if (write_all(ctl->fd, buf, strlen(buf) + 1) < 0) warn(_("write failed")); if (ctl->logflags & LOG_PERROR) |