]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Add RFC 5424 syslog message output to syslogd.
authored <ed@FreeBSD.org>
Sun, 15 Apr 2018 08:34:16 +0000 (08:34 +0000)
committered <ed@FreeBSD.org>
Sun, 15 Apr 2018 08:34:16 +0000 (08:34 +0000)
commitd178bf09596e0c1c811d30257ec76c55993256ed
tree80361c1ffccab12c5e1a3cb7f7bb5afb0fdd56f3
parent5c64b878fabfa926db01468855440905a5d012a8
Add RFC 5424 syslog message output to syslogd.

- Move all of the code responsible for transmitting log messages into a
  separate function, fprintlog_write().
- Instead of manually modifying a list of iovecs, add a structure
  iovlist with some helper functions.
- Alter the F_FORW (UDP message forwarding) case to also use iovecs like
  the other cases. Use sendmsg() instead of sendto().
- In the case of F_FORW, truncate the message to a size dependent on the
  address family (AF_INET, AF_INET6), as proposed by RFC 5426.
- Move all traditional message formatting into fprintlog_bsd(). Get rid
  of some of the string copying and snprintf()'ing. Simply emit more
  iovecs to get the job done.
- Increase ttymsg()'s limit of 7 iovecs to 32. Add a definition for this
  limit, so it can be reused by iovlist.
- Add fprintlog_rfc5424() to emit RFC 5424 formatted log entries.
- Add a "-O" command line option to enable RFC 5424 formatting. It would
  have been nicer if we supported "-o rfc5424", just like on NetBSD.
  Unfortunately, the "-o" flag is already used for a different purpose
  on FreeBSD.
- Don't truncate hostnames in the RFC 5424 case, as suggested by that
  specific RFC.

For people interested in using this, this feature can be enabled by
adding the following line to /etc/rc.conf:

  syslogd_flags="-s -O rfc5424"

Differential Revision: https://reviews.freebsd.org/D15011
usr.bin/wall/ttymsg.c
usr.bin/wall/ttymsg.h
usr.sbin/syslogd/syslogd.8
usr.sbin/syslogd/syslogd.c