mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-25 06:03:40 +03:00
journald: use the "driver" transport for logging a refused connection
Otherwise, these messages can end up in `/dev/null` when journald is run in containers as was shown in https://github.com/systemd/systemd/pull/10444#issuecomment-430927793.
This commit is contained in:
parent
9e8b1ec08e
commit
c8758e726c
@ -610,7 +610,17 @@ static int stdout_stream_new(sd_event_source *es, int listen_fd, uint32_t revent
|
||||
}
|
||||
|
||||
if (s->n_stdout_streams >= STDOUT_STREAMS_MAX) {
|
||||
log_warning("Too many stdout streams, refusing connection.");
|
||||
struct ucred u;
|
||||
|
||||
r = getpeercred(fd, &u);
|
||||
|
||||
/* By closing fd here we make sure that the client won't wait too long for journald to
|
||||
* gather all the data it adds to the error message to find out that the connection has
|
||||
* just been refused.
|
||||
*/
|
||||
fd = safe_close(fd);
|
||||
|
||||
server_driver_message(s, r < 0 ? 0 : u.pid, NULL, LOG_MESSAGE("Too many stdout streams, refusing connection."), NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user