summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr.sbin/syslogd/log.c27
-rw-r--r--usr.sbin/syslogd/log.h4
-rw-r--r--usr.sbin/syslogd/syslogd.c16
3 files changed, 15 insertions, 32 deletions
diff --git a/usr.sbin/syslogd/log.c b/usr.sbin/syslogd/log.c
index 7de0fc7164a..e4ca2ec038b 100644
--- a/usr.sbin/syslogd/log.c
+++ b/usr.sbin/syslogd/log.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: log.c,v 1.3 2017/04/06 14:55:43 bluhm Exp $ */
+/* $OpenBSD: log.c,v 1.4 2017/04/28 14:52:13 bluhm Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -28,7 +28,6 @@
#include "log.h"
#include "syslogd.h"
-static int debug;
static int verbose;
static int facility;
static const char *log_procname;
@@ -40,7 +39,6 @@ log_init(int n_debug, int fac)
{
extern char *__progname;
- debug = n_debug;
verbose = n_debug;
facility = fac;
log_procinit(__progname);
@@ -62,18 +60,6 @@ log_procinit(const char *procname)
}
void
-log_setdebug(int d)
-{
- debug = d;
-}
-
-int
-log_getdebug(void)
-{
- return (debug);
-}
-
-void
log_setverbose(int v)
{
verbose = v;
@@ -98,18 +84,9 @@ logit(int pri, const char *fmt, ...)
void
vlog(int pri, const char *fmt, va_list ap)
{
- char ebuf[ERRBUFSIZE];
- size_t l;
int saved_errno = errno;
- if (debug) {
- l = snprintf(ebuf, sizeof(ebuf), "%s: ", log_procname);
- if (l < sizeof(ebuf))
- vsnprintf(ebuf+l, sizeof(ebuf)-l, fmt, ap);
- fprintf(stderr, "%s\n", ebuf);
- fflush(stderr);
- } else
- vlogmsg(facility|pri, log_procname, fmt, ap);
+ vlogmsg(facility|pri, log_procname, fmt, ap);
errno = saved_errno;
}
diff --git a/usr.sbin/syslogd/log.h b/usr.sbin/syslogd/log.h
index b3f70fb2073..c7c6c9bbe3e 100644
--- a/usr.sbin/syslogd/log.h
+++ b/usr.sbin/syslogd/log.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: log.h,v 1.2 2017/04/05 11:31:45 bluhm Exp $ */
+/* $OpenBSD: log.h,v 1.3 2017/04/28 14:52:13 bluhm Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -26,8 +26,6 @@
void log_init(int, int);
void log_procinit(const char *);
-void log_setdebug(int);
-int log_getdebug(void);
void log_setverbose(int);
int log_getverbose(void);
void log_warn(const char *, ...)
diff --git a/usr.sbin/syslogd/syslogd.c b/usr.sbin/syslogd/syslogd.c
index 39ba8422464..04cba389ef3 100644
--- a/usr.sbin/syslogd/syslogd.c
+++ b/usr.sbin/syslogd/syslogd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: syslogd.c,v 1.243 2017/04/25 17:45:50 bluhm Exp $ */
+/* $OpenBSD: syslogd.c,v 1.244 2017/04/28 14:52:13 bluhm Exp $ */
/*
* Copyright (c) 1983, 1988, 1993, 1994
@@ -204,6 +204,7 @@ int Debug; /* debug flag */
int Foreground; /* run in foreground, instead of daemonizing */
char LocalHostName[HOST_NAME_MAX+1]; /* our hostname */
char *LocalDomain; /* our local domain name */
+int Started = 0; /* set after privsep */
int Initialized = 0; /* set when we have initialized ourselves */
int MarkInterval = 20 * 60; /* interval between marks in seconds */
@@ -465,7 +466,6 @@ main(int argc, char *argv[])
log_init(Debug, LOG_SYSLOG);
log_procinit("syslogd");
- log_setdebug(1);
if (Debug)
setvbuf(stdout, NULL, _IOLBF, 0);
@@ -731,6 +731,8 @@ main(int argc, char *argv[])
if (pledge("stdio unix inet recvfd", NULL) == -1)
err(1, "pledge");
+ Started = 1;
+
/* Process is now unprivileged and inside a chroot */
if (Debug)
event_set_log_callback(logevent);
@@ -791,8 +793,6 @@ main(int argc, char *argv[])
init();
- log_setdebug(0);
-
/* Allocate ctl socket reply buffer if we have a ctl socket */
if (fd_ctlsock != -1 &&
(ctl_reply = malloc(CTL_REPLY_MAXSIZE)) == NULL)
@@ -1627,6 +1627,10 @@ vlogmsg(int pri, const char *proc, const char *fmt, va_list ap)
l = snprintf(msg, sizeof(msg), "%s[%d]: ", proc, getpid());
if (l < sizeof(msg))
vsnprintf(msg + l, sizeof(msg) - l, fmt, ap);
+ if (!Started) {
+ fprintf(stderr, "%s\n", msg);
+ return;
+ }
logline(pri, ADDDATE, LocalHostName, msg);
}
@@ -1763,6 +1767,10 @@ logline(int pri, int flags, char *from, char *msg)
f->f_file = priv_open_tty(ctty);
if (f->f_file >= 0) {
+ strlcpy(f->f_lasttime, timestamp,
+ sizeof(f->f_lasttime));
+ strlcpy(f->f_prevhost, from,
+ sizeof(f->f_prevhost));
fprintlog(f, flags, msg);
(void)close(f->f_file);
f->f_file = -1;