Commit Graph

721 Commits

Author SHA1 Message Date
Joachim Wiberg
7df454daa8 .github: try working around runner limitations in unshare
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-22 10:35:56 +01:00
Joachim Wiberg
50307c142c .github: simplify apt-get, from smcroute
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-22 05:02:28 +01:00
Joachim Wiberg
523926a07d test: initial refactor to support running in parallel in an unshare
The release suite fails with no permissions to dump loopback, so let's
run tests in an unshare, one per test, with and start as many syslogd as
needed for each test -- also easier to debug since all are then fully
stand-alone.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-22 04:59:23 +01:00
Joachim Wiberg
81eee2185e .github: sync release.yml apt-get with smcroute
Somehow tshark doesn't get installed with the correct permissions to dump loopback.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-22 04:58:16 +01:00
Joachim Wiberg
1018d4a7f4 Avoid NULL pointer to vsnprintf()
GLIBC is friendly enough to check for NULL and replace segfault with
"(null)", but other C-libs may not handle it as gracefully.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-22 04:35:01 +01:00
Joachim Wiberg
558caf1a10 .github: dump test logs from distcheck build directory
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-22 03:39:27 +01:00
Joachim Wiberg
f7b2479e7d .github: sync release with build, dump result of remote test
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-22 03:28:33 +01:00
Joachim Wiberg
6054df0864 Fix stray 'a' to AC_INIT(), release v2.3.0
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-22 02:25:38 +01:00
Joachim Wiberg
f62b70059e Update changelogs and bump version for v2.3.0 release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-22 02:21:02 +01:00
Joachim Wiberg
f3ef9d7514 Revert "Extract version from GIT, inspiration from mdio-tools"
This reverts commit da7425f757.
2021-11-17 06:51:45 +01:00
Joachim Wiberg
17a62a7f31 Fix #41: add missing documentation for -H option
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-09 18:32:49 +01:00
Joachim Wiberg
37e05b6855 .github: add release general to automate release builds
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-08 07:05:56 +01:00
Joachim Wiberg
da7425f757 Extract version from GIT, inspiration from mdio-tools
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-08 07:05:56 +01:00
Joachim Wiberg
029115a23e Drop .deb package from release target
We're moving to automated releases using GitHub Actions, but the bots
cannot be trusted to do .deb packaging yet, so let's drop that from
the official release target for now.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-08 07:05:28 +01:00
Joachim Wiberg
1a91be0fca Adjust output from release target slightly (from mrouted)
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-08 07:05:28 +01:00
Joachim Wiberg
262ffea56b Update tag check in release-hook to prevent false positives
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-09-15 09:46:03 +02:00
Joachim Wiberg
340538ecaa .github: coverity: change step name to trigger build
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-07-27 00:14:56 +02:00
Joachim Wiberg
48930cd223 .github: add workflow for Coverity Scan (branch: dev)
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-07-27 00:01:53 +02:00
Joachim Wiberg
9d71746c17 .github: build: install systemd unit files in /tmp
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-07-26 23:46:05 +02:00
Joachim Wiberg
5d7c1e18d6 .github: build: install to fixed dir for pkg-config
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-07-26 23:43:01 +02:00
Joachim Wiberg
5163b76290 Drop Travis-CI in favor of GitHub Actions
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-07-26 23:38:07 +02:00
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