summaryrefslogtreecommitdiffstats
path: root/misc-utils
diff options
context:
space:
mode:
authorSami Kerola2014-07-27 19:33:22 +0200
committerSami Kerola2014-07-28 22:15:18 +0200
commit133bf77bc28db78dee5b200c428c104a5727398a (patch)
treee170822b0a5d7c139341f61056f5e4c385152503 /misc-utils
parentlogger: warn when --file and command line message are combined (diff)
downloadkernel-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.c11
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)