Hello community,

here is the log from the commit of package rsyslog for openSUSE:Factory checked 
in at 2013-10-29 11:04:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rsyslog (Old)
 and      /work/SRC/openSUSE:Factory/.rsyslog.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rsyslog"

Changes:
--------
--- /work/SRC/openSUSE:Factory/rsyslog/rsyslog.changes  2013-09-13 
14:45:17.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rsyslog.new/rsyslog.changes     2013-10-29 
11:04:24.000000000 +0100
@@ -1,0 +2,27 @@
+Mon Oct 28 22:36:04 UTC 2013 - [email protected]
+
+- update to 7.4.5 [v7.5-stable]
+- mmanon: removed the check for specific "terminator characters" 
+- now requires libestr 0.1.8
+- omelasticsearch: add failed.httprequests stats counter
+- bugfix: invalid property filter was not properly disabled in ruleset
+- bugfix: segfault if re_extract() function was used and no match found
+- bugfix: potential misadressing on startup if property-filter was used
+- bugfix: omelasticsearch: correct failed.http stats counter
+- bugfix: omelasticsearch: did not correctly initialize stats counters
+- bugfix: omelasticsearch: failed.es counter was only maintained in bulk mode
+- bugfix: mmanon did not detect all IP addresses in rewrite mode
+- bugfix: mmanon sometimes used invalid replacement char in simple mode
+- bugfix: memory leak in mmnormalize
+- bugfix: array-based ==/!= comparisions lead to invalid results
+- bugfix: omprog blocked signals to executed programs
+- bugfix: doc: imuxsock legacy param $SystemLogSocketParseTrusted was
+  misspelled
+- bugfix: imfile "facility" input parameter improperly handled
+- bugfix: small memory leak in imfile when $ResetConfigVariables was used
+- bugfix: segfault on startup if TLS was used but no CA cert set
+- bugfix: segfault on startup if TCP TLS was used but no cert or key set
+- bugfix: some more build problems with newer json-c versions
+- bugfix: build system: libgcrypt.h needed even if libgrcypt was disabled
+
+-------------------------------------------------------------------

Old:
----
  rsyslog-7.4.4.tar.gz

New:
----
  rsyslog-7.4.5.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rsyslog.spec ++++++
--- /var/tmp/diff_new_pack.tz8MtE/_old  2013-10-29 11:04:25.000000000 +0100
+++ /var/tmp/diff_new_pack.tz8MtE/_new  2013-10-29 11:04:25.000000000 +0100
@@ -20,7 +20,7 @@
 Summary:        The enhanced syslogd for Linux and Unix
 License:        (GPL-3.0+ and Apache-2.0)
 Group:          System/Daemons
-Version:        7.4.4
+Version:        7.4.5
 Release:        0
 %if 0%{?suse_version} >= 1210
 %bcond_without  systemd
@@ -152,10 +152,10 @@
 # but json check is unconditional
 %if 0%{?suse_version} >= 1210
 BuildRequires:  pkgconfig(json) >= 0.9
-BuildRequires:  pkgconfig(libestr) >= 0.1.5
+BuildRequires:  pkgconfig(libestr) >= 0.1.8
 %else
 BuildRequires:  libee-devel
-BuildRequires:  libestr-devel
+BuildRequires:  libestr-devel >= 0.1.8
 BuildRequires:  libjson-devel
 %endif
 %if 0%{?suse_version} >= 1220

++++++ rsyslog-7.4.4.tar.gz -> rsyslog-7.4.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/ChangeLog new/rsyslog-7.4.5/ChangeLog
--- old/rsyslog-7.4.4/ChangeLog 2013-09-03 12:32:05.000000000 +0200
+++ new/rsyslog-7.4.5/ChangeLog 2013-10-16 12:43:18.000000000 +0200
@@ -1,4 +1,68 @@
 ---------------------------------------------------------------------------
+Version 7.4.5  [v7.4-stable] 2013-10-22
+- mmanon: removed the check for specific "terminator characters" after 
+  last octet. As it turned out, this didn't work in practice as there
+  was an enormous set of potential terminator chars -- so removing
+  them was the best thing to do. Note that this may change behaviour of
+  existing installations. Yet, we still consider this an important
+  bugfix, that should be applied to the stable branch.
+  closes: http://bugzilla.adiscon.com/show_bug.cgi?id=477
+  Thanks to Muri Cicanor for initiating the discussion
+- now requires libestr 0.1.8 as early versions had a nasty bug in
+  string comparisons
+- omelasticsearch: add failed.httprequests stats counter
+- bugfix: invalid property filter was not properly disabled in ruleset
+  Note that this bugfix introduces a very slight memory leak, which is
+  cosmetic, as it just holds data until termination that is no longer
+  needed. It is just the part of the config that was invalid. We will
+  "fix" this "issue" in the devel version first, as the fix is a bit
+  too intrusive to do without hard need in the stable version.
+- bugfix: segfault if re_extract() function was used and no match found
+- bugfix: potential misadressing on startup if property-filter was used
+  This could happen if the property name was longer than 127 chars, a case
+  that would not happen in practice.
+- bugfix: omelasticsearch: correct failed.http stats counter
+- bugfix: omelasticsearch: did not correctly initialize stats counters
+- bugfix: omelasticsearch: failed.es counter was only maintained in bulk mode
+  This usually did not lead to any problems, because they are in static
+  memory, which is initialized to zero by the OS when the plugin is
+  loaded. But it may cause problems especially on systems that do not
+  support atomic instructions - in this case the associated mutexes also
+  did not get properly initialized.
+- bugfix: mmanon did not detect all IP addresses in rewrite mode
+  The problem occured if two IPs were close to each other and the first one
+  was shrunk.
+  closes: http://bugzilla.adiscon.com/show_bug.cgi?id=485
+  Thanks to micah-at-riseup.net for reporting this bug
+- bugfix: mmanon sometimes used invalid replacement char in simple mode
+  depending on configuration sequence, the replacement character was set
+  to 's' instead of the correct value. Most importantly, it was set to
+  's' if simple mode was selected and no replacement char set.
+  closes: http://bugzilla.adiscon.com/show_bug.cgi?id=484
+  Thanks to micah-at-riseup.net for reporting this bug
+- bugfix: memory leak in mmnormalize
+- bugfix: array-based ==/!= comparisions lead to invalid results
+  This was a regression introduced in 7.3.5 bei the PRI optimizer
+- bugfix: omprog blocked signals to executed programs
+  The made it impossible to send signals to programs executed via
+  omprog.
+  Thanks to Risto Vaarandi for the analysis and a patch.
+- bugfix: doc: imuxsock legacy param $SystemLogSocketParseTrusted was
+  misspelled
+  Thanks to David Lang for alerting us
+- bugfix: imfile "facility" input parameter improperly handled
+  caused facility not to be set, and severity to be overwritten with
+  the facility value.
+  Thanks to forum user dmunny for reporting this bug.
+- bugfix: small memory leak in imfile when $ResetConfigVariables was used
+  Thanks to Grégory Nuyttens for reporting this bug and providig a fix
+- bugfix: segfault on startup if TLS was used but no CA cert set
+- bugfix: segfault on startup if TCP TLS was used but no cert or key set
+- bugfix: some more build problems with newer json-c versions
+  Thanks to Michael Biebl for mentioning the problem.
+- bugfix: build system: libgcrypt.h needed even if libgrcypt was disabled
+  Thanks to Jonny Törnbom for reporting this problem
+---------------------------------------------------------------------------
 Version 7.4.4  [v7.4-stable] 2013-09-03
 - better error messages in GuardTime signature provider
   Thanks to Ahto Truu for providing the patch.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/configure new/rsyslog-7.4.5/configure
--- old/rsyslog-7.4.4/configure 2013-09-03 12:32:49.000000000 +0200
+++ new/rsyslog-7.4.5/configure 2013-10-16 12:46:04.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for rsyslog 7.4.4.
+# Generated by GNU Autoconf 2.68 for rsyslog 7.4.5.
 #
 # Report bugs to <[email protected]>.
 #
@@ -570,8 +570,8 @@
 # Identity of this package.
 PACKAGE_NAME='rsyslog'
 PACKAGE_TARNAME='rsyslog'
-PACKAGE_VERSION='7.4.4'
-PACKAGE_STRING='rsyslog 7.4.4'
+PACKAGE_VERSION='7.4.5'
+PACKAGE_STRING='rsyslog 7.4.5'
 PACKAGE_BUGREPORT='[email protected]'
 PACKAGE_URL=''
 
@@ -1594,7 +1594,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures rsyslog 7.4.4 to adapt to many kinds of systems.
+\`configure' configures rsyslog 7.4.5 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1664,7 +1664,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of rsyslog 7.4.4:";;
+     short | recursive ) echo "Configuration of rsyslog 7.4.5:";;
    esac
   cat <<\_ACEOF
 
@@ -1909,7 +1909,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-rsyslog configure 7.4.4
+rsyslog configure 7.4.5
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2488,7 +2488,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by rsyslog $as_me 7.4.4, which was
+It was created by rsyslog $as_me 7.4.5, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -3303,7 +3303,7 @@
 
 # Define the identity of the package.
  PACKAGE='rsyslog'
- VERSION='7.4.4'
+ VERSION='7.4.5'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -13211,12 +13211,12 @@
     pkg_cv_LIBESTR_CFLAGS="$LIBESTR_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists 
--print-errors \"libestr >= 0.1.5\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libestr >= 0.1.5") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists 
--print-errors \"libestr >= 0.1.8\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libestr >= 0.1.8") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_LIBESTR_CFLAGS=`$PKG_CONFIG --cflags "libestr >= 0.1.5" 2>/dev/null`
+  pkg_cv_LIBESTR_CFLAGS=`$PKG_CONFIG --cflags "libestr >= 0.1.8" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -13228,12 +13228,12 @@
     pkg_cv_LIBESTR_LIBS="$LIBESTR_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists 
--print-errors \"libestr >= 0.1.5\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libestr >= 0.1.5") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists 
--print-errors \"libestr >= 0.1.8\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libestr >= 0.1.8") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_LIBESTR_LIBS=`$PKG_CONFIG --libs "libestr >= 0.1.5" 2>/dev/null`
+  pkg_cv_LIBESTR_LIBS=`$PKG_CONFIG --libs "libestr >= 0.1.8" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -13254,14 +13254,14 @@
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               LIBESTR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors 
--cflags --libs "libestr >= 0.1.5" 2>&1`
+               LIBESTR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors 
--cflags --libs "libestr >= 0.1.8" 2>&1`
         else
-               LIBESTR_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs 
"libestr >= 0.1.5" 2>&1`
+               LIBESTR_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs 
"libestr >= 0.1.8" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$LIBESTR_PKG_ERRORS" >&5
 
-       as_fn_error $? "Package requirements (libestr >= 0.1.5) were not met:
+       as_fn_error $? "Package requirements (libestr >= 0.1.8) were not met:
 
 $LIBESTR_PKG_ERRORS
 
@@ -20766,7 +20766,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by rsyslog $as_me 7.4.4, which was
+This file was extended by rsyslog $as_me 7.4.5, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -20832,7 +20832,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-rsyslog config.status 7.4.4
+rsyslog config.status 7.4.5
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/configure.ac 
new/rsyslog-7.4.5/configure.ac
--- old/rsyslog-7.4.4/configure.ac      2013-09-03 12:31:58.000000000 +0200
+++ new/rsyslog-7.4.5/configure.ac      2013-10-16 12:44:10.000000000 +0200
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.61)
-AC_INIT([rsyslog],[7.4.4],[[email protected]])
+AC_INIT([rsyslog],[7.4.5],[[email protected]])
 AM_INIT_AUTOMAKE
 
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
@@ -32,7 +32,7 @@
 PKG_PROG_PKG_CONFIG
 
 # modules we require
-PKG_CHECK_MODULES(LIBESTR, libestr >= 0.1.5)
+PKG_CHECK_MODULES(LIBESTR, libestr >= 0.1.8)
 PKG_CHECK_MODULES([JSON_C], [json],, [
        PKG_CHECK_MODULES([JSON_C], [json-c])
 ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/doc/debug.html 
new/rsyslog-7.4.5/doc/debug.html
--- old/rsyslog-7.4.4/doc/debug.html    2013-09-03 12:31:42.000000000 +0200
+++ new/rsyslog-7.4.5/doc/debug.html    2013-10-16 12:41:49.000000000 +0200
@@ -160,7 +160,11 @@
 SIGUSR1 and SIGUSR2 are completely ignored.
 <p>When running in any of the debug modes (including on demand mode), an 
interactive 
 instance of rsyslogd can be aborted by pressing ctl-c.
-<p>
+<p><b>See Also</b>
+<ul>
+<li><a href="http://www.rsyslog.com/how-to-use-debug-on-demand/";>How to use 
debug on demand</a></li>
+</ul>
+</p>
 <p>[<a href="manual.html">manual index</a>] [<a 
href="http://www.rsyslog.com/";>rsyslog site</a>]</p>
 <p><font size="2">This documentation is part of the
 <a href="http://www.rsyslog.com/";>rsyslog</a> project.<br>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/doc/impstats.html 
new/rsyslog-7.4.5/doc/impstats.html
--- old/rsyslog-7.4.4/doc/impstats.html 2013-09-03 12:31:42.000000000 +0200
+++ new/rsyslog-7.4.5/doc/impstats.html 2013-10-16 12:41:49.000000000 +0200
@@ -81,6 +81,12 @@
 set to off, legacy format is used (which is compatible with pre v6-rsyslog).
 </li>
 </ul>
+<p><b>See Also</b>
+<ul>
+<li><a href="http://www.rsyslog.com/rsyslog-statistic-counter/";>rsyslog 
statistics counter</a></li>
+<li><a href="http://www.rsyslog.com/impstats-delayed-or-lost/";>impstats 
delayed or lost</a> - cause and cure
+</ul>
+</p>
 <b>Caveats/Known Bugs:</b>
 <ul>
 <li>This module MUST be loaded right at the top of rsyslog.conf, otherwise 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/doc/imuxsock.html 
new/rsyslog-7.4.5/doc/imuxsock.html
--- old/rsyslog-7.4.4/doc/imuxsock.html 2013-09-03 12:31:42.000000000 +0200
+++ new/rsyslog-7.4.5/doc/imuxsock.html 2013-10-16 12:41:49.000000000 +0200
@@ -180,7 +180,13 @@
 queued by the OS if rsyslog is not running.
 </li>
 </ul>
-
+<p><b>See Also</b>
+<ul>
+<li><a href="http://www.rsyslog.com/what-are-trusted-properties/";>What are 
"trusted properties"?</a></li>
+<li><a 
href="http://www.rsyslog.com/why-does-imuxsock-not-work-on-solaris/";>Why does 
imuxsock not work
+on Solaris?</a></li>
+</ul>
+</p>
 <b>Caveats/Known Bugs:</b><br>
 <ul>
 <li>There is a compile-time limit of 50 concurrent sockets. If you need more, 
you need to
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/doc/manual.html 
new/rsyslog-7.4.5/doc/manual.html
--- old/rsyslog-7.4.4/doc/manual.html   2013-09-03 12:32:13.000000000 +0200
+++ new/rsyslog-7.4.5/doc/manual.html   2013-10-16 12:44:29.000000000 +0200
@@ -19,7 +19,7 @@
 <p><b>Please visit the <a href="http://www.rsyslog.com/sponsors";>rsyslog 
sponsor's page</a>
 to honor the project sponsors or become one yourself!</b> We are very grateful 
for any help towards the
 project goals.</p>
-<p><b>This documentation is for version 7.4.4 (v7.4-stable branch) of 
rsyslog.</b>
+<p><b>This documentation is for version 7.4.5 (v7.4-stable branch) of 
rsyslog.</b>
 Visit the <i><a href="http://www.rsyslog.com/status";>rsyslog status 
page</a></i></b>
 to obtain current version information and project status.
 </p><p><b>If you like rsyslog, you might
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/doc/mmanon.html 
new/rsyslog-7.4.5/doc/mmanon.html
--- old/rsyslog-7.4.4/doc/mmanon.html   2013-08-30 18:30:41.000000000 +0200
+++ new/rsyslog-7.4.5/doc/mmanon.html   2013-10-16 12:41:49.000000000 +0200
@@ -18,14 +18,7 @@
 they exist.
 <p><i>How are IP-Addresses defined?</i>
 <p>We assume that an IP address consists of four octets in dotted notation,
-where each of the octets has a value between 0 and 255, inclusively. After
-the last octet, there must be either a space or a colon. So, for example,
-"1.2.3.4 Test" and "1.2.3.4:514 Test" are detected as containing valid IP 
-addresses, whereas this is not the case for "1.2.300.4 Test" or
-"1.2.3.4-Test". The message text may contain multiple addresses. If so,
-each of them is anonimized (according to the same rules).
-<b>Important:</b> We may change the set of acceptable characters after
-the last octet in the future, if there are good reasons to do so.
+where each of the octets has a value between 0 and 255, inclusively.
 <p>&nbsp;</p>
 
 <p><b>Module Configuration Parameters</b>:</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/doc/mmnormalize.html 
new/rsyslog-7.4.5/doc/mmnormalize.html
--- old/rsyslog-7.4.4/doc/mmnormalize.html      2013-09-03 12:31:42.000000000 
+0200
+++ new/rsyslog-7.4.5/doc/mmnormalize.html      2013-10-16 12:41:49.000000000 
+0200
@@ -46,6 +46,17 @@
 <li>$mmnormalizeUseRawMsg &lt;on/off&gt; - equivalent to the "useRawMsg" 
 parameter.
 </ul>
+<p><b>See Also</b>
+<ul>
+<li><a 
href="http://www.rsyslog.com/normalizer-first-steps-for-mmnormalize/";>First 
steps for mmnormalize</a></li>
+<li><a 
href="http://www.rsyslog.com/log-normalization-and-special-characters/";>Log 
normalization and
+special characters</a></li>
+<li><a 
href="http://www.rsyslog.com/log-normalization-and-the-leading-space/";>Log 
normalization and
+the leading space</a></li>
+<li><a 
href="http://www.rsyslog.com/using-rsyslog-mmnormalize-module-effectively-with-adiscon-loganalyzer/";>Using
+mmnormalize effectively with Adiscon LogAnalyzer</a></li>
+</ul>
+</p>
 <b>Caveats/Known Bugs:</b>
 <p>None known at this time.
 </ul>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/doc/omfile.html 
new/rsyslog-7.4.5/doc/omfile.html
--- old/rsyslog-7.4.4/doc/omfile.html   2013-08-30 18:30:41.000000000 +0200
+++ new/rsyslog-7.4.5/doc/omfile.html   2013-10-16 12:41:49.000000000 +0200
@@ -97,6 +97,11 @@
        sets a new default template for file actions.<br></li><br>
        
 </ul>
+<p><b>See Also</b>
+<ul>
+<li><a 
href="http://www.rsyslog.com/how-to-sign-log-messages-through-signature-provider-guardtime/";>Sign
 log messages through signature provider Guardtime</a></li>
+</ul>
+</p>
 <p><b>Caveats/Known Bugs:</b></p>
 <ul>
 <li>One needs to be careful with log rotation if signatures and/or encryption
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/doc/omfwd.html 
new/rsyslog-7.4.5/doc/omfwd.html
--- old/rsyslog-7.4.4/doc/omfwd.html    2013-09-03 12:31:42.000000000 +0200
+++ new/rsyslog-7.4.5/doc/omfwd.html    2013-10-16 12:41:49.000000000 +0200
@@ -56,6 +56,11 @@
        Permits to resend the last message when a connection is reconnected. 
This setting affects TCP-based syslog, only. It is most useful for traditional, 
plain TCP syslog. Using this protocol, it is not always possible to know which 
messages were successfully transmitted to the receiver when a connection 
breaks. In many cases, the last message sent is lost. By switching this setting 
to "yes", rsyslog will always retransmit the last message when a connection is 
reestablished. This reduces potential message loss, but comes at the price that 
some messages may be duplicated (what usually is more acceptable). <br></li><br>
        
 </ul>
+<p><b>See Also</b>
+<ul>
+<li><a href="http://www.rsyslog.com/encrypted-disk-queues/";>Encrypted Disk 
Queues</a></li>
+</ul>
+</p>
 <p><b>Caveats/Known Bugs:</b></p><ul><li>None.</li></ul>
 <p><b>Sample:</b></p>
 <p>The following command sends all syslog messages to a remote server via TCP 
port 10514.</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/doc/omruleset.html 
new/rsyslog-7.4.5/doc/omruleset.html
--- old/rsyslog-7.4.4/doc/omruleset.html        2012-04-04 08:29:55.000000000 
+0200
+++ new/rsyslog-7.4.5/doc/omruleset.html        2013-10-16 12:41:49.000000000 
+0200
@@ -122,6 +122,11 @@
 # of course, we can have "regular" actions alongside :omrulset: actions
 *.* /path/to/general-message-file.log
 </textarea>
+<p><b>See Also</b>
+<ul>
+<li><a href="http://www.rsyslog.com/rulesets-and-rsyslog-7-2/";>Calling 
rulesets since rsyslog 7.2</a></li>
+</ul>
+</p>
 <p><b>Caveats/Known Bugs:</b>
 <p>The current configuration file language is not really adequate for a 
complex construct
 like omruleset. Unfortunately, more important work is currently preventing me 
from redoing the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/doc/property_replacer.html 
new/rsyslog-7.4.5/doc/property_replacer.html
--- old/rsyslog-7.4.4/doc/property_replacer.html        2013-08-30 
18:30:41.000000000 +0200
+++ new/rsyslog-7.4.5/doc/property_replacer.html        2013-10-16 
11:10:39.000000000 +0200
@@ -746,13 +746,15 @@
 options. It was initially introduced to support the "jsonf" option, for which 
it provides
 the capability to set an alternative field name. If it is not specified, it 
defaults to 
 the property name.
-<h2>Further Links</h2>
+<b>See also</b>
 <ul>
 <li>Article on "<a href="rsyslog_recording_pri.html">Recording
 the Priority of Syslog Messages</a>" (describes use of templates
 to record severity and facility of a message)</li>
 <li><a href="rsyslog_conf.html">Configuration file
 format</a>, this is where you actually use the property replacer.</li>
+<li><a 
href="http://www.rsyslog.com/what-is-the-difference-between-timereported-and-timegenerated/";>
+Difference between timereported and timegenerated.</li>
 </ul>
 <p>[<a href="manual.html">manual index</a>]
 [<a href="rsyslog_conf.html">rsyslog.conf</a>]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/doc/queues.html 
new/rsyslog-7.4.5/doc/queues.html
--- old/rsyslog-7.4.4/doc/queues.html   2012-04-04 08:29:55.000000000 +0200
+++ new/rsyslog-7.4.5/doc/queues.html   2013-10-16 11:10:39.000000000 +0200
@@ -386,6 +386,11 @@
 workers that needed to be cancelled due to too-long processing. For a large 
 queue, this operation may be lengthy. No timeout applies to a required 
shutdown 
 save.</p>
+<p><b>See Also</b>
+<ul>
+<li><a href="http://www.rsyslog.com/encrypted-disk-queues/";>Encrypted Disk 
Queues</a></li>
+</ul>
+</p>
 [<a href="manual.html">manual index</a>]
 [<a href="rsyslog_conf.html">rsyslog.conf</a>]
 [<a href="http://www.rsyslog.com/";>rsyslog site</a>]</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/doc/rsyslog_conf_filter.html 
new/rsyslog-7.4.5/doc/rsyslog_conf_filter.html
--- old/rsyslog-7.4.4/doc/rsyslog_conf_filter.html      2013-08-30 
18:30:41.000000000 +0200
+++ new/rsyslog-7.4.5/doc/rsyslog_conf_filter.html      2013-10-16 
11:10:39.000000000 +0200
@@ -275,6 +275,11 @@
 it is possible to query facility and severity via property-based
 filters, it is far more advisable to use classic selectors (see above)
 for those cases.</p>
+<p><b>See Also</b>
+<ul>
+<li><a href="http://www.rsyslog.com/filter-optimization-with-arrays/";>Filter 
optimization with arrays</a></li>
+</ul>
+</p>
 <p>[<a href="manual.html">manual index</a>]
 [<a href="rsyslog_conf.html">rsyslog.conf</a>]
 [<a href="http://www.rsyslog.com/";>rsyslog site</a>]</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/doc/rsyslog_conf_templates.html 
new/rsyslog-7.4.5/doc/rsyslog_conf_templates.html
--- old/rsyslog-7.4.4/doc/rsyslog_conf_templates.html   2013-08-30 
18:30:41.000000000 +0200
+++ new/rsyslog-7.4.5/doc/rsyslog_conf_templates.html   2013-10-16 
12:41:53.000000000 +0200
@@ -288,8 +288,8 @@
 <h4>Standard Template for Forwarding to a Remote Host (RFC3164 mode)</h4>
 <p><pre><code>template(name="ForwardFormat" type="list") {
        constant(value="&lt;")
-       property(name="PRI")
-       constant(value="&lt;")
+       property(name="pri")
+       constant(value="&gt;")
        property(name="timestamp" dateFormat="rfc3339")
        constant(value=" ")
        property(name="hostname")
@@ -524,7 +524,13 @@
 <br><br>
 $template StdSQLFormat,"insert into SystemEvents (Message, Facility, FromHost, 
Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values 
('%msg%', %syslogfacility%, '%HOSTNAME%', %syslogpriority%, 
'%timereported:::date-mysql%', '%timegenerated:::date-mysql%', %iut%, 
'%syslogtag%')",SQL
 </code></p>
-
+<p><b>See Also</b>
+<ul>
+<li><a href="http://www.rsyslog.com/how-to-bind-a-template/";>How to bind a 
template</a></li>
+<li><a href="http://www.rsyslog.com/adding-the-bom-to-a-message/";>Adding the 
BOM to a message</a></li>
+<li><a href="http://www.rsyslog.com/article60/";>How to separate log files by 
host name of the sending device</a></li>
+</ul>
+</p>
 <p>[<a href="manual.html">manual index</a>]
 [<a href="rsyslog_conf.html">rsyslog.conf</a>]
 [<a href="http://www.rsyslog.com/";>rsyslog site</a>]</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/doc/rsyslog_packages.html 
new/rsyslog-7.4.5/doc/rsyslog_packages.html
--- old/rsyslog-7.4.4/doc/rsyslog_packages.html 2013-08-30 18:30:41.000000000 
+0200
+++ new/rsyslog-7.4.5/doc/rsyslog_packages.html 2013-10-16 11:10:39.000000000 
+0200
@@ -81,5 +81,10 @@
 <p>If you do not find a suitable package for your distribution, there is no 
reason
 to panic. It is quite simple to install rsyslog from the source tarball, so you
 should consider that.
+<p><b>See Also</b>
+<ul>
+<li><a href="http://www.rsyslog.com/how-to-use-the-ubuntu-repository/";>How to 
use the Ubuntu repository</a></li>
+</ul>
+</p>
 </body>
 </html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/doc/sigprov_gt.html 
new/rsyslog-7.4.5/doc/sigprov_gt.html
--- old/rsyslog-7.4.4/doc/sigprov_gt.html       2013-08-30 18:30:41.000000000 
+0200
+++ new/rsyslog-7.4.5/doc/sigprov_gt.html       2013-10-16 11:10:39.000000000 
+0200
@@ -64,6 +64,12 @@
 hashes can be kept inside the signature file.
 </li>
 </ul>
+<p><b>See Also</b>
+<ul>
+<li><a 
href="http://www.rsyslog.com/how-to-sign-log-messages-through-signature-provider-guardtime/";>How
+to sign log messages through signature provider Guardtime</a></li>
+</ul>
+</p>
 <b>Caveats/Known Bugs:</b>
 <ul>
 <li>currently none known
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/doc/troubleshoot.html 
new/rsyslog-7.4.5/doc/troubleshoot.html
--- old/rsyslog-7.4.4/doc/troubleshoot.html     2012-04-04 08:29:55.000000000 
+0200
+++ new/rsyslog-7.4.5/doc/troubleshoot.html     2013-09-24 09:12:11.000000000 
+0200
@@ -88,15 +88,19 @@
 meaningless value. <b>Do not delete the lines</b>, as this renders the debug 
log
 unusable (and makes Rainer quite angry for wasted time, aka significantly 
reduces the chance
 he will remain motivated to look at your problem ;)). For the same reason, 
make sure
-whatever you change is change consistently. Really!
-<p>Debug log file can get quite large. Before submitting them, it is a good 
idea to zip them.
-Rainer has handled files of around 1 to 2 GB. If your's is larger ask before 
submitting. Often, 
-it is sufficient to submit the first 2,000 lines of the log file and around 
another 1,000 around
-the area where you see a problem. Also,
-ask you can submit a file via private mail. Private mail is usually a good way 
to go for large files
-or files with sensitive content. However, do NOT send anything sensitive that 
you do not want
-the outside to be known. While Rainer so far made effort no to leak any 
sensitive information,
-there is no guarantee that doesn't happen. If you need a guarantee, you are 
probably a
+whatever you change is changed consistently. Really!
+<p>While most debug log files are moderately large, some can get quite to 
extremly large.
+For those on the larger side, it is a good idea to zip them. If the file is 
less than
+around 100KiB, it's probably not necessary.
+<p>A good place to post your debug log is at the
+<a href="http://kb.monitorware.com/rsyslog-f40.html";>rsyslog support 
forums</a>, together with
+your question. This also enables us to keep track of the case. The forums 
accept attachments in
+various common formats, but rejects others for security reasons. The zip, txt, 
and log extensions
+are definitely permitted, so it probably is a good idea to use one of them. 
For others, please
+simply try and revert to another format if the forum doesn't like what you 
used.
+<p>
+Please note that all information in your debug file is publically visiable.
+If this is not acceptable for you, you are probably a
 candidate for a <a href="professional_support.html">commercial support 
contract</a>. Free support
 comes without any guarantees, include no guarantee on confidentiality
 [aka "we don't want to be sued for work were are not even paid for ;)].
@@ -156,7 +160,7 @@
 [<a href="http://www.rsyslog.com/";>rsyslog site</a>]</p>
 <p><font size="2">This documentation is part of the
 <a href="http://www.rsyslog.com/";>rsyslog</a> project.<br>
-Copyright &copy; 2008-2010 by <a href="http://www.gerhards.net/rainer";>Rainer 
Gerhards</a> and
+Copyright &copy; 2008-2013 by <a href="http://www.gerhards.net/rainer";>Rainer 
Gerhards</a> and
 <a href="http://www.adiscon.com/";>Adiscon</a>. Released under the GNU GPL 
 version 3 or higher.</font></p>
 </body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/grammar/rainerscript.c 
new/rsyslog-7.4.5/grammar/rainerscript.c
--- old/rsyslog-7.4.4/grammar/rainerscript.c    2013-08-30 18:30:41.000000000 
+0200
+++ new/rsyslog-7.4.5/grammar/rainerscript.c    2013-10-16 12:41:54.000000000 
+0200
@@ -1315,7 +1315,10 @@
        if(bHadNoMatch) {
                cnfexprEval(func->expr[4], &r[4], usrptr);
                estr = var2String(&r[4], &bMustFree);
-               if(r[4].datatype == 'S') es_deleteStr(r[4].d.estr);
+               /* Note that we do NOT free the string that was returned/created
+                * for r[4]. We pass it to the caller, which in turn frees it.
+                * This saves us doing one unnecessary memory alloc & write.
+                */
        }
        ret->datatype = 'S';
        ret->d.estr = estr;
@@ -2567,14 +2570,15 @@
 cnfstmtNewPROPFILT(char *propfilt, struct cnfstmt *t_then)
 {
        struct cnfstmt* cnfstmt;
-       rsRetVal lRet;
        if((cnfstmt = cnfstmtNew(S_PROPFILT)) != NULL) {
                cnfstmt->printable = (uchar*)propfilt;
                cnfstmt->d.s_propfilt.t_then = t_then;
                cnfstmt->d.s_propfilt.propName = NULL;
                cnfstmt->d.s_propfilt.regex_cache = NULL;
                cnfstmt->d.s_propfilt.pCSCompValue = NULL;
-               lRet = DecodePropFilter((uchar*)propfilt, cnfstmt);
+               if(DecodePropFilter((uchar*)propfilt, cnfstmt) != RS_RET_OK) {
+                       cnfstmt->nodetype = S_NOP; /* disable action! */
+               }
        }
        return cnfstmt;
 }
@@ -2779,7 +2783,7 @@
                                parser_errmsg("invalid facility '%s', 
expression will always "
                                              "evaluate to FALSE", cstr);
                        } else {
-                               /* we can acutally optimize! */
+                               /* we can actually optimize! */
                                DBGPRINTF("optimizer: change comparison OP to 
FUNC prifilt()\n");
                                func = cnffuncNew_prifilt(fac);
                                if(expr->nodetype == CMP_NE)
@@ -2858,7 +2862,7 @@
 static inline void
 cnfexprOptimize_CMPEQ_arr(struct cnfarray *arr)
 {
-       DBGPRINTF("optimizer: sorting array for CMP_EQ/NEQ comparison\n");
+       DBGPRINTF("optimizer: sorting array of %d members for CMP_EQ/NEQ 
comparison\n", arr->nmemb);
        qsort(arr->arr, arr->nmemb, sizeof(es_str_t*), qs_arrcmp);
 }
 
@@ -2922,7 +2926,8 @@
                }
                if(expr->l->nodetype == 'V') {
                        expr = cnfexprOptimize_CMP_var(expr);
-               } else if(expr->r->nodetype == 'A') {
+               }
+               if(expr->r->nodetype == 'A') {
                        cnfexprOptimize_CMPEQ_arr((struct cnfarray *)expr->r);
                }
                break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/plugins/imfile/imfile.c 
new/rsyslog-7.4.5/plugins/imfile/imfile.c
--- old/rsyslog-7.4.4/plugins/imfile/imfile.c   2013-09-02 15:12:16.000000000 
+0200
+++ new/rsyslog-7.4.5/plugins/imfile/imfile.c   2013-10-16 12:41:49.000000000 
+0200
@@ -473,7 +473,7 @@
                } else if(!strcmp(inppblk.descr[i].name, "severity")) {
                        inst->iSeverity = pvals[i].val.d.n;
                } else if(!strcmp(inppblk.descr[i].name, "facility")) {
-                       inst->iSeverity = pvals[i].val.d.n;
+                       inst->iFacility = pvals[i].val.d.n;
                } else if(!strcmp(inppblk.descr[i].name, "readmode")) {
                        inst->readMode = pvals[i].val.d.n;
                } else if(!strcmp(inppblk.descr[i].name, "maxlinesatonce")) {
@@ -832,8 +832,8 @@
        cs.pszFileName = NULL;
        free(cs.pszFileTag);
        cs.pszFileTag = NULL;
-       free(cs.pszFileTag);
-       cs.pszFileTag = NULL;
+       free(cs.pszStateFile);
+       cs.pszStateFile = NULL;
 
        /* set defaults... */
        cs.iPollInterval = DFLT_PollInterval;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/plugins/impstats/impstats.c 
new/rsyslog-7.4.5/plugins/impstats/impstats.c
--- old/rsyslog-7.4.4/plugins/impstats/impstats.c       2013-09-03 
12:31:42.000000000 +0200
+++ new/rsyslog-7.4.5/plugins/impstats/impstats.c       2013-10-16 
12:41:54.000000000 +0200
@@ -135,9 +135,9 @@
 doSubmitMsg(uchar *line)
 {
        msg_t *pMsg;
-       DEFiRet;
 
-       CHKiRet(msgConstruct(&pMsg));
+       if(msgConstruct(&pMsg) != RS_RET_OK)
+               goto finalize_it;
        MsgSetInputName(pMsg, pInputName);
        MsgSetRawMsgWOSize(pMsg, (char*)line);
        MsgSetHOSTNAME(pMsg, glbl.GetLocalHostName(), 
ustrlen(glbl.GetLocalHostName()));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/plugins/mmanon/mmanon.c 
new/rsyslog-7.4.5/plugins/mmanon/mmanon.c
--- old/rsyslog-7.4.4/plugins/mmanon/mmanon.c   2013-08-30 18:30:41.000000000 
+0200
+++ new/rsyslog-7.4.5/plugins/mmanon/mmanon.c   2013-10-16 11:10:39.000000000 
+0200
@@ -170,7 +170,6 @@
                                        cstr);
                                free(cstr);
                        }
-                       pData->replChar = es_getBufAddr(pvals[i].val.d.estr)[0];
                } else if(!strcmp(actpblk.descr[i].name, "replacementchar")) {
                        pData->replChar = es_getBufAddr(pvals[i].val.d.estr)[0];
                } else if(!strcmp(actpblk.descr[i].name, "ipv4.bits")) {
@@ -307,7 +306,7 @@
        ++i;
        ipstart[3] = i;
        octet = getnum(msg, lenMsg, &i);
-       if(octet > 255 || !(msg[i] == ' ' || msg[i] == ':')) goto done;
+       if(octet > 255) goto done;
        ipv4addr |= octet;
 
        /* OK, we now found an ip address */
@@ -339,6 +338,8 @@
                if(i - endpos > 0) {
                        *pLenMsg = lenMsg - (i - endpos);
                        memmove(msg+endpos, msg+i, lenMsg - i + 1);
+                       /* correct index for next search! */
+                       i -= (i - endpos);
                }
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/plugins/mmnormalize/mmnormalize.c 
new/rsyslog-7.4.5/plugins/mmnormalize/mmnormalize.c
--- old/rsyslog-7.4.4/plugins/mmnormalize/mmnormalize.c 2013-09-03 
11:54:20.000000000 +0200
+++ new/rsyslog-7.4.5/plugins/mmnormalize/mmnormalize.c 2013-10-16 
11:10:39.000000000 +0200
@@ -227,6 +227,7 @@
        /* TODO: this is all extremly ineffcient! */
        ee_fmtEventToJSON(event, &str);
        cstrJSON = es_str2cstr(str, NULL);
+       ee_deleteEvent(event);
        dbgprintf("mmnormalize generated: %s\n", cstrJSON);
 
        tokener = json_tokener_new();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/rsyslog-7.4.4/plugins/omelasticsearch/omelasticsearch.c 
new/rsyslog-7.4.5/plugins/omelasticsearch/omelasticsearch.c
--- old/rsyslog-7.4.4/plugins/omelasticsearch/omelasticsearch.c 2013-08-30 
18:30:41.000000000 +0200
+++ new/rsyslog-7.4.5/plugins/omelasticsearch/omelasticsearch.c 2013-10-16 
12:41:54.000000000 +0200
@@ -4,7 +4,7 @@
  * NOTE: read comments in module-template.h for more specifics!
  *
  * Copyright 2011 Nathan Scott.
- * Copyright 2009-2012 Rainer Gerhards and Adiscon GmbH.
+ * Copyright 2009-2013 Rainer Gerhards and Adiscon GmbH.
  *
  * This file is part of rsyslog.
  *
@@ -58,10 +58,10 @@
 DEFobjCurrIf(statsobj)
 
 statsobj_t *indexStats;
-STATSCOUNTER_DEF(indexConFail, mutIndexConFail)
 STATSCOUNTER_DEF(indexSubmit, mutIndexSubmit)
-STATSCOUNTER_DEF(indexFailed, mutIndexFailed)
-STATSCOUNTER_DEF(indexSuccess, mutIndexSuccess)
+STATSCOUNTER_DEF(indexHTTPFail, mutIndexHTTPFail)
+STATSCOUNTER_DEF(indexHTTPReqFail, mutIndexHTTPReqFail)
+STATSCOUNTER_DEF(indexESFail, mutIndexESFail)
 
 /* REST API for elasticsearch hits this URL:
  * http://<hostName>:<restPort>/<searchIndex>/<searchType>
@@ -91,6 +91,7 @@
        sbool asyncRepl;
        struct {
                es_str_t *data;
+               int nmemb;      /* number of messages in batch (for statistics 
counting) */
                uchar *currTpl1;
                uchar *currTpl2;
        } batch;
@@ -432,6 +433,7 @@
                DBGPRINTF("omelasticsearch: growing batch failed with code 
%d\n", r);
                ABORT_FINALIZE(RS_RET_ERR);
        }
+       ++pData->batch.nmemb;
        iRet = RS_RET_DEFER_COMMIT;
 
 finalize_it:
@@ -577,12 +579,15 @@
 finalize_it:
        if(root != NULL)
                cJSON_Delete(root);
+       if(iRet != RS_RET_OK) {
+               STATSCOUNTER_INC(indexESFail, mutIndexESFail);
+       }
        RETiRet;
 }
 
 
 static rsRetVal
-curlPost(instanceData *pData, uchar *message, int msglen, uchar **tpls)
+curlPost(instanceData *pData, uchar *message, int msglen, uchar **tpls, int 
nmsgs)
 {
        CURLcode code;
        CURL *curl = pData->curlHandle;
@@ -603,13 +608,13 @@
                case CURLE_COULDNT_RESOLVE_PROXY:
                case CURLE_COULDNT_CONNECT:
                case CURLE_WRITE_ERROR:
-                       STATSCOUNTER_INC(indexConFail, mutIndexConFail);
+                       STATSCOUNTER_INC(indexHTTPReqFail, mutHTTPReqFail);
+                       indexHTTPFail += nmsgs;
                        DBGPRINTF("omelasticsearch: we are suspending ourselfs 
due "
                                  "to failure %lld of curl_easy_perform()\n",
                                  (long long) code);
                        ABORT_FINALIZE(RS_RET_SUSPENDED);
                default:
-                       STATSCOUNTER_INC(indexSubmit, mutIndexSubmit);
                        break;
        }
 
@@ -633,17 +638,19 @@
        }
 
        es_emptyStr(pData->batch.data);
+       pData->batch.nmemb = 0;
 finalize_it:
 ENDbeginTransaction
 
 
 BEGINdoAction
 CODESTARTdoAction
+       STATSCOUNTER_INC(indexSubmit, mutIndexSubmit);
        if(pData->bulkmode) {
                CHKiRet(buildBatch(pData, ppString[0], ppString));
        } else {
                CHKiRet(curlPost(pData, ppString[0], strlen((char*)ppString[0]),
-                                ppString));
+                                ppString, 1));
        }
 finalize_it:
 dbgprintf("omelasticsearch: result doAction: %d (bulkmode %d)\n", iRet, 
pData->bulkmode);
@@ -658,7 +665,7 @@
        if (pData->batch.data != NULL ) {
                cstr = es_str2cstr(pData->batch.data, NULL);
                dbgprintf("omelasticsearch: endTransaction, batch: '%s'\n", 
cstr);
-               CHKiRet(curlPost(pData, (uchar*) cstr, strlen(cstr), NULL));
+               CHKiRet(curlPost(pData, (uchar*) cstr, strlen(cstr), NULL, 
pData->batch.nmemb));
        }
        else
                dbgprintf("omelasticsearch: endTransaction, pData->batch.data 
is NULL, nothing to send. \n");
@@ -993,15 +1000,19 @@
 
        /* support statistics gathering */
        CHKiRet(statsobj.Construct(&indexStats));
-       CHKiRet(statsobj.SetName(indexStats, (uchar *)"elasticsearch"));
-       CHKiRet(statsobj.AddCounter(indexStats, (uchar *)"connfail",
-               ctrType_IntCtr, &indexConFail));
-       CHKiRet(statsobj.AddCounter(indexStats, (uchar *)"submits",
+       CHKiRet(statsobj.SetName(indexStats, (uchar *)"omelasticsearch"));
+       STATSCOUNTER_INIT(indexSubmit, mutCtrIndexSubmit);
+       CHKiRet(statsobj.AddCounter(indexStats, (uchar *)"submitted",
                ctrType_IntCtr, &indexSubmit));
-       CHKiRet(statsobj.AddCounter(indexStats, (uchar *)"failed",
-               ctrType_IntCtr, &indexFailed));
-       CHKiRet(statsobj.AddCounter(indexStats, (uchar *)"success",
-               ctrType_IntCtr, &indexSuccess));
+       STATSCOUNTER_INIT(indexHTTPFail, mutCtrIndexHTTPFail);
+       CHKiRet(statsobj.AddCounter(indexStats, (uchar *)"failed.http",
+               ctrType_IntCtr, &indexHTTPFail));
+       STATSCOUNTER_INIT(indexHTTPReqFail, mutCtrIndexHTTPReqFail);
+       CHKiRet(statsobj.AddCounter(indexStats, (uchar *)"failed.httprequests",
+               ctrType_IntCtr, &indexHTTPReqFail));
+       STATSCOUNTER_INIT(indexESFail, mutCtrIndexESFail);
+       CHKiRet(statsobj.AddCounter(indexStats, (uchar *)"failed.es",
+               ctrType_IntCtr, &indexESFail));
        CHKiRet(statsobj.ConstructFinalize(indexStats));
 ENDmodInit
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/plugins/ommongodb/ommongodb.c 
new/rsyslog-7.4.5/plugins/ommongodb/ommongodb.c
--- old/rsyslog-7.4.4/plugins/ommongodb/ommongodb.c     2013-09-03 
11:54:20.000000000 +0200
+++ new/rsyslog-7.4.5/plugins/ommongodb/ommongodb.c     2013-09-24 
09:12:11.000000000 +0200
@@ -35,7 +35,7 @@
 #include <mongo.h>
 #include <json.h>
 /* For struct json_object_iter, should not be necessary in future versions */
-#include <json/json_object_private.h>
+#include <json_object_private.h>
 
 #include "rsyslog.h"
 #include "conf.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/plugins/omprog/omprog.c 
new/rsyslog-7.4.5/plugins/omprog/omprog.c
--- old/rsyslog-7.4.4/plugins/omprog/omprog.c   2013-09-03 12:31:42.000000000 
+0200
+++ new/rsyslog-7.4.5/plugins/omprog/omprog.c   2013-10-16 12:41:49.000000000 
+0200
@@ -122,6 +122,7 @@
 {
        int i;
        struct sigaction sigAct;
+       sigset_t set;
        char *newargv[] = { NULL };
        char *newenviron[] = { NULL };
 
@@ -146,10 +147,12 @@
 
        /* reset signal handlers to default */
        memset(&sigAct, 0, sizeof(sigAct));
-       sigfillset(&sigAct.sa_mask);
+       sigemptyset(&sigAct.sa_mask);
        sigAct.sa_handler = SIG_DFL;
        for(i = 1 ; i < NSIG ; ++i)
                sigaction(i, &sigAct, NULL);
+       sigemptyset(&set);
+        sigprocmask(SIG_SETMASK, &set, NULL);
 
        alarm(0);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/runtime/conf.c 
new/rsyslog-7.4.5/runtime/conf.c
--- old/rsyslog-7.4.4/runtime/conf.c    2013-08-30 18:30:41.000000000 +0200
+++ new/rsyslog-7.4.5/runtime/conf.c    2013-10-16 12:41:54.000000000 +0200
@@ -573,6 +573,7 @@
        } else {
                errmsg.LogError(0, NO_ERRCODE, "error: invalid compare 
operation '%s' - ignoring selector",
                           (char*) rsCStrGetSzStrNoNULL(pCSCompOp));
+               return(RS_RET_ERR);
        }
        rsCStrDestruct(&pCSCompOp); /* no longer needed */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/runtime/cryprov.h 
new/rsyslog-7.4.5/runtime/cryprov.h
--- old/rsyslog-7.4.4/runtime/cryprov.h 2013-09-03 12:31:42.000000000 +0200
+++ new/rsyslog-7.4.5/runtime/cryprov.h 2013-10-16 12:41:49.000000000 +0200
@@ -24,8 +24,6 @@
 #ifndef INCLUDED_CRYPROV_H
 #define INCLUDED_CRYPROV_H
 
-#include <gcrypt.h>
-
 /* interface */
 BEGINinterface(cryprov) /* name must also be changed in ENDinterface macro! */
        rsRetVal (*Construct)(void *ppThis);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/runtime/libgcry.h 
new/rsyslog-7.4.5/runtime/libgcry.h
--- old/rsyslog-7.4.4/runtime/libgcry.h 2013-09-03 12:31:42.000000000 +0200
+++ new/rsyslog-7.4.5/runtime/libgcry.h 2013-10-16 12:41:54.000000000 +0200
@@ -21,7 +21,7 @@
 #ifndef INCLUDED_LIBGCRY_H
 #define INCLUDED_LIBGCRY_H
 #include <stdint.h>
-
+#include <gcrypt.h>
 
 struct gcryctx_s {
        uchar *key;
@@ -52,6 +52,7 @@
 int gcryfileDestruct(gcryfile gf, off64_t offsLogfile);
 rsRetVal rsgcryInitCrypt(gcryctx ctx, gcryfile *pgf, uchar *fname);
 int rsgcryEncrypt(gcryfile pF, uchar *buf, size_t *len);
+int gcryGetKeyFromProg(char *cmd, char **key, unsigned *keylen);
 
 /* error states */
 #define RSGCRYE_EI_OPEN 1      /* error opening .encinfo file */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/runtime/msg.c 
new/rsyslog-7.4.5/runtime/msg.c
--- old/rsyslog-7.4.4/runtime/msg.c     2013-09-03 12:31:42.000000000 +0200
+++ new/rsyslog-7.4.5/runtime/msg.c     2013-10-16 12:41:49.000000000 +0200
@@ -43,7 +43,7 @@
 #include <libestr.h>
 #include <json.h>
 /* For struct json_object_iter, should not be necessary in future versions */
-#include <json/json_object_private.h>
+#include <json_object_private.h>
 #if HAVE_MALLOC_H
 #  include <malloc.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/runtime/msg.h 
new/rsyslog-7.4.5/runtime/msg.h
--- old/rsyslog-7.4.4/runtime/msg.h     2013-09-03 12:31:42.000000000 +0200
+++ new/rsyslog-7.4.5/runtime/msg.h     2013-10-16 12:41:49.000000000 +0200
@@ -62,7 +62,6 @@
                                        once data has entered the queue, this 
property is no longer needed. */
        pthread_mutex_t mut;
        int     iRefCount;      /* reference counter (0 = unused) */
-       sbool   bAlreadyFreed;  /* aid to help detect a well-hidden bad bug -- 
TODO: remove when no longer needed */
        sbool   bParseSuccess;  /* set to reflect state of last executed higher 
level parser */
        short   iSeverity;      /* the severity 0..7 */
        short   iFacility;      /* Facility code 0 .. 23*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/runtime/nsd_gtls.c 
new/rsyslog-7.4.5/runtime/nsd_gtls.c
--- old/rsyslog-7.4.4/runtime/nsd_gtls.c        2013-08-30 18:30:41.000000000 
+0200
+++ new/rsyslog-7.4.5/runtime/nsd_gtls.c        2013-09-24 09:12:12.000000000 
+0200
@@ -2,7 +2,7 @@
  *
  * An implementation of the nsd interface for GnuTLS.
  * 
- * Copyright (C) 2007, 2008 Rainer Gerhards and Adiscon GmbH.
+ * Copyright (C) 2007-2013 Rainer Gerhards and Adiscon GmbH.
  *
  * This file is part of the rsyslog runtime library.
  *
@@ -547,10 +547,20 @@
        keyFile = glbl.GetDfltNetstrmDrvrKeyFile();
        dbgprintf("GTLS certificate file: '%s'\n", certFile);
        dbgprintf("GTLS key file: '%s'\n", keyFile);
+       if(certFile == NULL) {
+               errmsg.LogError(0, RS_RET_CERT_MISSING, "error: certificate 
file is not set, cannot "
+                               "continue");
+               ABORT_FINALIZE(RS_RET_CERT_MISSING);
+       }
+       if(keyFile == NULL) {
+               errmsg.LogError(0, RS_RET_CERTKEY_MISSING, "error: key file is 
not set, cannot "
+                               "continue");
+               ABORT_FINALIZE(RS_RET_CERTKEY_MISSING);
+       }
        CHKgnutls(gnutls_certificate_set_x509_key_file(xcred, (char*)certFile, 
(char*)keyFile, GNUTLS_X509_FMT_PEM));
 
 finalize_it:
-       if(iRet != RS_RET_OK) {
+       if(iRet != RS_RET_OK && iRet != RS_RET_CERT_MISSING && iRet != 
RS_RET_CERTKEY_MISSING) {
                pGnuErr = gtlsStrerror(gnuRet);
                errno = 0;
                errmsg.LogError(0, iRet, "error adding our certificate. GnuTLS 
error %d, message: '%s', "
@@ -580,6 +590,11 @@
 
        /* sets the trusted cas file */
        cafile = glbl.GetDfltNetstrmDrvrCAF();
+       if(cafile == NULL) {
+               errmsg.LogError(0, RS_RET_CA_CERT_MISSING, "error: ca 
certificate is not set, cannot "
+                               "continue");
+               ABORT_FINALIZE(RS_RET_CA_CERT_MISSING);
+       }
        dbgprintf("GTLS CA file: '%s'\n", cafile);
        gnuRet = gnutls_certificate_set_x509_trust_file(xcred, (char*)cafile, 
GNUTLS_X509_FMT_PEM);
        if(gnuRet < 0) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/runtime/rsyslog.h 
new/rsyslog-7.4.5/runtime/rsyslog.h
--- old/rsyslog-7.4.4/runtime/rsyslog.h 2013-09-03 12:31:42.000000000 +0200
+++ new/rsyslog-7.4.5/runtime/rsyslog.h 2013-10-16 12:41:49.000000000 +0200
@@ -3,7 +3,7 @@
  *
  * Begun 2005-09-15 RGerhards
  *
- * Copyright (C) 2005-2008 by Rainer Gerhards and Adiscon GmbH
+ * Copyright (C) 2005-2013 by Rainer Gerhards and Adiscon GmbH
  *
  * This file is part of the rsyslog runtime library.
  *
@@ -413,6 +413,9 @@
        RS_RET_CRY_INVLD_ALGO = -2326,/**< user specified invalid (unkonwn) 
crypto algorithm */
        RS_RET_CRY_INVLD_MODE = -2327,/**< user specified invalid (unkonwn) 
crypto mode */
        RS_RET_QUEUE_DISK_NO_FN = -2328,/**< disk queue configured, but 
filename not set */
+       RS_RET_CA_CERT_MISSING = -2329,/**< a CA cert is missing where one is 
required (e.g. TLS) */
+       RS_RET_CERT_MISSING = -2330,/**< a cert is missing where one is 
required (e.g. TLS) */
+       RS_RET_CERTKEY_MISSING = -2331,/**< a cert (private) key is missing 
where one is required (e.g. TLS) */
 
        /* RainerScript error messages (range 1000.. 1999) */
        RS_RET_SYSVAR_NOT_FOUND = 1001, /**< system variable could not be found 
(maybe misspelled) */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/runtime/stringbuf.c 
new/rsyslog-7.4.5/runtime/stringbuf.c
--- old/rsyslog-7.4.4/runtime/stringbuf.c       2013-08-30 18:30:41.000000000 
+0200
+++ new/rsyslog-7.4.5/runtime/stringbuf.c       2013-10-16 12:41:54.000000000 
+0200
@@ -107,7 +107,8 @@
 
 /* a helper function for rsCStr*Strf()
  */
-static rsRetVal rsCStrConstructFromszStrv(cstr_t **ppThis, uchar *fmt, va_list 
ap)
+static rsRetVal rsCStrConstructFromszStrv(cstr_t **ppThis, char *fmt, va_list 
ap) __attribute__((format(gnu_printf,2, 0)));
+static rsRetVal rsCStrConstructFromszStrv(cstr_t **ppThis, char *fmt, va_list 
ap)
 {
        DEFiRet;
        cstr_t *pThis;
@@ -147,7 +148,7 @@
        va_list ap;
 
        va_start(ap, fmt);
-       iRet = rsCStrConstructFromszStrv(ppThis, (uchar*)fmt, ap);
+       iRet = rsCStrConstructFromszStrv(ppThis, fmt, ap);
        va_end(ap);
 
        RETiRet;
@@ -315,7 +316,7 @@
        cstr_t *pStr = NULL;
 
        va_start(ap, fmt);
-       iRet = rsCStrConstructFromszStrv(&pStr, fmt, ap);
+       iRet = rsCStrConstructFromszStrv(&pStr, (char*)fmt, ap);
        va_end(ap);
 
        CHKiRet(iRet);
@@ -563,7 +564,7 @@
        }
        /* i now is the new string length! */
        pThis->iStrLen = i;
-       pThis->pBuf[pThis->iStrLen] = '0'; /* we always have this space */
+       pThis->pBuf[pThis->iStrLen] = '\0'; /* we always have this space */
 
 done:  return RS_RET_OK;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rsyslog-7.4.4/tcpsrv.c new/rsyslog-7.4.5/tcpsrv.c
--- old/rsyslog-7.4.4/tcpsrv.c  2013-09-03 12:31:42.000000000 +0200
+++ new/rsyslog-7.4.5/tcpsrv.c  2013-10-16 12:41:49.000000000 +0200
@@ -948,6 +948,8 @@
        if(iRet != RS_RET_OK) {
                if(pThis->pNS != NULL)
                        netstrms.Destruct(&pThis->pNS);
+               errmsg.LogError(0, iRet, "tcpsrv could not create listener 
(inputname: '%s')",
+                               (pThis->pszInputName == NULL) ? 
(uchar*)"*UNSET*" : pThis->pszInputName);
        }
        RETiRet;
 }

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to