Mailinglist Archive: opensuse-commit (1069 mails)

< Previous Next >
commit rsyslog for openSUSE:Factory
  • From: root@xxxxxxxxxxxxxxx (h_root)
  • Date: Sun, 05 Dec 2010 23:00:09 +0100
  • Message-id: <20101205220009.4F397202B5@xxxxxxxxxxxxxxx>

Hello community,

here is the log from the commit of package rsyslog for openSUSE:Factory
checked in at Sun Dec 5 23:00:09 CET 2010.



--------
--- rsyslog/rsyslog.changes 2010-11-20 17:15:55.000000000 +0100
+++ /mounts/work_src_done/STABLE/rsyslog/rsyslog.changes 2010-12-03
18:12:41.000000000 +0100
@@ -1,0 +2,34 @@
+Fri Dec 3 16:49:41 UTC 2010 - mt@xxxxxxx
+
+- update to 5.6.2 (v5-stable) with following bugfixes:
+ * compile failed on systems without epoll_create1()
+ Thanks to David Hill for providing a fix.
+ * atomic increment for msg object may not work correct on
+ all platforms. Thanks to Chris Metcalf for the patch
+ * replacements for atomic operations for non-int sized types
+ had problems. At least one instance of that problem could
+ potentially lead to abort (inside omfile).
+- Increased mark frequency in rsyslog.conf to 1 hour
+- Enabled duplicate message reduction in rsyslog.conf to catch
+ at least buggy programs running amok and writting same message
+ zillion times until the disk gets out of space (bnc#656197).
+- Merged rsyslog-systemd-integration.bnc656104.diff (fuzz=0).
+
+-------------------------------------------------------------------
+Mon Nov 29 10:32:58 CET 2010 - mt@xxxxxxx
+
+- update to 5.6.1
+ This release addresses a TLS bug, that has been bothering a lot
+ of users lately. It stops rsyslog from looping, thus disabling
+ functionality and bearing the risk of unresponsiveness of the
+ whole system. Other issues have been fixed for imptcp, failing
+ testbench, segfault on empty templates and failed compile.
+ For more detailed information, please review the ChangeLog and
+ http://bugzilla.adiscon.com/show_bug.cgi?id=194,
+ http://bugzilla.adiscon.com/show_bug.cgi?id=204,
+ http://bugzilla.adiscon.com/show_bug.cgi?id=206.
+- applied systemd integration base patch (without the service and
+ socket unit files, because we'll use same for all syslog damons)
+ extracted from git master (bnc#656104).
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


Old:
----
rsyslog-5.6.0.tar.bz2

New:
----
rsyslog-5.6.2.tar.bz2
rsyslog-systemd-integration.bnc656104.diff

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

Other differences:
------------------
++++++ rsyslog.spec ++++++
--- /var/tmp/diff_new_pack.3Ex5EL/_old 2010-12-05 22:59:44.000000000 +0100
+++ /var/tmp/diff_new_pack.3Ex5EL/_new 2010-12-05 22:59:44.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package rsyslog (Version 5.6.0)
+# spec file for package rsyslog (Version 5.6.2)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -20,9 +20,9 @@

Name: rsyslog
Summary: The enhanced syslogd for Linux and Unix
-Version: 5.6.0
-Release: 2
-%define upstream_version 5.6.0
+Version: 5.6.2
+Release: 1
+%define upstream_version 5.6.2
# add %define build_with_relp 1 to enable relp on < 11.3, e.g.
# via <topadd>%define build_with_relp 1</topadd> in _link file.
%define with_relp 0%{?suse_version} >= 1130 ||
0%{?build_with_relp:1}
@@ -49,6 +49,11 @@
# UDP spoof support
%if 0%{?suse_version} > 1130
BuildRequires: libnet-devel
+#
+#BuildRequires: systemd
+#
+# unresolvable: nothing provides fsck-with-dev-lock needed by systemd
+#
%else
BuildRequires: libnet
%endif
@@ -59,6 +64,7 @@
Source2: rsyslog.conf.in
Source3: rsyslog.early.conf.in
Source4: rsyslog.d.remote.conf.in
+Patch1: rsyslog-systemd-integration.bnc656104.diff

%description
Rsyslog is an enhanced multi-threaded syslogd supporting, among others,
@@ -188,6 +194,7 @@

%prep
%setup -q -n %{name}-%{upstream_version}
+%patch1 -p1
dos2unix doc/*.html

%build

++++++ rsyslog-5.6.0.tar.bz2 -> rsyslog-5.6.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/ChangeLog new/rsyslog-5.6.2/ChangeLog
--- old/rsyslog-5.6.0/ChangeLog 2010-10-22 14:39:36.000000000 +0200
+++ new/rsyslog-5.6.2/ChangeLog 2010-11-30 11:26:20.000000000 +0100
@@ -1,4 +1,35 @@
---------------------------------------------------------------------------
+Version 5.6.2 [V5-STABLE] (rgerhards), 2010-11-30
+- bugfix: compile failed on systems without epoll_create1()
+ Thanks to David Hill for providing a fix.
+- bugfix: atomic increment for msg object may not work correct on all
+ platforms. Thanks to Chris Metcalf for the patch
+- bugfix: replacements for atomic operations for non-int sized types had
+ problems. At least one instance of that problem could potentially lead
+ to abort (inside omfile).
+---------------------------------------------------------------------------
+Version 5.6.1 [V5-STABLE] (rgerhards), 2010-11-24
+- bugfix(important): problem in TLS handling could cause rsyslog to loop
+ in a tight loop, effectively disabling functionality and bearing the
+ risk of unresponsiveness of the whole system.
+ Bug tracker: http://bugzilla.adiscon.com/show_bug.cgi?id=194
+- permitted imptcp to work on systems which support epoll(), but not
+ epoll_create().
+ Bug: http://bugzilla.adiscon.com/show_bug.cgi?id=204
+ Thanks to Nicholas Brink for reporting this problem.
+- bugfix: testbench failed if imptcp was not enabled
+- bugfix: segfault when an *empty* template was used
+ Bug: http://bugzilla.adiscon.com/show_bug.cgi?id=206
+ Thanks to David Hill for alerting us.
+- bugfix: compile failed with --enable-unlimited-select
+ thanks varmojfekoj for the patch
+---------------------------------------------------------------------------
+Version 5.6.0 [V5-STABLE] (rgerhards), 2010-10-19
+- private build
+- added the $InputFilePersistStateInterval config directive to imfile
+- changed imfile so that the state file is never deleted (makes imfile
+ more robust in regard to fatal failures)
+---------------------------------------------------------------------------
Version 5.6.0 [V5-STABLE] (rgerhards), 2010-10-19

This release brings all changes and enhancements of the 5.5.x series
@@ -543,6 +574,10 @@
- imported changes from 4.5.6 and below
---------------------------------------------------------------------------
Version 4.6.5 [v4-stable] (rgerhards), 2010-??-??
+- bugfix(important): problem in TLS handling could cause rsyslog to loop
+ in a tight loop, effectively disabling functionality and bearing the
+ risk of unresponsiveness of the whole system.
+ Bug tracker: http://bugzilla.adiscon.com/show_bug.cgi?id=194
- bugfix: a couple of problems that imfile had on some platforms, namely
Ubuntu (not their fault, but occured there)
- bugfix: imfile utilizes 32 bit to track offset. Most importantly,
@@ -1175,6 +1210,12 @@
- bugfix: memory leak in ompgsql
Thanks to Ken for providing the patch
---------------------------------------------------------------------------
+Version 3.22.3 [v3-stable] (rgerhards), 2010-11-24
+- bugfix(important): problem in TLS handling could cause rsyslog to loop
+ in a tight loop, effectively disabling functionality and bearing the
+ risk of unresponsiveness of the whole system.
+ Bug tracker: http://bugzilla.adiscon.com/show_bug.cgi?id=194
+---------------------------------------------------------------------------
Version 3.22.2 [v3-stable] (rgerhards), 2010-08-05
- bugfix: comment char ('#') in literal terminated script parsing
and thus could not be used.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/action.c new/rsyslog-5.6.2/action.c
--- old/rsyslog-5.6.0/action.c 2010-10-22 16:19:43.000000000 +0200
+++ new/rsyslog-5.6.2/action.c 2010-11-26 09:29:44.000000000 +0100
@@ -1388,7 +1388,7 @@
} else {
bProcessMarkMsgs = 1;
}
- } while(ATOMIC_CAS(&pAction->f_time, lastAct,
+ } while(ATOMIC_CAS_time_t(&pAction->f_time,
lastAct,

((msg_t*)(pBatch->pElem[i].pUsrp))->ttGenTime, &pAction->mutCAS) == 0);
}
if(bProcessMarkMsgs) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/configure new/rsyslog-5.6.2/configure
--- old/rsyslog-5.6.0/configure 2010-10-22 16:20:13.000000000 +0200
+++ new/rsyslog-5.6.2/configure 2010-11-30 11:27:12.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.65 for rsyslog 5.6.0.
+# Generated by GNU Autoconf 2.65 for rsyslog 5.6.2.
#
# Report bugs to <rsyslog@xxxxxxxxxxxxxxxxx>.
#
@@ -701,8 +701,8 @@
# Identity of this package.
PACKAGE_NAME='rsyslog'
PACKAGE_TARNAME='rsyslog'
-PACKAGE_VERSION='5.6.0'
-PACKAGE_STRING='rsyslog 5.6.0'
+PACKAGE_VERSION='5.6.2'
+PACKAGE_STRING='rsyslog 5.6.2'
PACKAGE_BUGREPORT='rsyslog@xxxxxxxxxxxxxxxxx'
PACKAGE_URL=''

@@ -1579,7 +1579,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 5.6.0 to adapt to many kinds of systems.
+\`configure' configures rsyslog 5.6.2 to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

@@ -1649,7 +1649,7 @@

if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of rsyslog 5.6.0:";;
+ short | recursive ) echo "Configuration of rsyslog 5.6.2:";;
esac
cat <<\_ACEOF

@@ -1807,7 +1807,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-rsyslog configure 5.6.0
+rsyslog configure 5.6.2
generated by GNU Autoconf 2.65

Copyright (C) 2009 Free Software Foundation, Inc.
@@ -2382,7 +2382,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 5.6.0, which was
+It was created by rsyslog $as_me 5.6.2, which was
generated by GNU Autoconf 2.65. Invocation command line was

$ $0 $@
@@ -3190,7 +3190,7 @@

# Define the identity of the package.
PACKAGE='rsyslog'
- VERSION='5.6.0'
+ VERSION='5.6.2'


cat >>confdefs.h <<_ACEOF
@@ -16602,7 +16602,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 5.6.0, which was
+This file was extended by rsyslog $as_me 5.6.2, which was
generated by GNU Autoconf 2.65. Invocation command line was

CONFIG_FILES = $CONFIG_FILES
@@ -16668,7 +16668,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 5.6.0
+rsyslog config.status 5.6.2
configured by $0, generated by GNU Autoconf 2.65,
with options \\"\$ac_cs_config\\"

diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/configure.ac
new/rsyslog-5.6.2/configure.ac
--- old/rsyslog-5.6.0/configure.ac 2010-10-22 16:19:43.000000000 +0200
+++ new/rsyslog-5.6.2/configure.ac 2010-11-30 11:26:46.000000000 +0100
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.

AC_PREREQ(2.61)
-AC_INIT([rsyslog],[5.6.0],[rsyslog@xxxxxxxxxxxxxxxxx])
+AC_INIT([rsyslog],[5.6.2],[rsyslog@xxxxxxxxxxxxxxxxx])
AM_INIT_AUTOMAKE

m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/doc/imfile.html
new/rsyslog-5.6.2/doc/imfile.html
--- old/rsyslog-5.6.0/doc/imfile.html 2010-08-05 11:33:54.000000000 +0200
+++ new/rsyslog-5.6.2/doc/imfile.html 2010-11-26 09:29:44.000000000 +0100
@@ -86,6 +86,16 @@
be well enough. Please note that imfile keeps reading files as long as
there is any data in them. So a "polling sleep" will only happen when
nothing is left to be processed.</li>
+<li><b>$InputFilePersistStateInterval</b> [lines]</b><br>
+Available in 4.7.3+, 5.6.2+<br>
+Specifies how often the state file shall be written when processing the input
+file. The default value is 0, which means a new state file is only written
when
+the monitored files is being closed (end of rsyslogd execution). Any other
+value n means that the state file is written every time n file lines have
+been processed. This setting can be used to guard against message duplication
due
+to fatal errors (like power fail). Note that this setting affects imfile
+performance, especially when set to a low value. Frequently writing the state
+file is very time consuming.
</ul>
<b>Caveats/Known Bugs:</b>
<p>So far, only 100 files can be monitored. If more are needed,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/doc/manual.html
new/rsyslog-5.6.2/doc/manual.html
--- old/rsyslog-5.6.0/doc/manual.html 2010-10-22 14:39:36.000000000 +0200
+++ new/rsyslog-5.6.2/doc/manual.html 2010-11-30 11:26:57.000000000 +0100
@@ -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 5.6.0 (beta branch) of rsyslog.</b>
+<p><b>This documentation is for version 5.6.2 (beta 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-5.6.0/plugins/imfile/imfile.c
new/rsyslog-5.6.2/plugins/imfile/imfile.c
--- old/rsyslog-5.6.0/plugins/imfile/imfile.c 2010-10-22 14:39:36.000000000
+0200
+++ new/rsyslog-5.6.2/plugins/imfile/imfile.c 2010-11-30 11:25:55.000000000
+0100
@@ -47,6 +47,7 @@
#include "datetime.h"
#include "unicode-helper.h"
#include "prop.h"
+#include "stringbuf.h"

MODULE_TYPE_INPUT /* must be present for input modules, do not remove */

@@ -67,15 +68,21 @@
uchar *pszStateFile; /* file in which state between runs is to be
stored */
int iFacility;
int iSeverity;
+ int nRecords; /**< How many records did we process before persisting
the stream? */
+ int iPersistStateInterval; /**< how often should state be persisted?
(0=on close only) */
strm_t *pStrm; /* its stream (NULL if not assigned) */
} fileInfo_t;


+/* forward definitions */
+static rsRetVal persistStrmState(fileInfo_t *pInfo);
+
/* config variables */
static uchar *pszFileName = NULL;
static uchar *pszFileTag = NULL;
static uchar *pszStateFile = NULL;
static int iPollInterval = 10; /* number of seconds to sleep when there was no
file activity */
+static int iPersistStateInterval = 0; /* how often if state file to be
persisted? (default 0->never) */
static int iFacility = 128; /* local0 */
static int iSeverity = 5; /* notice, as of rfc 3164 */

@@ -153,10 +160,9 @@

CHKiRet(strm.SeekCurrOffs(pThis->pStrm));

- /* OK, we could successfully read the file, so we now can request that
it be deleted.
- * If we need it again, it will be written on the next shutdown.
+ /* note: we do not delete the state file, so that the last position
remains
+ * known even in the case that rsyslogd aborts for some reason (like
powerfail)
*/
- psSF->bDeleteOnClose = 1;

finalize_it:
if(psSF != NULL)
@@ -210,6 +216,10 @@
*pbHadFileData = 1; /* this is just a flag, so set it and
forget it */
CHKiRet(enqLine(pThis, pCStr)); /* process line */
rsCStrDestruct(&pCStr); /* discard string (must be done by us!)
*/
+ if(pThis->iPersistStateInterval > 0 && pThis->nRecords++ >=
pThis->iPersistStateInterval) {
+ persistStrmState(pThis);
+ pThis->nRecords = 0;
+ }
}

finalize_it:
@@ -477,6 +487,7 @@

pThis->iSeverity = iSeverity;
pThis->iFacility = iFacility;
+ pThis->iPersistStateInterval = iPersistStateInterval;
} else {
errmsg.LogError(0, RS_RET_OUT_OF_DESRIPTORS, "Too many file
monitors configured - ignoring this one");
ABORT_FINALIZE(RS_RET_OUT_OF_DESRIPTORS);
@@ -522,6 +533,9 @@
NULL, &iFacility, STD_LOADABLE_MODULE_ID));
CHKiRet(omsdRegCFSLineHdlr((uchar *)"inputfilepollinterval", 0,
eCmdHdlrInt,
NULL, &iPollInterval, STD_LOADABLE_MODULE_ID));
+ CHKiRet(omsdRegCFSLineHdlr((uchar *)"inputfilepersiststateinterval", 0,
eCmdHdlrInt,
+
+ NULL, &iPersistStateInterval, STD_LOADABLE_MODULE_ID));
/* that command ads a new file! */
CHKiRet(omsdRegCFSLineHdlr((uchar *)"inputrunfilemonitor", 0,
eCmdHdlrGetWord,
addMonitor, NULL, STD_LOADABLE_MODULE_ID));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/plugins/imptcp/imptcp.c
new/rsyslog-5.6.2/plugins/imptcp/imptcp.c
--- old/rsyslog-5.6.0/plugins/imptcp/imptcp.c 2010-10-22 14:39:36.000000000
+0200
+++ new/rsyslog-5.6.2/plugins/imptcp/imptcp.c 2010-11-26 09:29:44.000000000
+0100
@@ -30,6 +30,13 @@
* A copy of the GPL can be found in the file "COPYING" in this distribution.
*/
#include "config.h"
+#if !defined(HAVE_EPOLL_CREATE)
+# error imptcp requires OS support for epoll - can not build
+ /* imptcp gains speed by using modern Linux capabilities. As such,
+ * it can only be build on platforms supporting the epoll API.
+ */
+#endif
+
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
@@ -1039,7 +1046,18 @@
ABORT_FINALIZE(RS_RET_NO_RUN);
}

- if((epollfd = epoll_create1(EPOLL_CLOEXEC)) < 0) {
+# if defined(EPOLL_CLOEXEC) && defined(HAVE_EPOLL_CREATE1)
+ DBGPRINTF("imptcp uses epoll_create1()\n");
+ epollfd = epoll_create1(EPOLL_CLOEXEC);
+# else
+ DBGPRINTF("imptcp uses epoll_create()\n");
+ /* reading the docs, the number of epoll events passed to
+ * epoll_create() seems not to be used at all in kernels. So
+ * we just provide "a" number, happens to be 10.
+ */
+ epollfd = epoll_create(10);
+# endif
+ if(epollfd < 0) {
errmsg.LogError(0, RS_RET_EPOLL_CR_FAILED, "error:
epoll_create() failed");
ABORT_FINALIZE(RS_RET_NO_RUN);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/runtime/Makefile.am
new/rsyslog-5.6.2/runtime/Makefile.am
--- old/rsyslog-5.6.0/runtime/Makefile.am 2010-10-22 14:39:36.000000000
+0200
+++ new/rsyslog-5.6.2/runtime/Makefile.am 2010-11-30 11:25:56.000000000
+0100
@@ -7,6 +7,7 @@
librsyslog_la_SOURCES = \
rsyslog.c \
rsyslog.h \
+ typedefs.h \
unicode-helper.h \
atomic.h \
batch.h \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/runtime/Makefile.in
new/rsyslog-5.6.2/runtime/Makefile.in
--- old/rsyslog-5.6.0/runtime/Makefile.in 2010-10-22 16:20:20.000000000
+0200
+++ new/rsyslog-5.6.2/runtime/Makefile.in 2010-11-30 11:27:19.000000000
+0100
@@ -388,6 +388,7 @@
librsyslog_la_SOURCES = \
rsyslog.c \
rsyslog.h \
+ typedefs.h \
unicode-helper.h \
atomic.h \
batch.h \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/runtime/atomic.h
new/rsyslog-5.6.2/runtime/atomic.h
--- old/rsyslog-5.6.0/runtime/atomic.h 2010-10-22 14:29:00.000000000 +0200
+++ new/rsyslog-5.6.2/runtime/atomic.h 2010-11-26 09:29:44.000000000 +0100
@@ -33,6 +33,8 @@
*/
#ifndef INCLUDED_ATOMIC_H
#define INCLUDED_ATOMIC_H
+#include <time.h>
+#include "typedefs.h"

/* for this release, we disable atomic calls because there seem to be some
* portability problems and we can not fix that without destabilizing the
build.
@@ -42,7 +44,9 @@
# define ATOMIC_SUB(data, val, phlpmut) __sync_fetch_and_sub(data, val)
# define ATOMIC_ADD(data, val) __sync_fetch_and_add(&(data), val)
# define ATOMIC_INC(data, phlpmut) ((void) __sync_fetch_and_add(data, 1))
-# define ATOMIC_INC_AND_FETCH(data, phlpmut) __sync_fetch_and_add(data, 1)
+# define ATOMIC_INC_AND_FETCH_int(data, phlpmut)
__sync_fetch_and_add(data, 1)
+# define ATOMIC_INC_AND_FETCH_unsigned(data, phlpmut)
__sync_fetch_and_add(data, 1)
+# define ATOMIC_INC_AND_FETCH_uint64(data, phlpmut)
__sync_fetch_and_add(data, 1)
# define ATOMIC_DEC(data, phlpmut) ((void) __sync_sub_and_fetch(data, 1))
# define ATOMIC_DEC_AND_FETCH(data, phlpmut) __sync_sub_and_fetch(data, 1)
# define ATOMIC_FETCH_32BIT(data, phlpmut) ((unsigned)
__sync_fetch_and_and(data, 0xffffffff))
@@ -51,6 +55,7 @@
# define ATOMIC_STORE_1_TO_INT(data, phlpmut) __sync_fetch_and_or(data, 1)
# define ATOMIC_STORE_INT_TO_INT(data, val) __sync_fetch_and_or(&(data),
(val))
# define ATOMIC_CAS(data, oldVal, newVal, phlpmut)
__sync_bool_compare_and_swap(data, (oldVal), (newVal))
+# define ATOMIC_CAS_time_t(data, oldVal, newVal, phlpmut)
__sync_bool_compare_and_swap(data, (oldVal), (newVal))
# define ATOMIC_CAS_VAL(data, oldVal, newVal, phlpmut)
__sync_val_compare_and_swap(data, (oldVal), (newVal));

/* functions below are not needed if we have atomics */
@@ -104,6 +109,20 @@
return(bSuccess);
}

+ static inline int
+ ATOMIC_CAS_time_t(time_t *data, time_t oldVal, time_t newVal,
pthread_mutex_t *phlpmut) {
+ int bSuccess;
+ pthread_mutex_lock(phlpmut);
+ if(*data == oldVal) {
+ *data = newVal;
+ bSuccess = 1;
+ } else {
+ bSuccess = 0;
+ }
+ pthread_mutex_unlock(phlpmut);
+ return(bSuccess);
+ }
+

static inline int
ATOMIC_CAS_VAL(int *data, int oldVal, int newVal, pthread_mutex_t
*phlpmut) {
@@ -124,7 +143,7 @@
}

static inline int
- ATOMIC_INC_AND_FETCH(int *data, pthread_mutex_t *phlpmut) {
+ ATOMIC_INC_AND_FETCH_int(int *data, pthread_mutex_t *phlpmut) {
int val;
pthread_mutex_lock(phlpmut);
val = ++(*data);
@@ -132,6 +151,24 @@
return(val);
}

+ static inline unsigned
+ ATOMIC_INC_AND_FETCH_unsigned(unsigned *data, pthread_mutex_t *phlpmut)
{
+ unsigned val;
+ pthread_mutex_lock(phlpmut);
+ val = ++(*data);
+ pthread_mutex_unlock(phlpmut);
+ return(val);
+ }
+
+ static inline unsigned
+ ATOMIC_INC_AND_FETCH_uint64(uint64 *data, pthread_mutex_t *phlpmut) {
+ uint64 val;
+ pthread_mutex_lock(phlpmut);
+ val = ++(*data);
+ pthread_mutex_unlock(phlpmut);
+ return(val);
+ }
+
static inline int
ATOMIC_DEC_AND_FETCH(int *data, pthread_mutex_t *phlpmut) {
int val;
@@ -158,7 +195,9 @@
}
#if 0
# warning "atomic builtins not available, using nul operations - rsyslogd
will probably be racy!"
-# define ATOMIC_INC_AND_FETCH(data) (++(data))
+# define ATOMIC_INC_AND_FETCH_int(data) (++(data))
+# define ATOMIC_INC_AND_FETCH_unsigned(data) (++(data))
+# define ATOMIC_INC_AND_FETCH_uint64(data) (++(data))
# define ATOMIC_STORE_1_TO_32BIT(data) (data) = 1 // TODO: del
#endif
# define DEF_ATOMIC_HELPER_MUT(x) pthread_mutex_t x
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/runtime/msg.c
new/rsyslog-5.6.2/runtime/msg.c
--- old/rsyslog-5.6.0/runtime/msg.c 2010-10-22 16:19:43.000000000 +0200
+++ new/rsyslog-5.6.2/runtime/msg.c 2010-11-26 09:29:44.000000000 +0100
@@ -851,7 +851,7 @@
* that we trim too often when the counter wraps.
*/
static unsigned iTrimCtr = 1;
- currCnt = ATOMIC_INC_AND_FETCH(&iTrimCtr, &mutTrimCtr);
+ currCnt = ATOMIC_INC_AND_FETCH_unsigned(&iTrimCtr,
&mutTrimCtr);
if(currCnt % 100000 == 0) {
malloc_trim(128*1024);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/runtime/msg.h
new/rsyslog-5.6.2/runtime/msg.h
--- old/rsyslog-5.6.0/runtime/msg.h 2010-10-22 14:29:00.000000000 +0200
+++ new/rsyslog-5.6.2/runtime/msg.h 2010-11-26 09:29:44.000000000 +0100
@@ -60,8 +60,8 @@
flowControl_t flowCtlType; /**< type of flow control we can apply, for
enqueueing, needs not to be persisted because
once data has entered the queue, this
property is no longer needed. */
pthread_mutex_t mut;
+ int iRefCount; /* reference counter (0 = unused) */
sbool bDoLock; /* use the mutex? */
- short iRefCount; /* reference counter (0 = unused) */
short iSeverity; /* the severity 0..7 */
short iFacility; /* Facility code 0 .. 23*/
short offAfterPRI; /* offset, at which raw message WITHOUT PRI
part starts in pszRawMsg */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/runtime/nsdpoll_ptcp.c
new/rsyslog-5.6.2/runtime/nsdpoll_ptcp.c
--- old/rsyslog-5.6.0/runtime/nsdpoll_ptcp.c 2010-10-22 14:29:00.000000000
+0200
+++ new/rsyslog-5.6.2/runtime/nsdpoll_ptcp.c 2010-11-26 09:29:44.000000000
+0100
@@ -42,7 +42,6 @@
#include "nspoll.h"
#include "nsd_ptcp.h"
#include "nsdpoll_ptcp.h"
-#include "unlimited_select.h"

/* static data */
DEFobjStaticHelpers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/runtime/nsdsel_gtls.c
new/rsyslog-5.6.2/runtime/nsdsel_gtls.c
--- old/rsyslog-5.6.0/runtime/nsdsel_gtls.c 2010-07-07 12:28:02.000000000
+0200
+++ new/rsyslog-5.6.2/runtime/nsdsel_gtls.c 2010-11-25 17:45:09.000000000
+0100
@@ -76,6 +76,9 @@
if(pNsdGTLS->iMode == 1) {
if(waitOp == NSDSEL_RD && gtlsHasRcvInBuffer(pNsdGTLS)) {
++pThis->iBufferRcvReady;
+ dbgprintf("nsdsel_gtls: data already present in buffer,
initiating "
+ "dummy select %p->iBufferRcvReady=%d\n",
+ pThis, pThis->iBufferRcvReady);
FINALIZE;
}
if(pNsdGTLS->rtryCall != gtlsRtry_None) {
@@ -109,6 +112,7 @@
if(pThis->iBufferRcvReady > 0) {
/* we still have data ready! */
*piNumReady = pThis->iBufferRcvReady;
+ dbgprintf("nsdsel_gtls: doing dummy select, data present\n");
} else {
iRet = nsdsel_ptcp.Select(pThis->pTcp, piNumReady);
}
@@ -190,6 +194,9 @@
if(pNsdGTLS->iMode == 1) {
if(waitOp == NSDSEL_RD && gtlsHasRcvInBuffer(pNsdGTLS)) {
*pbIsReady = 1;
+ --pThis->iBufferRcvReady; /* one "pseudo-read" less */
+ dbgprintf("nsdl_gtls: dummy read, decermenting
%p->iBufRcvReady, now %d\n",
+ pThis, pThis->iBufferRcvReady);
FINALIZE;
}
if(pNsdGTLS->rtryCall != gtlsRtry_None) {
@@ -200,6 +207,16 @@
*pbIsReady = 0;
FINALIZE;
}
+ /* now we must ensure that we do not fall back to PTCP if we
have
+ * done a "dummy" select. In that case, we know when the
predicate
+ * is not matched here, we do not have data available for this
+ * socket. -- rgerhards, 2010-11-20
+ */
+ if(pThis->iBufferRcvReady) {
+ dbgprintf("nsd_gtls: dummy read, buffer not available
for this FD\n");
+ *pbIsReady = 0;
+ FINALIZE;
+ }
}

CHKiRet(nsdsel_ptcp.IsReady(pThis->pTcp, pNsdGTLS->pTcp, waitOp,
pbIsReady));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/runtime/rsyslog.h
new/rsyslog-5.6.2/runtime/rsyslog.h
--- old/rsyslog-5.6.0/runtime/rsyslog.h 2010-10-22 14:39:36.000000000 +0200
+++ new/rsyslog-5.6.2/runtime/rsyslog.h 2010-11-30 11:25:56.000000000 +0100
@@ -25,6 +25,7 @@
*/
#ifndef INCLUDED_RSYSLOG_H
#define INCLUDED_RSYSLOG_H
+#include "typedefs.h"

/* ############################################################# *
* # Some constant values # *
@@ -94,126 +95,6 @@
#define CORE_FEATURE_BATCHING 1
/*#define CORE_FEATURE_whatever 2 ... and so on ... */

-/* under Solaris (actually only SPARC), we need to redefine some types
- * to be void, so that we get void* pointers. Otherwise, we will see
- * alignment errors.
- */
-/* some universal fixed size integer defines ... */
-typedef long long int64;
-typedef long long unsigned uint64;
-typedef int64 number_t; /* type to use for numbers - TODO: maybe an autoconf
option? */
-typedef char intTiny; /* 0..127! */
-typedef unsigned char uintTiny; /* 0..255! */
-
-/* define some base data types */
-
-typedef unsigned char uchar;/* get rid of the unhandy "unsigned char" */
-typedef struct aUsrp_s aUsrp_t;
-typedef struct thrdInfo thrdInfo_t;
-typedef struct obj_s obj_t;
-typedef struct ruleset_s ruleset_t;
-typedef struct rule_s rule_t;
-//typedef struct filed selector_t;/* TODO: this so far resides in syslogd.c,
think about modularization */
-typedef struct NetAddr netAddr_t;
-typedef struct netstrms_s netstrms_t;
-typedef struct netstrm_s netstrm_t;
-typedef struct nssel_s nssel_t;
-typedef struct nspoll_s nspoll_t;
-typedef enum nsdsel_waitOp_e nsdsel_waitOp_t;
-typedef struct nsd_ptcp_s nsd_ptcp_t;
-typedef struct nsd_gtls_s nsd_gtls_t;
-typedef struct nsd_gsspi_s nsd_gsspi_t;
-typedef struct nsd_nss_s nsd_nss_t;
-typedef struct nsdsel_ptcp_s nsdsel_ptcp_t;
-typedef struct nsdsel_gtls_s nsdsel_gtls_t;
-typedef struct nsdpoll_ptcp_s nsdpoll_ptcp_t;
-typedef struct wti_s wti_t;
-typedef struct msg msg_t;
-typedef struct queue_s qqueue_t;
-typedef struct prop_s prop_t;
-typedef struct interface_s interface_t;
-typedef struct objInfo_s objInfo_t;
-typedef enum rsRetVal_ rsRetVal; /**< friendly type for global return value */
-typedef rsRetVal (*errLogFunc_t)(uchar*); /* this is a trick to store a
function ptr to a function returning a function ptr... */
-typedef struct permittedPeers_s permittedPeers_t; /* this should go away in
the long term -- rgerhards, 2008-05-19 */
-typedef struct permittedPeerWildcard_s permittedPeerWildcard_t; /* this should
go away in the long term -- rgerhards, 2008-05-19 */
-typedef struct tcpsrv_s tcpsrv_t;
-typedef struct tcps_sess_s tcps_sess_t;
-typedef struct strmsrv_s strmsrv_t;
-typedef struct strms_sess_s strms_sess_t;
-typedef struct vmstk_s vmstk_t;
-typedef struct batch_obj_s batch_obj_t;
-typedef struct batch_s batch_t;
-typedef struct wtp_s wtp_t;
-typedef struct modInfo_s modInfo_t;
-typedef struct parser_s parser_t;
-typedef struct parserList_s parserList_t;
-typedef struct strgen_s strgen_t;
-typedef struct strgenList_s strgenList_t;
-typedef rsRetVal (*prsf_t)(struct vmstk_s*, int); /* pointer to a
RainerScript function */
-typedef uint64 qDeqID; /* queue Dequeue order ID. 32 bits is considered
dangerously few */
-
-typedef struct tcpLstnPortList_s tcpLstnPortList_t; // TODO: rename?
-typedef struct strmLstnPortList_s strmLstnPortList_t; // TODO: rename?
-
-/* under Solaris (actually only SPARC), we need to redefine some types
- * to be void, so that we get void* pointers. Otherwise, we will see
- * alignment errors.
- */
-#ifdef OS_SOLARIS
- typedef void * obj_t_ptr;
- typedef void nsd_t;
- typedef void nsdsel_t;
- typedef void nsdpoll_t;
-#else
- typedef obj_t *obj_t_ptr;
- typedef obj_t nsd_t;
- typedef obj_t nsdsel_t;
- typedef obj_t nsdpoll_t;
-#endif
-
-
-#ifdef __hpux
-typedef unsigned int u_int32_t; /* TODO: is this correct? */
-typedef int socklen_t;
-#endif
-
-typedef struct epoll_event epoll_event_t;
-
-typedef char sbool; /* (small bool) I intentionally use char, to
keep it slim so that many fit into the CPU cache! */
-
-/* settings for flow control
- * TODO: is there a better place for them? -- rgerhards, 2008-03-14
- */
-typedef enum {
- eFLOWCTL_NO_DELAY = 0, /**< UDP and other non-delayable
sources */
- eFLOWCTL_LIGHT_DELAY = 1, /**< some light delay possible, but no
extended period of time */
- eFLOWCTL_FULL_DELAY = 2 /**< delay possible for extended period of time
*/
-} flowControl_t;
-
-/* filter operations */
-typedef enum {
- FIOP_NOP = 0, /* do not use - No Operation */
- FIOP_CONTAINS = 1, /* contains string? */
- FIOP_ISEQUAL = 2, /* is (exactly) equal? */
- FIOP_STARTSWITH = 3, /* starts with a string? */
- FIOP_REGEX = 4, /* matches a (BRE) regular expression? */
- FIOP_EREREGEX = 5 /* matches a ERE regular expression? */
-} fiop_t;
-
-
-/* multi-submit support.
- * This is done via a simple data structure, which holds the number of elements
- * as well as an array of to-be-submitted messages.
- * rgerhards, 2009-06-16
- */
-typedef struct multi_submit_s multi_submit_t;
-struct multi_submit_s {
- short maxElem; /* maximum number of Elements */
- short nElem; /* current number of Elements, points to the
next one FREE */
- msg_t **ppMsgs;
-};
-

#ifndef _PATH_CONSOLE
#define _PATH_CONSOLE "/dev/console"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/runtime/typedefs.h
new/rsyslog-5.6.2/runtime/typedefs.h
--- old/rsyslog-5.6.0/runtime/typedefs.h 1970-01-01 01:00:00.000000000
+0100
+++ new/rsyslog-5.6.2/runtime/typedefs.h 2010-11-30 11:25:56.000000000
+0100
@@ -0,0 +1,147 @@
+/* This defines some types commonly used. Do NOT include any other
+ * rsyslog runtime file.
+ *
+ * Begun 2010-11-25 RGerhards
+ *
+ * Copyright (C) 2005-2008 by Rainer Gerhards and Adiscon GmbH
+ *
+ * This file is part of the rsyslog runtime library.
+ *
+ * The rsyslog runtime library is free software: you can redistribute it
and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * The rsyslog runtime library is distributed in the hope that it will be
useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with the rsyslog runtime library. If not, see
<http://www.gnu.org/licenses/>.
+ *
+ * A copy of the GPL can be found in the file "COPYING" in this distribution.
+ * A copy of the LGPL can be found in the file "COPYING.LESSER" in this
distribution.
+ */
+#ifndef INCLUDED_TYPEDEFS_H
+#define INCLUDED_TYPEDEFS_H
+
+/* some universal fixed size integer defines ... */
+typedef long long int64;
+typedef long long unsigned uint64;
+typedef int64 number_t; /* type to use for numbers - TODO: maybe an autoconf
option? */
+typedef char intTiny; /* 0..127! */
+typedef unsigned char uintTiny; /* 0..255! */
+
+/* define some base data types */
+
+typedef unsigned char uchar;/* get rid of the unhandy "unsigned char" */
+typedef struct aUsrp_s aUsrp_t;
+typedef struct thrdInfo thrdInfo_t;
+typedef struct obj_s obj_t;
+typedef struct ruleset_s ruleset_t;
+typedef struct rule_s rule_t;
+//typedef struct filed selector_t;/* TODO: this so far resides in syslogd.c,
think about modularization */
+typedef struct NetAddr netAddr_t;
+typedef struct netstrms_s netstrms_t;
+typedef struct netstrm_s netstrm_t;
+typedef struct nssel_s nssel_t;
+typedef struct nspoll_s nspoll_t;
+typedef enum nsdsel_waitOp_e nsdsel_waitOp_t;
+typedef struct nsd_ptcp_s nsd_ptcp_t;
+typedef struct nsd_gtls_s nsd_gtls_t;
+typedef struct nsd_gsspi_s nsd_gsspi_t;
+typedef struct nsd_nss_s nsd_nss_t;
+typedef struct nsdsel_ptcp_s nsdsel_ptcp_t;
+typedef struct nsdsel_gtls_s nsdsel_gtls_t;
+typedef struct nsdpoll_ptcp_s nsdpoll_ptcp_t;
+typedef struct wti_s wti_t;
+typedef struct msg msg_t;
+typedef struct queue_s qqueue_t;
+typedef struct prop_s prop_t;
+typedef struct interface_s interface_t;
+typedef struct objInfo_s objInfo_t;
+typedef enum rsRetVal_ rsRetVal; /**< friendly type for global return value */
+typedef rsRetVal (*errLogFunc_t)(uchar*); /* this is a trick to store a
function ptr to a function returning a function ptr... */
+typedef struct permittedPeers_s permittedPeers_t; /* this should go away in
the long term -- rgerhards, 2008-05-19 */
+typedef struct permittedPeerWildcard_s permittedPeerWildcard_t; /* this should
go away in the long term -- rgerhards, 2008-05-19 */
+typedef struct tcpsrv_s tcpsrv_t;
+typedef struct tcps_sess_s tcps_sess_t;
+typedef struct strmsrv_s strmsrv_t;
+typedef struct strms_sess_s strms_sess_t;
+typedef struct vmstk_s vmstk_t;
+typedef struct batch_obj_s batch_obj_t;
+typedef struct batch_s batch_t;
+typedef struct wtp_s wtp_t;
+typedef struct modInfo_s modInfo_t;
+typedef struct parser_s parser_t;
+typedef struct parserList_s parserList_t;
+typedef struct strgen_s strgen_t;
+typedef struct strgenList_s strgenList_t;
+typedef rsRetVal (*prsf_t)(struct vmstk_s*, int); /* pointer to a
RainerScript function */
+typedef uint64 qDeqID; /* queue Dequeue order ID. 32 bits is considered
dangerously few */
+
+typedef struct tcpLstnPortList_s tcpLstnPortList_t; // TODO: rename?
+typedef struct strmLstnPortList_s strmLstnPortList_t; // TODO: rename?
+
+/* under Solaris (actually only SPARC), we need to redefine some types
+ * to be void, so that we get void* pointers. Otherwise, we will see
+ * alignment errors.
+ */
+#ifdef OS_SOLARIS
+ typedef void * obj_t_ptr;
+ typedef void nsd_t;
+ typedef void nsdsel_t;
+ typedef void nsdpoll_t;
+#else
+ typedef obj_t *obj_t_ptr;
+ typedef obj_t nsd_t;
+ typedef obj_t nsdsel_t;
+ typedef obj_t nsdpoll_t;
+#endif
+
+
+#ifdef __hpux
+typedef unsigned int u_int32_t; /* TODO: is this correct? */
+typedef int socklen_t;
+#endif
+
+typedef struct epoll_event epoll_event_t;
+
+typedef char sbool; /* (small bool) I intentionally use char, to
keep it slim so that many fit into the CPU cache! */
+
+/* settings for flow control
+ * TODO: is there a better place for them? -- rgerhards, 2008-03-14
+ */
+typedef enum {
+ eFLOWCTL_NO_DELAY = 0, /**< UDP and other non-delayable
sources */
+ eFLOWCTL_LIGHT_DELAY = 1, /**< some light delay possible, but no
extended period of time */
+ eFLOWCTL_FULL_DELAY = 2 /**< delay possible for extended period of time
*/
+} flowControl_t;
+
+/* filter operations */
+typedef enum {
+ FIOP_NOP = 0, /* do not use - No Operation */
+ FIOP_CONTAINS = 1, /* contains string? */
+ FIOP_ISEQUAL = 2, /* is (exactly) equal? */
+ FIOP_STARTSWITH = 3, /* starts with a string? */
+ FIOP_REGEX = 4, /* matches a (BRE) regular expression? */
+ FIOP_EREREGEX = 5 /* matches a ERE regular expression? */
+} fiop_t;
+
+
+/* multi-submit support.
+ * This is done via a simple data structure, which holds the number of elements
+ * as well as an array of to-be-submitted messages.
+ * rgerhards, 2009-06-16
+ */
+typedef struct multi_submit_s multi_submit_t;
+struct multi_submit_s {
+ short maxElem; /* maximum number of Elements */
+ short nElem; /* current number of Elements, points to the
next one FREE */
+ msg_t **ppMsgs;
+};
+
+#endif /* multi-include protection */
+/* vim:set ai:
+ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/runtime/unlimited_select.h
new/rsyslog-5.6.2/runtime/unlimited_select.h
--- old/rsyslog-5.6.0/runtime/unlimited_select.h 2010-10-22
14:28:49.000000000 +0200
+++ new/rsyslog-5.6.2/runtime/unlimited_select.h 2010-11-26
09:29:44.000000000 +0100
@@ -23,6 +23,7 @@
*/

#ifndef UNLIMITED_SELECT_H_INCLUDED
+#define UNLIMITED_SELECT_H_INCLUDED

#include <string.h>
#include <stdlib.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/template.c new/rsyslog-5.6.2/template.c
--- old/rsyslog-5.6.0/template.c 2010-10-22 14:29:00.000000000 +0200
+++ new/rsyslog-5.6.2/template.c 2010-11-26 09:29:44.000000000 +0100
@@ -85,7 +85,7 @@
{
DEFiRet;
struct templateEntry *pTpe;
- int iBuf;
+ size_t iBuf;
unsigned short bMustBeFreed;
uchar *pVal;
size_t iLenVal;
@@ -141,7 +141,15 @@
pTpe = pTpe->pNext;
}

- (*ppBuf)[iBuf] = '\0'; /* space was reserved above (see copy) */
+ if(iBuf == *pLenBuf) {
+ /* in the weired case of an *empty* template, this can happen.
+ * it is debatable if we should really fix it here or simply
+ * forbid that case. However, performance toll is minimal, so
+ * I tend to permit it. -- 201011-05 rgerhards
+ */
+ CHKiRet(ExtendBuf(ppBuf, pLenBuf, iBuf + 1));
+ }
+ (*ppBuf)[iBuf] = '\0';

finalize_it:
RETiRet;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/tests/Makefile.am
new/rsyslog-5.6.2/tests/Makefile.am
--- old/rsyslog-5.6.0/tests/Makefile.am 2010-10-22 14:44:08.000000000 +0200
+++ new/rsyslog-5.6.2/tests/Makefile.am 2010-11-30 11:25:56.000000000 +0100
@@ -14,9 +14,6 @@
manytcp.sh \
rsf_getenv.sh \
manyptcp.sh \
- imptcp_large.sh \
- imptcp_addtlframedelim.sh \
- imptcp_conndrop.sh \
imtcp_conndrop.sh \
imtcp_addtlframedelim.sh \
sndrcv.sh \
@@ -51,6 +48,13 @@
dircreate_off.sh \
queue-persist.sh

+if ENABLE_IMPTCP
+TESTS += \
+ imptcp_large.sh \
+ imptcp_addtlframedelim.sh \
+ imptcp_conndrop.sh
+endif
+
if ENABLE_OMUDPSPOOF
TESTS += sndrcv_omudpspoof.sh \
sndrcv_omudpspoof_nonstdpt.sh
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/tests/Makefile.in
new/rsyslog-5.6.2/tests/Makefile.in
--- old/rsyslog-5.6.0/tests/Makefile.in 2010-10-22 16:20:20.000000000 +0200
+++ new/rsyslog-5.6.2/tests/Makefile.in 2010-11-30 11:27:20.000000000 +0100
@@ -44,9 +44,7 @@
@ENABLE_TESTBENCH_TRUE@ daqueue-persist.sh diskqueue.sh \
@ENABLE_TESTBENCH_TRUE@ diskqueue-fsync.sh rulesetmultiqueue.sh \
@ENABLE_TESTBENCH_TRUE@ manytcp.sh rsf_getenv.sh manyptcp.sh \
-@ENABLE_TESTBENCH_TRUE@ imptcp_large.sh \
-@ENABLE_TESTBENCH_TRUE@ imptcp_addtlframedelim.sh \
-@ENABLE_TESTBENCH_TRUE@ imptcp_conndrop.sh imtcp_conndrop.sh \
+@ENABLE_TESTBENCH_TRUE@ imtcp_conndrop.sh \
@ENABLE_TESTBENCH_TRUE@ imtcp_addtlframedelim.sh sndrcv.sh \
@ENABLE_TESTBENCH_TRUE@ sndrcv_gzip.sh sndrcv_udp.sh \
@ENABLE_TESTBENCH_TRUE@ sndrcv_udp_nonstdpt.sh asynwr_simple.sh \
@@ -67,11 +65,17 @@
@ENABLE_TESTBENCH_TRUE@ pipe_noreader.sh dircreate_dflt.sh \
@ENABLE_TESTBENCH_TRUE@ dircreate_off.sh queue-persist.sh \
@ENABLE_TESTBENCH_TRUE@ $(am__append_1) $(am__append_2) \
-@ENABLE_TESTBENCH_TRUE@ $(am__append_3) $(am__append_4)
-@ENABLE_OMUDPSPOOF_TRUE@@ENABLE_TESTBENCH_TRUE@am__append_1 =
sndrcv_omudpspoof.sh \
+@ENABLE_TESTBENCH_TRUE@ $(am__append_3) $(am__append_4) \
+@ENABLE_TESTBENCH_TRUE@ $(am__append_5)
+@ENABLE_IMPTCP_TRUE@@ENABLE_TESTBENCH_TRUE@am__append_1 = \
+@ENABLE_IMPTCP_TRUE@@ENABLE_TESTBENCH_TRUE@ imptcp_large.sh \
+@ENABLE_IMPTCP_TRUE@@ENABLE_TESTBENCH_TRUE@ imptcp_addtlframedelim.sh \
+@ENABLE_IMPTCP_TRUE@@ENABLE_TESTBENCH_TRUE@ imptcp_conndrop.sh
+
+@ENABLE_OMUDPSPOOF_TRUE@@ENABLE_TESTBENCH_TRUE@am__append_2 =
sndrcv_omudpspoof.sh \
@ENABLE_OMUDPSPOOF_TRUE@@ENABLE_TESTBENCH_TRUE@
sndrcv_omudpspoof_nonstdpt.sh

-@ENABLE_OMSTDOUT_TRUE@@ENABLE_TESTBENCH_TRUE@am__append_2 = omod-if-array.sh \
+@ENABLE_OMSTDOUT_TRUE@@ENABLE_TESTBENCH_TRUE@am__append_3 = omod-if-array.sh \
@ENABLE_OMSTDOUT_TRUE@@ENABLE_TESTBENCH_TRUE@ proprepltest.sh \
@ENABLE_OMSTDOUT_TRUE@@ENABLE_TESTBENCH_TRUE@ parsertest.sh \
@ENABLE_OMSTDOUT_TRUE@@ENABLE_TESTBENCH_TRUE@ timestamp.sh \
@@ -84,10 +88,10 @@
@ENABLE_OMSTDOUT_TRUE@@ENABLE_TESTBENCH_TRUE@ tabescape_off.sh \
@ENABLE_OMSTDOUT_TRUE@@ENABLE_TESTBENCH_TRUE@ fieldtest.sh

-@ENABLE_OMRULESET_TRUE@@ENABLE_TESTBENCH_TRUE@am__append_3 = omruleset.sh \
+@ENABLE_OMRULESET_TRUE@@ENABLE_TESTBENCH_TRUE@am__append_4 = omruleset.sh \
@ENABLE_OMRULESET_TRUE@@ENABLE_TESTBENCH_TRUE@ omruleset-queue.sh

-@ENABLE_EXTENDED_TESTS_TRUE@@ENABLE_TESTBENCH_TRUE@am__append_4 = random.sh
+@ENABLE_EXTENDED_TESTS_TRUE@@ENABLE_TESTBENCH_TRUE@am__append_5 = random.sh
subdir = tests
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
INSTALL
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rsyslog-5.6.0/tools/omfile.c
new/rsyslog-5.6.2/tools/omfile.c
--- old/rsyslog-5.6.0/tools/omfile.c 2010-10-22 14:39:36.000000000 +0200
+++ new/rsyslog-5.6.2/tools/omfile.c 2010-11-26 09:29:44.000000000 +0100
@@ -98,7 +98,11 @@
static inline uint64
getClockFileAccess(void)
{
- return ATOMIC_INC_AND_FETCH(&clockFileAccess, &mutClock);
+#if HAVE_ATOMIC_BUILTINS_64BIT
+ return ATOMIC_INC_AND_FETCH_uint64(&clockFileAccess, &mutClock);
+#else
+ return ATOMIC_INC_AND_FETCH_unsigned(&clockFileAccess, &mutClock);
+#endif
}



++++++ rsyslog-systemd-integration.bnc656104.diff ++++++
++++ 884 lines (skipped)

++++++ rsyslog.conf.in ++++++
--- /var/tmp/diff_new_pack.3Ex5EL/_old 2010-12-05 22:59:44.000000000 +0100
+++ /var/tmp/diff_new_pack.3Ex5EL/_new 2010-12-05 22:59:44.000000000 +0100
@@ -19,8 +19,12 @@
# rsyslog v3: load input modules
# If you do not load inputs, nothing happens!

-$ModLoad immark.so # provides --MARK-- message capability
+$ModLoad immark.so # provides --MARK-- message capability (every 1 hour)
+$MarkMessagePeriod 3600
+
$ModLoad imuxsock.so # provides support for local system logging (e.g. via
logger command)
+ # reduce dupplicate log messages (last message repeated
n times)
+$RepeatedMsgReduction on

$ModLoad imklog.so # kernel logging (may be also provided by /sbin/klogd),
# see also http://www.rsyslog.com/doc-imklog.html.


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



Remember to have fun...

--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-commit+help@xxxxxxxxxxxx

< Previous Next >
This Thread
  • No further messages