Commit Graph

519 Commits

Author SHA1 Message Date
d83f781dc0 Add OpenBSD strlcat() and strlcpy() safe string manipulation APIs
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-25 14:29:15 +02:00
2d64227d7d Send all test logs to /tmp/syslog_tst.log, for now ...
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-24 10:51:04 +02:00
a8060d0ad1 Fix tsyslogd, which reads from stdin, exit on EOF
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-24 10:51:04 +02:00
56ff4eedbe Simplify variable declarations in main(), strip #ifdefs
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-24 10:51:04 +02:00
27027456b5 Simplify, remove gratuitous 'return;' at end of functions + cleanup
- Add empty lines for readability, after return before new statement and
  after variable declarations
- Remove explicit typecasting, NULL is NULL regardless of type
- Remove unnecessary braces and else

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-24 10:51:04 +02:00
773ee73214 Simplify, memset() with 0 rather than '\0'
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-24 10:51:04 +02:00
6c23333feb Add wrapper for GLIBC __syslog_chk(), used for fortification
When a user links with syslog.c, or the future libsyslog, they may still
use the standard GLIBC header files.  GLIBC redirects syslog() to the
__syslog_chk() definition early on, but a user may not notice when a
simple non-optimized (-O0 or none) program is compiled.

This currently does not affect musl libc.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-24 10:51:04 +02:00
097d9efdbe Replace default optimization flag with -fno-strict-aliasing
The -fomit-frame-pointer is part of the standard optimization flags in
-O1 and above, so no need to enable it explicitly.

For reference https://lkml.org/lkml/2003/2/26/158

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-24 10:51:04 +02:00
6fa899db38 Misc, initial cleanup of syslog testing framework
- Let syslog_tst.c use local syslog.c API, for wrapping
- Add -DTESTING to build of syslog_tst & C:o
- Enable CLOEXEC on each opened log file in syslog.c
- Simplify code for readability

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-24 10:51:04 +02:00
1ba3dc5b87 Simplify, remove #ifdefs for INET6, always defined
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-24 10:51:04 +02:00
33411f8a0c Drop define of _SVID_SOURCE, not needed anymore
For compatibility with GLIBC <2.19 we only need to define _BSD_SOURCE,
and for compatibility with GLIBC >=2.19 we must defined _DEFAULT_SOURCE.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-24 10:51:04 +02:00
be5ce0af30 Simplify, no need to reset signal disposition in handler
On modern systems, both *BSD and Linux using GLIBC/musl, the signal's
disposition is not reset to SIG_DFL on invocation of its handler.  On
Linux this is true because GLIBC/musl wraps signal() in sigaction()
with the same semantics as BSD.

A follow-up commit will refactor to use sigaction().

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-24 10:51:04 +02:00
3309fb2d50 Misc, cleanup remaining SYSV #ifdefs and simplify a bit
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-24 10:51:04 +02:00
5114907afe Refactor, use linked list of struct filed instead of realloc'd array
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-24 10:51:04 +02:00
a1e3efc3c4 Refactor differences in signal sent from UNIX/Linux kernel on hangup
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-23 12:48:23 +02:00
98f498595c Simplify, CONT_LINE is always defined, remove all #ifdefs
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-23 12:47:39 +02:00
f67ed6934a Simplify, remove #ifdefs for always defined paths
We always want to build with support for UNIX domain socket and remote
syslog (both receive and send).  We can safely state that all systems
we aim to target supports FHS.

Also, start clean up gratuitous use of SYSV #ifdefs.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-23 10:37:14 +02:00
b3727fcf0b Simplify copyright[] and sccsid[] legacy from BSD
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-23 10:35:47 +02:00
97c107262c Simplify, syslogd unconditionally includes fcntl.h already
No need to check for SYSV (?) to include fcntl.h since syslogd.c already
includes it unconditionally.  If this turns out to be an actual problem
we should probe for fcntl.h in configure and use #ifdef HAVE_FCNTL_H.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-23 10:33:20 +02:00
bf6bba3493 Let logger use local syslog API
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-22 16:42:35 +02:00
1004498697 Add support for building tsyslogd and syslog_tst again
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-22 16:42:28 +02:00
d0360f47ed logger: Replace -h with -?, -h is reserved in POSIX for remote host
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-21 11:25:04 +02:00
4382136d18 Fix signed vs unsigned comparison warning from GCC
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-21 11:15:36 +02:00
e65f815333 Remove unused variable
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-21 11:15:15 +02:00
1844fa4385 Increase default compiler warnings, exempt unused parameters
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-21 11:10:39 +02:00
3b9a856417 Update ChangeLog in preparation for v2.0
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-13 14:57:05 +02:00
4fc2c478ef Reshuffle .gitignore content a bit
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-13 14:49:32 +02:00
1a09654e79 Add logger tool from Finit project to complement sysklogd
This patch introduces a relicensed logit from the Finit[1] project.  It
has been rebranded as logger to complement the features implemented in
the sysklogd project.

Note, logger conflicts with the tool of the same name from util-linux.

[1]: https://github.com/troglobit/finit

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-13 14:48:37 +02:00
4fcebdb03c Add SPDX license identifiers to all source files, BSD-3 & GPL-2
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-13 12:07:38 +02:00
52a33f1cf4 Minor, strip leading double spaces in license header
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-13 12:03:35 +02:00
2c8f20f1ea Update FSF address in GPL license header for all GPL:ed files
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-13 11:54:34 +02:00
d434d90b53 Unify license header comment style
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-13 11:46:19 +02:00
290c11d0d9 Sync. BSD license change with FreeBSD upstream
From upstream FreeBSD Subversion r165903:

  "Per Regents of the University of Calfornia letter,
   remove advertising clause."

This patch also includes the renumbering of the clauses, making
this codebase truly 3-clause BSD licensed.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-13 11:35:42 +02:00
ac718fe969 Document new RFC5424 style formatting for sending to remote hosts
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-12 21:37:28 +02:00
34d764ed57 Bump version for v2.0 release cycle
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-12 18:52:04 +02:00
301081604a Add RFC5424 support for remote syslog servers
This patch adds support for sending in RFC5424[1] style format to remote
log servers.  Section 6.5[2] lists some examples, here's one:

    <30>1 2019-10-12T18:21:01.123456+02:00 troglobit finit 321 - - Starting service 'firewalld:1'

Note, sysklogd currently does not support MSGID and structured data, see
the RFC for more information on this.

[1] - https://tools.ietf.org/html/rfc5424
[2] - https://tools.ietf.org/html/rfc5424#section-6.5

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-12 18:49:41 +02:00
a2eb744f26 Ignore popular ctags/global files
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-12 11:35:09 +02:00
760ec4cc36 Fix too small destination buffer in snprintf() call, found by GCC 8
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-12 11:34:11 +02:00
d754f91a66 Update GPL to latest revision, FSF address change + minor fixups
This patch updates the sysklogd local copy of the GPL to the official
new/upstream GPL v2 license.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2019-10-12 10:42:24 +02:00
3a74817df2 Update ChangeLog and bump version for v1.6 release
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-09-25 17:32:25 +02:00
d69f6d3e87 Merge branch 'gzip-rotated-files' 2018-09-25 17:31:52 +02:00
ea24aa5378 Usability, size modifiers to log rotate: 100k:5, 1G:3, and 100M:5
This applies to both the command line '-b SIZE' option and the
optional per log file setting.  Modifiers supported are: k, M, G

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-09-25 17:27:24 +02:00
98f6f3ae3d Minor, spelling
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-09-25 10:16:17 +02:00
ab24b2efff Add configurable retry timeout for remote syslog servers
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-09-25 10:10:28 +02:00
141b3d5c7c Update man pages with info on new per-file log rotation settings
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-09-25 09:39:16 +02:00
179a137a1d Update ReadMe and ChangeLog for upcoming v1.6 release
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-09-24 20:11:29 +02:00
3039c285e3 Add missing getopt.h include
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-09-24 20:06:24 +02:00
234cd4e669 Add required feature flags for when building with -std=c11
These feature flags are required to build with modern GCC that default
to newser C standard.  However, we should never enforce a standard on
the user -- there are far too many old/embedded systems out there with
very old toolchains that just want bug fixes and minor features for an
otherwise stable system.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-09-24 20:06:24 +02:00
84437f88e3 Avoid for loop initial declarations
May need to build on/for systems with quite old GCC version.  Also,
fixes build on Travis-CI.  (Enabling C99 brings in a lot of other
warnings that we'll take care of at a later stage.)

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-09-24 17:28:26 +02:00
bc92e860ef Initial support for per log file rotate size:count as last arg.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2018-09-24 17:03:54 +02:00