Commit Graph
100 Commits
Author SHA1 Message Date
Joachim Wiberg ba9555870b Update ChangeLog and bump version for v2.4.3 bug fix release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-08-12 14:33:44 +02:00
Joachim Wiberg 9e9c1c884a Fix #57: garbled tag name in std log file output
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-08-12 14:30:19 +02:00
Joachim Wiberg 6bc8525a8d Ensure both logger and syslogd output the same version string
Slight differences in output when called with `-v` flag:

  - Should output to stdout, that's what people expect (not an error)
  - Should output *project* name and version, for syslogd this is not
    so obvious since it *logs* 'syslogd vx.y.z' while the version is
    'sysklogd vx.y.z'

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-08-01 13:17:01 +02:00
Joachim Wiberg 7850591388 Update ChangeLog and bump version for v2.4.2 release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-08-01 12:57:13 +02:00
Joachim Wiberg 7bd017be0a logger: fix default log severity info -> notice, like other loggers
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-08-01 12:48:31 +02:00
Joachim Wiberg a2ff3a93f6 libsyslog: drop extra leading space in message
When logging to a file we want a space to separate proc[pid]: from the
message, but for regular logging local/remote we don't want to inject
an extra space.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-08-01 12:37:19 +02:00
Joachim Wiberg 22ee326192 logger: drop trailing space when reading message from command line
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-08-01 12:28:59 +02:00
Joachim Wiberg 16bad57af5 Update ChangeLog and bump version for v2.4.1 release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-08-01 11:46:32 +02:00
Joachim Wiberg a06639bd0e libsyslog: bump ABI version, changes/additions to interface
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-08-01 11:45:33 +02:00
Joachim Wiberg 51ecc21973 man: update syslogp.3 with latest changes for remote logging
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-08-01 11:34:55 +02:00
Joachim Wiberg 460e26f0f2 man: update change date and copyright years on logger.1
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-08-01 11:34:55 +02:00
Joachim Wiberg 4fdbb64c51 libsyslog: honor LIB_PTRIM when logging to stderr
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-08-01 11:34:55 +02:00
Joachim Wiberg 221ae0abe0 libsyslog: avoid opening+connecting to syslogd when LOG_NLOG
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-08-01 11:34:55 +02:00
Joachim Wiberg 4c39bfeccb Reorder man pages links and add logger(1)
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-08-01 09:49:58 +02:00
Joachim Wiberg 87ff7d6901 test: verify remote logging in logger tool
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-31 22:56:16 +02:00
Joachim Wiberg 911e3f05a1 test: allow logger() to run w/o UNIX socket path
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-31 22:49:37 +02:00
Joachim Wiberg 43d8640aac libsyslog: enforce 32 char limit on RFC3164 output to remote syslogd
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-31 18:48:39 +02:00
Joachim Wiberg 50f6ad74cb syslogd: ensure tag is <= 32 chars for RFC3164 output
This may cause a bit of a regression for some users, but the RFC is
crystal clear on this point, the tag MUST NOT exceed 32 characters.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-31 18:48:26 +02:00
Joachim Wiberg 3969dbb8a6 Update with new details on the logger tool
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-31 17:32:36 +02:00
Joachim Wiberg c095131ff9 man: update logger(1), it can log to remote servers now
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-31 17:32:13 +02:00
Joachim Wiberg 5662afe2c0 Adjust log file output format in BSD mode to output proc[PID] too
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-31 17:17:25 +02:00
Joachim Wiberg 0811315f35 Bump version and update ChangeLog w/ last fixes before next release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-31 12:56:50 +02:00
Joachim Wiberg 8b513ade8e Fix log option flag: LOG_RFC3154 -> LOG_RFC3164
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-31 12:54:25 +02:00
Joachim Wiberg 7f4dcff60d Updates on project origin and naming
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-31 12:48:52 +02:00
Joachim Wiberg f0b7b6fdf8 Merge branch 'master' into dev 2022-07-31 12:29:29 +02:00
Joachim Wiberg 70bfb8ed98 Handle gettimeofday() errors the same way everywhere
Problem found by Coverity Scan.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-31 12:21:23 +02:00
Joachim Wiberg 4f94756bf2 logger: add support for -I PID to log, e.g., $$ from a shell script
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-31 12:03:57 +02:00
Joachim Wiberg f32ca837c1 logger: add support for -H NAME to override system hostname
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-31 11:48:58 +02:00
Joachim Wiberg c7f65e11c9 logger: minor, coding style (reverse Christmas tree)
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-31 11:44:29 +02:00
Joachim Wiberg ea1762d5f5 man: update logger(1) with new options for remote logging and format
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-31 10:46:32 +02:00
Joachim Wiberg 1fc5c174f1 logger: update usage text with new options
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-31 10:41:25 +02:00
Joachim Wiberg c8fe229cfc logger: add support for RFC3164 style (for remote) logging
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-31 10:16:01 +02:00
Joachim Wiberg 5d98f06718 logger: drop debug logs
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-31 10:14:57 +02:00
Joachim Wiberg dfb654688a logger: initial support for logging to a remote host
This is the first RFC5424 (only) support for for logging to a remote
host.  The syntax continues to follow the FreeBSD logger.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-29 14:53:23 +02:00
Joachim Wiberg 1044669b8d test: notify sometimes fail, need to wait for syslogd to rotate
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-29 14:53:03 +02:00
Joachim Wiberg 3086637768 libsyslog: fix loss of logger messages on failed connect()
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-29 14:37:46 +02:00
Joachim Wiberg ef67ecae12 Update ChangeLog for upcoming v2.4.1 bugfix release
Also, restore ChangeLog entry for released v2.4.0.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-26 09:16:29 +02:00
Joachim Wiberg daba6cce09 Fix #5&: failure to reset socket count on SIGHUP
As reported on GitHub. When logging to a remote host, after a few
SIGHUP's we get the following log message:

     Only 16 IP addresses per socket supported.

When closing all currently open sockets, the socket count must be reset
to allow for opening new ones, otherwise we'll run out of "counts".
Yes, this should be refactored to use the FreeBSD model implementation.

Problem introduced in v2.4.0, commit 075815e.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-26 07:47:09 +02:00
Joachim Wiberg e41721216c Drop repology badge(s)
No need to advertise that sysklogd is not kept up-to-date in all the
distros on the planet.  Nothing much I can do about it.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-07-21 21:06:31 +02:00
Joachim Wiberg 34c812415d Merge pull request #53 from meta-ed/hexencoding
Prevent logfile corruption by control codes

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-06-17 18:17:53 +02:00
Joachim Wiberg 2d37cf2c28 Merge pull request #52 from meta-ed/overread
Prevent overread when scanning the message buffer

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-06-17 18:16:28 +02:00
Joachim Wiberg 8f83328850 Fake usec timestamp for RFC3164 messages
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-06-05 16:43:20 +02:00
Joachim Wiberg 1e9f164198 Fake usec timestamp for untrusted kernel log messages
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-06-04 18:55:14 +02:00
Joachim Wiberg 4bbed71c29 Move debian/ dir to separate branch to ease packaging downstream
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-29 19:32:23 +02:00
Joachim Wiberg 7dc4783af8 .github: install valgrind also for release build
We call `make distcheck` in the release build, so the tests run.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-29 18:41:45 +02:00
Joachim Wiberg eafde9550d Update ChangeLog and bump version for v2.4.0 release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-29 18:27:48 +02:00
Joachim Wiberg dfc32d7843 Fix memory leak on exit
Only to clean up, possibly relevant for no-MMU systems, but
they have other issues as well (e.g. fork) that prevent them
from using the sysklogd project.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-29 16:59:50 +02:00
Joachim Wiberg 7ff4a7d210 test: reduce verbosity of new test
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-29 16:59:32 +02:00
Joachim Wiberg 715c52dc21 .github: prefix test logs with current compiler
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-29 16:24:34 +02:00
Joachim Wiberg abb093c330 .github: create tarball of test logs for upload
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-29 15:59:02 +02:00
Joachim Wiberg 0d02ba63bb .github: need valgrind for new memleak test
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-29 15:47:37 +02:00
Joachim Wiberg d76b78c873 .github: upload test logs as build artifacts
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-29 15:45:32 +02:00
Joachim Wiberg 47a980728a test: new memleak test using valgrind
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-29 15:45:32 +02:00
Joachim Wiberg 0892914581 Update changelog for upcoming v2.4.0 release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-22 22:50:25 +02:00
Joachim Wiberg a5bf845118 Enforce 'secure_mode 1' in default syslog.conf file
This disables the "unauthenticated remote disk-filling service" by
default.  A user can easily change this to 0 (or 2) to allow other
systems to log to their syslogd.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-22 22:29:43 +02:00
Joachim Wiberg 62dea3aecf Minor, fix missing \n in calls to logit()
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-22 22:10:12 +02:00
Joachim Wiberg 477bb40c44 test: new test, verifies .conf option secure_mode
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-22 22:10:12 +02:00
Joachim Wiberg 075815eeb8 Add support for setting secure_mode=[0,1,2] in .conf file
Logic for secure mode setting in .conf file

 - Command line always wins
 - SIGHUP activates changes

Note, if -s is given on command line it always wins, regardless.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-22 22:10:12 +02:00
Joachim Wiberg 577d20b8da test: use new logger() function in all tests
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-22 22:10:11 +02:00
Joachim Wiberg 7e1d7bcb06 test: a few more helper functions
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-22 22:10:11 +02:00
Joachim Wiberg a453eca4be Minor, rename local variable for consistency
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-22 22:10:11 +02:00
Joachim Wiberg 4e70aff619 Refactor: add cfkey_match() with new struct cfkey for file options
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-22 22:10:11 +02:00
Joachim Wiberg 619422b7ed Minor, whitespace fixup
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-22 22:10:11 +02:00
Joachim Wiberg 508ed72bcf Merge branch 'meta-ed-master'
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-14 11:59:45 +02:00
Joachim Wiberg 5b48dac64e test: new test to verify facility sorting to custom log file
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-04-08 18:56:30 +02:00
Joachim Wiberg 7825c453c4 Move Gentoo Tip earlier, quicker to find
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-30 21:30:49 +02:00
Joachim Wiberg 13cc1ad5ce Add link to the nice wiki article on the Gentoo wiki
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-30 19:07:45 +02:00
Joachim Wiberg 4fd55cd1ac syslog.conf: disable debug messages by default from /var/log/syslog
Many projects use sysklogd with the shipped syslog.conf as their own
default /etc/syslog.conf.  This is fine of course, but for many small
embedded systems getting all debug messages in the log by default is not
desirable.

This change drops debug messages from /var/log/syslog by default and
recommends admins to use /var/log/debug, or drop the debug filter.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-30 18:56:41 +02:00
Joachim Wiberg 6798fe76d5 Document reason for stat() in opensys()
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-14 06:59:51 +01:00
Joachim Wiberg 889dd1aed9 Merge pull request #47 from sdaoden/keep_mode
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-14 05:55:52 +01:00
Joachim Wiberg 0b3d379001 Merge pull request #46 from sdaoden/rotate
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-14 05:53:25 +01:00
Joachim Wiberg 23a6d81ea2 Merge pull request #45 from sdaoden/notify
Notify handle

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-14 05:45:17 +01:00
Joachim Wiberg 6022d3c7d0 Fix #49: add support for -8 command line option to allow 8-bit data
This patch allows the user to disable the 8-bit data check in the log
message validator.  If you have experienced problems with logging any
unicode (utf-8) messages after v1.6, this option is for you.

The correct way to handle this is to add proper parser support for the
Unicode BOM, defined in RFC5424[1], as NetBSD syslogd does[2], search
for IS_BOM().

[1]: https://datatracker.ietf.org/doc/html/rfc5424#appendix-A.8
[2]: http://cvsweb.netbsd.org/bsdweb.cgi/src/usr.sbin/syslogd/syslogd.c?rev=1.138

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-07 20:57:00 +01:00
Joachim Wiberg eb6e85e851 test: minor test cleanup and comments
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-06 01:10:32 +01:00
Joachim Wiberg 13b1fd0aa0 test: minor, shellcheck fixes
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-06 01:10:32 +01:00
Joachim Wiberg 0a99c7f386 test: minor aesthetic, slightly improve test logging
Conforming tests should use SKIP/FAIL/OK, so let existing tests follow
that better.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-06 01:02:03 +01:00
Joachim Wiberg f29f31340c test: refactor and generalize setup(), adding a setup2()
This patch refactors the way the primary and secondary syslogd is
started by the test framework.  The generalizations not only make the
code more readable, it hopefully also makes it easier to add new tests
in the future.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-06 00:56:03 +01:00
Joachim Wiberg 7707715c78 man: update '-b' option description to match '-a' and usage text
The usage text (syslogd -?) and the syslogd.8 man page was not in sync
wrt. the -b option.  This patch updates it to match the layout of -a,
the -a option is also slightly updated.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-06 00:49:25 +01:00
Joachim Wiberg aceb4cddcf Add missing -H option to usage text, issue #41
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-05 18:37:49 +01:00
Joachim Wiberg 99028414c3 test: run all syslogd with kernel logging disabled
Since we currently cannot test kernel logging, and we don't want to risk
any log messages from the kernel to suddenly pop up and disturb tests,
this patch explicitly disables it.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-05 16:33:52 +01:00
Joachim Wiberg e4330515e8 Disable KernLog in container
No need to save seqno when we've detected being in container and have
disabled kernel logging.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-05 15:31:46 +01:00
Joachim Wiberg 40622ef6c7 Fix build error introduced when fixing issue #48
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-05 15:31:46 +01:00
Joachim Wiberg 05e2a31662 Bump version for v2.4.0 development cycle
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-05 15:31:46 +01:00
Joachim Wiberg c534556790 Auto-detect if we're running in a container and disable klogd
This patch adds a very rudimentary container check.  When one, of a
select few containers, are detected, sysklogd disables the kernel
logging -- since there's no point in logging kernel messages other
than from the host system.

Issue #48

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-02-14 00:28:28 +01:00
Joachim Wiberg 29e932008d Fix #48: add option ('-K') to disable kernel logging
This patch adds support for disabling kernel logging, opensys().  This
is in addition to the character device validation check, and primarily
for use in container use-cases -- where logging kernel is not needed.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-02-13 23:40:06 +01:00
Joachim Wiberg 49b99584a4 Verify the kernel log fifo is a proper character device
Issue #48 describes a problem with 100% CPU load in a container
use-case.  Turns out one of the issues was that /dev/kmsg was
not a proper character device.  This patch adds a very basic
check to ensure /dev/kmsg is usable.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-02-13 23:03:30 +01:00
Joachim Wiberg e61e5abb88 Follow-up to 9856e07, rename '-K' option to '-t'
We need the '-K' option to disable kernel logging, so this option needs
to be renamed, unfortunately.  Fortunately it's not been released yet.

Issue #42

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-02-13 22:53:02 +01:00
Joachim Wiberg f38fd01871 Merge pull request #44 from loebl/docs/small-typo-fixes
Docs/small typo fixes
2021-12-21 17:32:55 +01:00
Joachim Wiberg 03c2c9c68d Update changelogs for v2.3.0 (final) release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-27 21:20:21 +01:00
Joachim Wiberg f4f2ad365e Redo DNS lookup on failure to send to remote server
When entering the forwarding suspend timer, free any previous address
info and do a new DNS lookup when the timer elapses.  The failure to
send may be because we're using a stale IP address.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-27 20:21:45 +01:00
Joachim Wiberg f516ff6023 Fix #36: retry DNS lookup of remote syslog servers with res_init()
This patch replaces the INET_SUSPEND_TIME for DNS lookup with a 5 sec
back-off to prevent DNS lookup on each message.

Also, reorder WARN() and NOTE() so they are called *after* setting the
f_type, otherwise we unleash endless recursive loops.

To avoid filling up the log with "Failed resolving ..." messages every
time we retry, we set a flag to remember we've already logged warning.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-27 20:18:21 +01:00
Joachim Wiberg 0a0380cbdd Minor, spellcheck comments
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-27 19:16:41 +01:00
Joachim Wiberg 9856e07e40 Fix #42: add option to always trust kernel timestamp
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-26 06:50:31 +01:00
Joachim Wiberg e69b0fe812 Fix #43: avoid assert() on and around 19 January 2038 03:14:07 UTC
When time_t wraps around on 32-bit UNIX systems we shouldn't assert (and
cause syslogd to be continously restarted) but instead try to handle the
wraparound more gracefully.

This change, initially proposed by Raul Porancea, checks for wraparound
and allows syslogd to continue on error.  Logging with invalid date is
better than no logs at all.  Thanks Raul for tracking this one down!

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-26 06:21:00 +01:00
Joachim Wiberg cea845aaf4 libsyslog: handle EOVERFLOW from gettimeofday()
Turns out that gettimeofday() can return EOVERFLOW on systems with
32-bit time_t.  This occurs when the UNIX Epoch wraps around, the
exact time is 03:14:07 UTC on 19 January 2038.

EOVERFLOW is not documented in gettimeofday(2), but instead of messing
up the entire syslog message -- causing syslogd to drop it -- we can
handle the overflow by falling back to time(NULL) (returning seconds
since start of Epoch) and rely on syslogd to, in turn, handle the
wraparound gracefully.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-26 06:17:59 +01:00
Joachim Wiberg 30a5c6628d Avoid NULL pointers to internal logit() function
The logit() function winds up calling vfprintf(), 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-26 06:02:49 +01:00
Joachim Wiberg ac9749a240 Minor, slight improvement in debug output
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-24 09:03:07 +01:00
Joachim Wiberg d297a23e5a test: remote: start a receiver syslogd to manually verify rfc3164
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-24 09:01:16 +01:00
Joachim Wiberg 9f6fbb3301 After initial read of /dev/kmsg, ignore kernel timestamp
The spec[1] says the /dev/kmsg timestamp is a monotonic clock and in
microseconds.  After a while you realize it's also relative to the boot
of the system, that fact was probably too obvious to be put in the spec.
However, what's *not* in the spec, and what takes a while to realize, is
that this monotonic time is *not* adjusted for suspend/resume cycles ...

On a frequently used laptop this can manifest itself as follows.  The
kernel is stuck on Nov 15, and for the life of me I cannot find any to
adjust for this offset:

    $ dmesg -T |tail -1; date
    [Mon Nov 15 01:42:08 2021] wlan0: Limiting TX power to 23 (23 - 0) dBm as advertised by 18:e8:29:55:b0:62
    Tue 23 Nov 2021 05:20:53 PM CET

Hence this patch.  After initial "emptying" of /dev/kmsg when syslogd
starts up, we raise a flag (denoting done with backlog), and after this
point we ignore the kernel's idea of time and replace it with the actual
time we have now, the same that userspace messages are logged with.

Sure, there will be occasions where there's a LOT of kernel messages to
read and we won't be able to keep track.  Yet, this patch is better than
the current state (where we log Nov 15).

[1]: https://www.kernel.org/doc/Documentation/ABI/testing/dev-kmsg

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-23 17:16:17 +01:00
Joachim Wiberg c7e30c6bd0 Follow-up to eb454d7: use time(NULL) instead of weird calculus
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-23 17:14:31 +01:00