The strlcat() and strlcpy() functions are only intended to be used
by syslog.c internally (and syslogd), when building libsyslog.
A user linking with libsyslog may have another library that provides
strlcat() or strlcpy() replacements. We must therefore mark ours as
weak functions so they can be overridden.
This patch also add a convenience library for libsyslog, to control
the build deps. for libsyslog. This is where external dependencies
should be addded (explicitly) when syslog.c is updated from NetBSD.
If you add new deps you likely want to mark them too as weak refs.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
- Update last paragraph, with FSF address
- Drop gratuitous "this file is part of the sysklogd package"
- Fix indentation
- Update copyright years for my own contributions
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
- Import pidfile() v1.11 from OpenBSD and libite (-lite) project
- Import utimensat() replacement, for systems that don't have it
- Simplify syslogd and klogd program start and PID file creation
- Rip out -i and -I from klogd, uses old PID file functions, and
they're only kill(1) wrappers anyway
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
- Massive refactor of the .conf file parsing
- Add queue.h v1.43 from OpenBSD, has _SAFE versions unlike GLIBC queue.h
- Use queue.h list macros instead of homegrown linked list
- Adopt NetBSD reconf style; on failure to reload keep old config
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This special build option enabled reading syslog messages from stdin on
syslogd. It also disabled all other standard features of syslogd, which
made it a bit too far from the real thing.
A better approac is to start syslogd with -p /tmp/foo and let a test
application, e.g. logger -u /tmp/foo, connect using the standard UNIX
domain socket API.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This patch merges the upstream NetBSD syslog.[ch], which adds syslogp()
family of APIs to support RFC5424. This API will first go into use in
the logger tool, klogd, and syslog_tst, then it will also be exposed
as libsyslog and syslog/syslog.h for end-users.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
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>
- 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>
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>
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>
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>
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>
This enables the same functionality as the old build system, only
slightly more flexible since you don't need to edit the Makefile.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
- Relocate all source files to src/ and manual pages to man/
- Replace static Makefile with GNU configure and build system
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>