Commit Graph

784 Commits

Author SHA1 Message Date
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
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
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
7e1d7bcb06 test: a few more helper functions
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-22 22:10:11 +02:00
a453eca4be Minor, rename local variable for consistency
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-22 22:10:11 +02:00
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
619422b7ed Minor, whitespace fixup
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-22 22:10:11 +02:00
508ed72bcf Merge branch 'meta-ed-master'
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-14 11:59:45 +02:00
4f24bce339 Don't skip the <PRI> field in the call to wallmsg()
This is redundant and causes message truncation.  The <PRI> field is
skipped within wallmsg() itself.

Signed-off-by: Edward K. McGuire <metaed@gmail.com>
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-05-14 11:58:33 +02:00
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
7825c453c4 Move Gentoo Tip earlier, quicker to find
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-30 21:30:49 +02:00
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
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
6798fe76d5 Document reason for stat() in opensys()
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-14 06:59:51 +01:00
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
45554a54e6 syslogd.c: rotate_file(): do not loose file mode due to rotation 2022-03-14 05:55:27 +01:00
0b3d379001 Merge pull request #46 from sdaoden/rotate
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-14 05:53:25 +01:00
908f1e6821 test/rotate_all.sh: address Joachim Wiberg comments (pull/46) 2022-03-14 05:52:46 +01:00
0bc4c82bae Test for "Implement forced log file rotation upon SIGUSR2" 2022-03-14 05:52:46 +01:00
949e80f150 Implement forced log file rotation upon SIGUSR2 2022-03-14 05:52:46 +01:00
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
f7abd0d10a test/notify.sh: address Joachim Wiberg's comments (pull/45) 2022-03-12 17:22:18 +01:00
7038e51a0f "notify": address Joachim Wiberg's comments (pull/45) 2022-03-12 17:22:18 +01:00
bc103013cb Test for "Add "notify" keyword" 2022-03-12 15:29:33 +01:00
72f2faef6e Add "notify" keyword 2022-03-12 15:28:02 +01:00
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
eb6e85e851 test: minor test cleanup and comments
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-06 01:10:32 +01:00
13b1fd0aa0 test: minor, shellcheck fixes
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-03-06 01:10:32 +01:00
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
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
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
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
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
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
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
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
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
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
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
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
f38fd01871 Merge pull request #44 from loebl/docs/small-typo-fixes
Docs/small typo fixes
2021-12-21 17:32:55 +01:00
2c9c5263b6 Remove excess character 2021-12-21 16:34:16 +01:00
32f5a98efe Fix log rotation option reference 2021-12-21 16:32:20 +01:00
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
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
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
0a0380cbdd Minor, spellcheck comments
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-27 19:16:41 +01:00
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
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
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