diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/misc/syslog.c | 6 | 
1 files changed, 4 insertions, 2 deletions
| diff --git a/src/misc/syslog.c b/src/misc/syslog.c index 57f1d75c..eb782984 100644 --- a/src/misc/syslog.c +++ b/src/misc/syslog.c @@ -80,6 +80,7 @@ static void _vsyslog(int priority, const char *message, va_list ap)  	int errno_save = errno;  	int pid;  	int l, l2; +	int hlen;  	if (log_fd < 0) {  		__openlog(); @@ -93,8 +94,8 @@ static void _vsyslog(int priority, const char *message, va_list ap)  	strftime(timebuf, sizeof timebuf, "%b %e %T", &tm);  	pid = (log_opt & LOG_PID) ? getpid() : 0; -	l = snprintf(buf, sizeof buf, "<%d>%s %s%s%.0d%s: ", -		priority, timebuf, log_ident, "["+!pid, pid, "]"+!pid); +	l = snprintf(buf, sizeof buf, "<%d>%s %n%s%s%.0d%s: ", +		priority, timebuf, &hlen, log_ident, "["+!pid, pid, "]"+!pid);  	errno = errno_save;  	l2 = vsnprintf(buf+l, sizeof buf - l, message, ap);  	if (l2 >= 0) { @@ -102,6 +103,7 @@ static void _vsyslog(int priority, const char *message, va_list ap)  		else l += l2;  		if (buf[l-1] != '\n') buf[l++] = '\n';  		send(log_fd, buf, l, 0); +		if (log_opt & LOG_PERROR) dprintf(2, "%.*s", l-hlen, buf+hlen);  	}  } | 
