- added the ability to specify an error log function for the
runtime
- removed dependency of core runtime on dirty.h
Note that it is "better" modularity, not perfect. There is still
work to do, but I think we can for the time being proceed with
other things.
Added $PrivDropToGroup, $PrivDropToUser, $PrivDropToGroupID,
$PrivDropToUserID config directives to enable dropping privileges.
This is an effort to provide a security enhancement. For the limits of this
approach, see http://wiki.rsyslog.com/index.php/Security
... which permits to drop root privileges. This is not a completely
secure way of dropping permissions, e.g. the group permissions need
to be dropped, too. Also, there are several vulnerability Windows (see
code comments). Finally, at least the imklog module on linux does
not work when privileges are dropped. This code may still be a
valuable addition, and so I have created an experimental branch so
that people can check it out.
This enables us to use more efficient calling conventions and
also helps us keep the on-disk structure of a msg object more
consistent in future releases.
Message parsing is now done as part of main message queue worker
processing (was part of the input thread) This should also improve
performance, as potentially more work is done in parallel.
This enhances performance and, as some have pointed out, is
probably also more consistent with what users expect how
the various output-timestamp related function should work. This
commit needs some more testing.
...which enables to work with
less acurate timestamps in favor of performance. This enables querying
of the time only every n-th time if imudp is running in the tight
receive loop (aka receiving messsages at a high rate)