This was still available, but had no effect (for ~10 years or so). The
plumbing is now removed. If someone tries to use the option, an
error message is generated.
closes https://github.com/rsyslog/rsyslog/issues/2280
The way the default was set could lead to a race if e.g. two internal
messages were emitted at startup when the property was not yet set. This
has been seen to happen in practice. It had no bad effect except a very
small stationary memory leak, but made using thread analyzers unreliable
(as it was rightfully detected as a problem).
closes https://github.com/rsyslog/rsyslog/issues/2012
it just permitted 200 chars, with almost all systems permitting for
more. I tried to find a more portable way to find out the actual max,
but this turned out horrible. The next solution would have been to use
dynamic alloc, but that often is overkill. So I now settle to just
increasing the value to 4KiB. This is the Linux limit, and it is by
far the highest I could find. This should be good to go for quite
some while but should not put too much stressure on the stack alloc.
closes https://github.com/rsyslog/rsyslog/issues/2228
I consider the C99 semantics to be pretty broken. Rather than
duplicating code for the inline variant and the non-inline one,
I replace the functions in question by macros. We do not loose
much in terms of type-safety.
see also https://github.com/rsyslog/rsyslog/pull/2246
macro used unsigned, inline function int. This could lead to an unsigned
overflow if macro version was used. That could potentially lead to malfunction
on some platforms (not seen nor expected in practice, though).
Detected by clang UBSAN.
The --enable-rtinst configure switch and associated instrumentation
code dates back to the time pre-(valgrind, address sanitizer, ...).
It has not been actively used by rsyslog developers for years and is
inferior to the new debugging tools.
With this commit, we remove the --enable-rtinst option and do some
mild refactoring of the code itself. As it turned out, fully removing
the debug code requires a bit more of time, and we push this as a
follow-on activity. It's not as urgent as getting us to build
properly under all configure switches.
closes https://github.com/rsyslog/rsyslog/issues/2048
This function returns a boolean indicating if the previous action is
suspended (0 - no, 1 - yes). This is useful if arbitrary processing
(other than calling actions) should be made depending on that state.
A prime example for this is probably calling a ruleset.
closes https://github.com/rsyslog/rsyslog/issues/1939
This permits script functions that could fail to report errors back, so
that the user can handle them if desired. We use an errno-style of
interface. That means script_error() needs to be called after functions
that supports it. It will return either 0 (all OK) or something else
(an error condition).
The commit also modifies the parse_time() function to use the new
interface. First of all, this is useful for users, and secondly we
needed a capability to craft a testbench test.
closes https://github.com/rsyslog/rsyslog/issues/1978
The PostgreSQL output module was woefully out-of-date the following
list is changes made to update the module to current Rsyslog standards.
- allow for v6 configuration syntax
- configurable ports
- support transactional interface
- push db connection into workers (libpq is threadsafe)
- enable module testing on travis
- ensure configuration syntax backwards compatibility
- formatting around postgres core templating
- use new test conventions
- add new configuration syntax test
- add valgrind tests for new and old syntax
- add threading tests
- add action queue long running tests
- add action queue valgrind test
Under an out-of-memory condition when memory alloc fails a NULL
pointer was accessed. Note that this only happens if the system (process)
is totally out of memory.
imfile: Initial implementation of solaris FEN API (without wildcards)
FEN API is used to implement simular event based file
monitoring like with inotify.
This commit provides partial functionality. It supports event-driven
processing of files but does not yet provide wildcard functionality.
Wildscards will be provided by a later commit.
This can be committed as-is because the previous code did also
not provide wildcard support, so this is an improvement for
Solaris in any case.
see also https://github.com/rsyslog/rsyslog/issues/1954