Commit Graph

850 Commits

Author SHA1 Message Date
Joachim Wiberg
e89ccd44ec .github: build: rewrite and add clang+gcc build matrix
- add build matrix with both gcc and clang
 - run on all pushes and pull requests, except dev (coverity)
 - use DESTDIR for install, not --prefix
 - check install-strip with tree and ldd+size with usage
 - add example w/ libsyslog, from .travis.yml

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-07-26 23:31:44 +02:00
Joachim Wiberg
b0d4e4cc3f Fix #40: update docs and online help text wrt. caching of kmsg seqno
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-07-26 14:04:45 +02:00
Joachim Wiberg
5211bcee08 Update changelogs for upcoming release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-07-01 00:12:41 +02:00
Joachim Wiberg
170673a18a Bump version for v2.3.0 release cycle, -beta1
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-07-01 00:01:27 +02:00
Joachim Wiberg
9ce3c2e8ec Fix #39: update tests to use -P fn and -C fn
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-06-30 23:00:09 +02:00
Joachim Wiberg
e381bc3620 Fix #38: add option -C file for alt. kernel seqno cache file
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-06-30 22:39:09 +02:00
Joachim Wiberg
39ffa1b4cb Fix #34: regression in internal logging, loss of restart msg
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-06-30 22:27:58 +02:00
Joachim Wiberg
75524d1878 syslogd: minor, improve flog() internal logging a bit
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-06-30 22:27:58 +02:00
Joachim Wiberg
eed3335caa logger: fix \m -> \n, found on Slackware current
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-06-30 22:27:58 +02:00
Joachim Wiberg
d7576c7fc0 syslogd.service: use journald socket, not /dev/log
This patch fixes integration with systemd-journald, and also sets the
now mandatory KillMode.

When running on systems with systemd-journald certain considerations
must be taken.  These are listed here:

  https://www.freedesktop.org/wiki/Software/systemd/syslog/

In it simplest form, the system as a whole logs through journald and
a BSD syslog daemon then gets its log messages from journald.

NOTE: due to issues with the Debian packaging of rsyslog, the sysklogd
      packages cannot be used to replace rsyslog.  First rsyslog must
      be purged to clear the syslog.socket symlink, then sysklogd can
      be installed.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-06-24 12:46:34 +02:00
Joachim Wiberg
287e009514 Fix #35: syslogd man page lists -v as verbose mode, is version
When syncing with the FreeBSD man page the audit missed this option.
The man page should detail what the daemon does, even though in this
case it would've been nice to have the FreeBSD behahvior for -v.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-06-22 08:24:43 +02:00
Joachim Wiberg
fc5096f1c2 syslogd: support for extracting user level messages from /dev/kmsg
It is well established practise on Linux to use /dev/kmsg (old or
new API) before syslogd is up (and /dev/log exists).  This patch
enables support for extracting non-kernel log messages and logging
them with their proper facility and priority.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-06-21 23:15:10 +02:00
Joachim Wiberg
7ce44f5b9e syslogd: ignore EINVAL from kernel, silently restart polling
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-06-21 23:14:57 +02:00
Joachim Wiberg
82b7e2bfcb man: update logger.1 with info on new -k option
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-06-21 23:12:54 +02:00
Joachim Wiberg
36778bee4a logger: support for -k, early log to /dev/kmsg
This patch adds support for logging to /dev/kmsg, which can be highly
useful for early scripts that run long before syslogd has started and
/dev/log is available.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-06-21 23:11:54 +02:00
Joachim Wiberg
10ccdc3da1 logger: only attempt logrotate if target is file
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-06-20 09:10:26 +02:00
Joachim Wiberg
17b68ca89a Update changelogs and bump version for v2.2.3 release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-05-11 11:37:18 +02:00
Joachim Wiberg
4accbafa17 Bump version to firsta and final -rc1
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-05-07 04:34:37 +02:00
Joachim Wiberg
7e721adc58 Revert "Travis-CI: disable clang temporarily for Coverity Scan run"
This reverts commit 947a0e103b.
2021-05-07 04:34:16 +02:00
Joachim Wiberg
e3d6ff8737 Check boundary in every step of parse_rfc5424()
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-05-06 11:59:33 +02:00
Joachim Wiberg
d1f1702277 Check boundary first in parse_rfc5424()
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-05-06 10:09:34 +02:00
Joachim Wiberg
ebced817a7 Ensure argument to printsys() is always nul terminated
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-05-06 10:03:01 +02:00
Joachim Wiberg
52fc3f7176 Ensure received data is nul terminated, found by Coverity Scan
Coverity found two possible untrusted loop bounds, in unix_cb() and
inet_cb(), that were indeed possibly unterminated strings.  These
were classified as medium.  A third finding, marked high, was found
in kernel_cb(), which upon further investigation seems bogus.

This patch terminates the buffers received in unix_cb() and inet_cb()
but only changes to 0 from \0 termination in kernel_cb().

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-05-06 09:42:45 +02:00
Joachim Wiberg
65ceec1171 Fix GCC warning: integer constant is so large that it is unsigned
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-05-06 08:55:26 +02:00
Joachim Wiberg
947a0e103b Travis-CI: disable clang temporarily for Coverity Scan run
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-05-06 08:52:49 +02:00
Joachim Wiberg
9847237515 Update and sync changelogs
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-05-06 08:51:22 +02:00
Joachim Wiberg
e5ee2446a0 Follow-up to 92a4fb3: allow kernel log dupes around edge of seqno
Although hihgly unlikely, if the kernel log sequence number (seqno)
reaches the end of its MAX value (18446744073709551615) we allow for
dupes to handle the wrap-around back to zero (0) in the counter.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-05-06 08:47:30 +02:00
Joachim Wiberg
4e1aefaf3d man: update syslogd(8) with new cache file and fix pidfile name
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-05-05 05:17:15 +02:00
Joachim Wiberg
92a4fb3318 Fix #29: prevent repeating kernel messages when syslogd is restarted
This patch fixes the problem with kernel messages being repeated when
syslogd is restarted at runtime.  This is achieved by caching the last
seqno read from /dev/kmsg to /run/syslogd.cache.  The latter is usually
a ram disk these days so it should be a fairly quick op.

Excessive updates are prevented by only caching after handling all
callbacks in the socket_poll() loop, and only updating the cache
if there has been any new kernel messages since last update.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-05-05 05:17:15 +02:00
Joachim Wiberg
a38daf0896 test: clean up residual test files
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-05-05 05:01:12 +02:00
Joachim Wiberg
1de66a04c0 logger: minor, staticify
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-05-05 04:52:48 +02:00
Joachim Wiberg
d736c837d0 Update changelogs and bump version for upcoming v2.2.3 patch release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-05-05 03:40:48 +02:00
Joachim Wiberg
eb454d7d37 Fix #28: log messages stuck in 1969
The timer_now() API, introduced in 2019, returns time relative to boot.
Useful for relative time comparisons, but when used for absolute time,
e.g. for log messages, it must be offset with boot_time.

This patch fixes issue #28, but also wall messages, which exhibits the
same problem.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-05-05 03:25:22 +02:00
Joachim Wiberg
4ab8bc7b40 Fix #31: invalid time for kernel log messages on 32-bit machines
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-05-05 03:04:52 +02:00
Joachim Wiberg
d722584191 Fix #32: fix logging of remote kernel messages being mapped to uucp
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-05-04 10:45:13 +02:00
Joachim Wiberg
f507ed8ff3 Update changelogs and bump version for v2.2.2 release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-03-08 11:37:06 +01:00
Joachim Wiberg
80ec47b0ca debian: allow building package without systemd installed
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-02-21 17:13:09 +01:00
Joachim Wiberg
e7194db01f debian: leverage built-in log rotation instead of logrotate
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-02-21 16:24:30 +01:00
Joachim Wiberg
24f0fd36c4 Prepare for v2.2.2 release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-02-21 16:18:12 +01:00
Joachim Wiberg
2db6f712ce debian: initial syslogd/logger/libsyslog0/libsylog-dev packaging
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-02-21 16:18:12 +01:00
Joachim Wiberg
ca6b36c63a Makefile: add relase-hook to verify release is tagged
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-02-21 15:50:27 +01:00
Joachim Wiberg
9dba6d3b9f man: fix unexpected use of .Lb, found by lintian
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-02-21 15:50:13 +01:00
Joachim Wiberg
c66c36fa90 man: drop sysklogd version from .Os and fix syslog.conf .Nd
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-02-21 15:50:13 +01:00
Joachim Wiberg
a26ec5a84e man: Fix spelling error found by lintian
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-02-21 15:50:13 +01:00
Joachim Wiberg
2731591709 syslogd: Fix spelling error found by lintian
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-02-21 15:50:13 +01:00
Joachim Wiberg
e58b0cf180 syslogd.service: read SYSLOGD_OPTS from /etc/default/syslogd
- drop hard-coded -s from syslogd command line
- allow options to be read from /etc/default/syslogd

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-02-21 13:07:56 +01:00
Joachim Wiberg
d00c9dac74 Minor, refactor in preparation for checking kmesg seqno
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-02-21 13:05:26 +01:00
Joachim Wiberg
0901310226 Load or reload timezone data on init/SIGHUP
This should fix any lingering issues with logging with the wrong
timezone at boot.  As long as syslogd gets HUP'ed after setting
the new timezone.

Improvements to this welcome, of course.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-02-21 11:47:42 +01:00
Joachim Wiberg
f54c1d1f30 Fix issue with parsing /dev/kmsg time, off by one error
Problem and proposed fix reported by opty on #troglobit at freenode.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-02-21 11:46:09 +01:00
Joachim Wiberg
b115c7ec4e Uppdate changelog and bump version for v2.2.1 release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-01-30 14:21:59 +01:00