From: Sami Kerola Date: Sun, 27 Jul 2014 17:33:22 +0000 (+0100) Subject: logger: add hostname to rfc3164 message X-Git-Tag: v2.26-rc1~576^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=133bf77bc28db78dee5b200c428c104a5727398a;p=thirdparty%2Futil-linux.git 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 Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=705217 CC: Andreas Henriksson Signed-off-by: Sami Kerola --- diff --git a/misc-utils/logger.c b/misc-utils/logger.c index ac583fd104..9da404d26e 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)