Early daemons like dhcpleased(8), slaacd(8), unwind(8), resolvd(8)
authorbluhm <bluhm@openbsd.org>
Tue, 9 Mar 2021 15:08:23 +0000 (15:08 +0000)
committerbluhm <bluhm@openbsd.org>
Tue, 9 Mar 2021 15:08:23 +0000 (15:08 +0000)
commit5fc6fc53eed51b106058ed08dbfbec744f12aebd
tree0496919e8c31deda94a074dedc9eee76d87b0ff8
parent143af180a959ed4dd7ce4f834f80c514aee43de3
Early daemons like dhcpleased(8), slaacd(8), unwind(8), resolvd(8)
are started before syslogd(8).  This resulted in ugly sendsyslog(2)
dropped logs and the real message was lost.
Create a temporary stash for log messages within the kernel.  It
has a limited size of 100 messages, and each message is truncated
to 8192 bytes.  When the stash is exhausted, the well-known dropped
message is generated with a counter.  After syslogd(8) has setup
everything, it sends a debug line through libc to flush the kernel
stash.  Then syslogd receives all messages from the kernel before
the usual logs.
OK deraadt@ visa@
lib/libc/sys/sendsyslog.2
sys/kern/subr_log.c
sys/sys/malloc.h
usr.sbin/syslogd/syslogd.c