this could cause loss of messages. The handling was correct if the
connection broke, but not if there was a problem with statement
execution. The most probable case for such a case would be invalid
sql inside the template, and this is now much easier to diagnose.
Conflicts:
ChangeLog
tcpsrv.c
tcpsrv.h
Note: we have a slight inconsistency, as interface version v4 was already
used for tcpsrv in this branch. We accept this inconsistency.
The testbench has now a generic driver that can run a whole class
of test suites just by providing a config file and test cases. This
does not cover all testing needs, but a lot.
We have now added one test for the new array-passing output plugin
interface.
This is more efficient for some outputs. They new can receive fields not only
as a single string but rather in an array where each string is seperated.
to make sure only the minimum number of file handles is left open
during a exec call. This is not a 100% solution, as there are also
some fopen() calls and, more importantly, file descriptors opened
by libraries. But it is better than nothing (and it was quick, at
least until we run into platform hell, what we will for sure ;)).
worked on ways to provide a better test suite:
- added -T rsyslogd command line option, enables to specify a directory
where to chroot() into on startup. This is NOT a security feature but
introduced to support testing. Thus, -T does not make sure chroot()
is used in a secure way. (may be removed later)
- added omstdout module for testing purposes. Spits out all messages to
stdout - no config option, no other features
- modified $ModLoad statement so that for modules whom's name starts with
a dot, no path is prepended (this enables relative-pathes and should
not break any valid current config)
so far, this is mostly some documentation, but I hope that during
the process of creating output modules out of it we will get good
questions and thus can extend the template. In any case, it should
be better than what we had so far...
Remove AC_CHECK_HEADERS([mysql/mysql.h],...) as this was causing pain
for users where the mysql headers are not installed in the system include
directory. It was superfluous anyways, as we check for mysql_config and
set the include path to the correct directory.
Update ommysql.c to use #include <mysql.h>, as mysql_config will set the
include path to /path/to/include/mysql/ so <mysql/mysql.h> would not
work.
Remove errmsg.h include as it is not used.
pkg-config uses uppercase for its _CFLAGS and _LIBS variable names.
So we follow suit and convert all _cflags and _libs variables to
uppercase for more consistency.
- security bugfix: $AllowedSender was not honored, all senders were
permitted instead (see http://www.rsyslog.com/Article322.phtml)
(backport from v3-stable, v3.20.9)
- minor bugfix: dual close() call on tcp session closure
...tried to send a message to it. This behaviour is operator-configurable.
If enabled, a message was emitted each time. That way an attacker could
effectively fill the disk via this facility. The message is now
emitted only once in a minute (this currently is a hard-coded limit,
if someone comes up with a good reason to make it configurable, we
will probably do that).
...this improves performance and consistency and also fixes
a bug where subsecond time properties generated by imfile, imklog and
internal messages could be slightly inconsistent.
- added message property "inputname", which contains the name of the
input (module) that generated it. Presence is depending on suport in
each input module (else it is blank).
- added system property "$myhostname", which contains the name of the
local host as it knows itself.