summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr.sbin/syslogd/privsep.c6
-rw-r--r--usr.sbin/syslogd/syslogd.86
-rw-r--r--usr.sbin/syslogd/syslogd.c9
-rw-r--r--usr.sbin/syslogd/syslogd.h5
4 files changed, 15 insertions, 11 deletions
diff --git a/usr.sbin/syslogd/privsep.c b/usr.sbin/syslogd/privsep.c
index 22caa65c88c..499d49979ee 100644
--- a/usr.sbin/syslogd/privsep.c
+++ b/usr.sbin/syslogd/privsep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: privsep.c,v 1.43 2014/08/25 20:19:14 bluhm Exp $ */
+/* $OpenBSD: privsep.c,v 1.44 2014/09/08 00:43:42 doug Exp $ */
/*
* Copyright (c) 2003 Anil Madhavapeddy <anil@recoil.org>
@@ -183,8 +183,10 @@ priv_init(char *conf, int numeric, int lockfd, int nullfd, char *argv[])
close(pfd[PFD_CTLSOCK].fd);
if (pfd[PFD_CTLCONN].fd != -1)
close(pfd[PFD_CTLCONN].fd);
- if (pfd[PFD_KLOG].fd)
+ if (pfd[PFD_KLOG].fd != -1)
close(pfd[PFD_KLOG].fd);
+ if (pfd[PFD_SENDSYS].fd != -1)
+ close(pfd[PFD_SENDSYS].fd);
/* Save the config file specified by the child process */
if (strlcpy(config_file, conf, sizeof config_file) >= sizeof(config_file))
diff --git a/usr.sbin/syslogd/syslogd.8 b/usr.sbin/syslogd/syslogd.8
index abca8ffc809..053826caacd 100644
--- a/usr.sbin/syslogd/syslogd.8
+++ b/usr.sbin/syslogd/syslogd.8
@@ -1,4 +1,4 @@
-.\" $OpenBSD: syslogd.8,v 1.30 2014/08/25 20:25:46 bluhm Exp $
+.\" $OpenBSD: syslogd.8,v 1.31 2014/09/08 00:43:42 doug Exp $
.\"
.\" Copyright (c) 1983, 1986, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
@@ -30,7 +30,7 @@
.\" from: @(#)syslogd.8 8.1 (Berkeley) 6/6/93
.\" $NetBSD: syslogd.8,v 1.3 1996/01/02 17:41:48 perry Exp $
.\"
-.Dd $Mdocdate: August 25 2014 $
+.Dd $Mdocdate: September 8 2014 $
.Dt SYSLOGD 8
.Os
.Sh NAME
@@ -66,7 +66,7 @@ to use IPv6 addresses only.
Specify a location where
.Nm
should place an additional log socket.
-Up to about 20 additional logging sockets can be specified.
+Up to 20 additional logging sockets can be specified.
The primary use for this is to place additional log sockets in
.Pa /dev/log
of various chroot filespaces, though the need for these is
diff --git a/usr.sbin/syslogd/syslogd.c b/usr.sbin/syslogd/syslogd.c
index 2ae23c06faf..82684790348 100644
--- a/usr.sbin/syslogd/syslogd.c
+++ b/usr.sbin/syslogd/syslogd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: syslogd.c,v 1.122 2014/09/04 15:19:05 bluhm Exp $ */
+/* $OpenBSD: syslogd.c,v 1.123 2014/09/08 00:43:42 doug Exp $ */
/*
* Copyright (c) 1983, 1988, 1993, 1994
@@ -453,13 +453,12 @@ main(int argc, char *argv[])
pfd[PFD_UNIX_0 + i].events = POLLIN;
}
- nfunix++;
if (socketpair(AF_UNIX, SOCK_DGRAM, PF_UNSPEC, pair) == -1)
die(0);
fd = pair[0];
double_rbuf(fd);
- pfd[PFD_UNIX_0 + i].fd = fd;
- pfd[PFD_UNIX_0 + i].events = POLLIN;
+ pfd[PFD_SENDSYS].fd = fd;
+ pfd[PFD_SENDSYS].events = POLLIN;
if (ctlsock_path != NULL) {
fd = unix_socket(ctlsock_path, SOCK_STREAM, 0600);
@@ -608,6 +607,8 @@ main(int argc, char *argv[])
unix_read_handler(pfd[PFD_UNIX_0 + i].fd);
}
}
+ if ((pfd[PFD_SENDSYS].revents & POLLIN) != 0)
+ unix_read_handler(pfd[PFD_SENDSYS].fd);
}
/* NOTREACHED */
return (0);
diff --git a/usr.sbin/syslogd/syslogd.h b/usr.sbin/syslogd/syslogd.h
index 201d220bb04..63a2e03c678 100644
--- a/usr.sbin/syslogd/syslogd.h
+++ b/usr.sbin/syslogd/syslogd.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: syslogd.h,v 1.12 2014/08/25 18:19:18 bluhm Exp $ */
+/* $OpenBSD: syslogd.h,v 1.13 2014/09/08 00:43:42 doug Exp $ */
/*
* Copyright (c) 2003 Anil Madhavapeddy <anil@recoil.org>
@@ -54,7 +54,8 @@ extern int Startup;
#define PFD_CTLSOCK 2 /* Offset of control socket entry */
#define PFD_CTLCONN 3 /* Offset of control connection entry */
#define PFD_INET6 4 /* Offset of inet6 socket entry */
-#define PFD_UNIX_0 5 /* Start of Unix socket entries */
+#define PFD_SENDSYS 5 /* Offset of sendsyslog(2) entry */
+#define PFD_UNIX_0 6 /* Start of Unix socket entries */
#define N_PFD (PFD_UNIX_0 + MAXFUNIX) /* # of pollfd entries */
extern struct pollfd pfd[N_PFD];