syslog: use PassCred=yes for the /dev/log socket

Both kmsg-syslogd and the real syslog service want to receive
SCM_CREDENTIALS. With socket activation it is too late to set
SO_PASSCRED in the services.
This commit is contained in:
Michal Schmidt 2011-11-30 09:37:13 +01:00
parent 75d3fc60f8
commit 1a2801529e
2 changed files with 2 additions and 4 deletions

View file

@ -91,7 +91,7 @@ static int server_init(Server *s, unsigned n_sockets) {
}
for (i = 0; i < n_sockets; i++) {
int fd, one = 1;
int fd;
fd = SD_LISTEN_FDS_START+i;
@ -106,9 +106,6 @@ static int server_init(Server *s, unsigned n_sockets) {
goto fail;
}
if (setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &one, sizeof(one)) < 0)
log_error("SO_PASSCRED failed: %m");
zero(ev);
ev.events = EPOLLIN;
ev.data.fd = fd;

View file

@ -18,6 +18,7 @@ Wants=syslog.target
[Socket]
ListenDatagram=/dev/log
SocketMode=0666
PassCred=yes
# The service we activate on incoming traffic is
# systemd-kmsg-syslogd.service. That doesn't mean however, that this