commit rsyslog for openSUSE:Factory
Hello community, here is the log from the commit of package rsyslog for openSUSE:Factory checked in at Fri Mar 25 08:58:56 CET 2011. -------- --- rsyslog/rsyslog.changes 2011-02-02 17:48:18.000000000 +0100 +++ /mounts/work_src_done/STABLE/rsyslog/rsyslog.changes 2011-03-24 17:36:11.000000000 +0100 @@ -1,0 +2,30 @@ +Thu Mar 24 16:34:31 UTC 2011 - mt@suse.de + +- Updated to 5.6.5 (v5-stable) with following bugfixes: + * bugfix: failover did not work correctly if repeated msg + reduction was on. + affected directive: $ActionExecOnlyWhenPreviousIsSuspended on + * bugfix: omlibdbi did not use password from rsyslog.conf + closes: http://bugzilla.adiscon.com/show_bug.cgi?id=203 + * bugfix(kind of): tell users that config graph can currently + not be generated + closes: http://bugzilla.adiscon.com/show_bug.cgi?id=232 + * bugfix: discard action did not work under some circumstances + fixes: http://bugzilla.adiscon.com/show_bug.cgi?id=217 + (bnc#676041) + * bugfix: potential abort condition when $RepeatedMsgReduction + were set to on as well as potentially in a number of other places + where MsgDup() was used. This only happened when the imudp input + module was used and it depended on name resolution not yet had + taken place. (bnc#679030) + * bugfix: fixed a memory leak and potential abort condition + this could happen if multiple rulesets were used and some output + batches contained messages belonging to more than one ruleset. + fixes: http://bugzilla.adiscon.com/show_bug.cgi?id=226 + fixes: http://bugzilla.adiscon.com/show_bug.cgi?id=218 + * bugfix: memory leak when $RepeatedMsgReduction on was used + bug tracker: http://bugzilla.adiscon.com/show_bug.cgi?id=225 + (bnc#681568) +- Merged systemd socket activation support + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- rsyslog-5.6.3.tar.bz2 New: ---- rsyslog-5.6.5.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rsyslog.spec ++++++ --- /var/tmp/diff_new_pack.ggs7pf/_old 2011-03-25 08:55:58.000000000 +0100 +++ /var/tmp/diff_new_pack.ggs7pf/_new 2011-03-25 08:55:58.000000000 +0100 @@ -20,9 +20,9 @@ Name: rsyslog Summary: The enhanced syslogd for Linux and Unix -Version: 5.6.3 +Version: 5.6.5 Release: 1 -%define upstream_version 5.6.3 +%define upstream_version 5.6.5 %define with_dbi 0%{?suse_version} >= 1140 || 0%{?build_with_relp:1} %define with_relp 0%{?suse_version} >= 1130 || 0%{?build_with_relp:1} %define _sbindir /sbin ++++++ rsyslog-5.6.3.tar.bz2 -> rsyslog-5.6.5.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/ChangeLog new/rsyslog-5.6.5/ChangeLog --- old/rsyslog-5.6.3/ChangeLog 2011-01-26 12:42:53.000000000 +0100 +++ new/rsyslog-5.6.5/ChangeLog 2011-03-22 12:28:09.000000000 +0100 @@ -1,4 +1,32 @@ --------------------------------------------------------------------------- +Version 5.6.5 [V5-STABLE] (rgerhards), 2011-03-22 +- bugfix: failover did not work correctly if repeated msg reduction was on + affected directive was: $ActionExecOnlyWhenPreviousIsSuspended on +- bugfix: omlibdbi did not use password from rsyslog.con + closes: http://bugzilla.adiscon.com/show_bug.cgi?id=203 +- bugfix(kind of): tell users that config graph can currently not be + generated + closes: http://bugzilla.adiscon.com/show_bug.cgi?id=232 +- bugfix: discard action did not work under some circumstances + fixes: http://bugzilla.adiscon.com/show_bug.cgi?id=217 + (backport from 5.7.8) +--------------------------------------------------------------------------- +Version 5.6.4 [V5-STABLE] (rgerhards), 2011-03-03 +- bugfix: potential abort condition when $RepeatedMsgReduction set to on + as well as potentially in a number of other places where MsgDup() was + used. This only happened when the imudp input module was used and it + depended on name resolution not yet had taken place. In other words, + this was a strange problem that could lead to hard to diagnose + instability. So if you experience instability, chances are good that + this fix will help. +- bugfix: fixed a memory leak and potential abort condition + this could happen if multiple rulesets were used and some output batches + contained messages belonging to more than one ruleset. + fixes: http://bugzilla.adiscon.com/show_bug.cgi?id=226 + fixes: http://bugzilla.adiscon.com/show_bug.cgi?id=218 +- bugfix: memory leak when $RepeatedMsgReduction on was used + bug tracker: http://bugzilla.adiscon.com/show_bug.cgi?id=225 +--------------------------------------------------------------------------- Version 5.6.3 [V5-STABLE] (rgerhards), 2011-01-26 - bugfix: action processor released mememory too early, resulting in potential issue in retry cases (but very unlikely due to another @@ -13,6 +41,8 @@ - bugfix: batches which had actions in error were not properly retried in all cases - bugfix: imfile did duplicate messages under some circumstances +- bugfix: testbench was not activated if no Java was present on system + ... what actually was a left-over. Java is no longer required. --------------------------------------------------------------------------- Version 5.6.2 [V5-STABLE] (rgerhards), 2010-11-30 - bugfix: compile failed on systems without epoll_create1() @@ -615,6 +645,11 @@ - bugfix: imfile utilizes 32 bit to track offset. Most importantly, this problem can not experienced on Fedora 64 bit OS (which has 64 bit long's!) +- bugfix: abort if imfile reads file line of more than 64KiB + Thanks to Peter Eisentraut for reporting and analysing this problem. + bug tracker: http://bugzilla.adiscon.com/show_bug.cgi?id=221 +- bugfix: omlibdbi did not use password from rsyslog.con + closes: http://bugzilla.adiscon.com/show_bug.cgi?id=203 - some improvements thanks to clang's static code analyzer o overall cleanup (mostly unnecessary writes and otherwise unused stuff) o bugfix: fixed a very remote problem in msg.c which could occur when diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/action.c new/rsyslog-5.6.5/action.c --- old/rsyslog-5.6.3/action.c 2011-01-26 12:34:28.000000000 +0100 +++ new/rsyslog-5.6.5/action.c 2011-03-22 12:27:49.000000000 +0100 @@ -4,7 +4,44 @@ * * File begun on 2007-08-06 by RGerhards (extracted from syslogd.c) * - * Copyright 2007-2010 Rainer Gerhards and Adiscon GmbH. + * Some notes on processing (this hopefully makes it easier to find + * the right code in question): For performance reasons, this module + * uses different methods of message submission based on the user-selected + * configuration. This code is similar, but can not be abstracted because + * of the performanse-affecting differences in it. As such, it is often + * necessary to triple-check that everything works well in *all* modes. + * The different modes (and calling sequence) are: + * + * if set iExecEveryNthOccur > 1 || f_ReduceRepeated || iSecsExecOnceInterval + * - doSubmitToActionQComplexBatch + * - helperSubmitToActionQComplexBatch + * - doActionCallAction + * handles duplicate message processing, but in essence calls + * - actionWriteToAction + * - qqueueEnqObj + * (now queue engine processing) + * if(pThis->bWriteAllMarkMsgs == FALSE) - this is the DEFAULT + * - doSubmitToActionQNotAllMarkBatch + * - doSubmitToActionQBatch (and from here like in the else case below!) + * else + * - doSubmitToActionQBatch + * - doSubmitToActionQ + * - qqueueEnqObj + * (now queue engine processing) + * + * Note that bWriteAllMakrMsgs on or off creates almost the same processing. + * The difference ist that if WriteAllMarkMsgs is not set, we need to + * preprocess the batch and drop mark messages which are not yet due for + * writing. + * + * After dequeue, processing is as follows: + * - processBatchMain + * - processAction + * - submitBatch + * - tryDoAction + * - + * + * Copyright 2007-2011 Rainer Gerhards and Adiscon GmbH. * * This file is part of rsyslog. * @@ -898,7 +935,7 @@ if(*(pBatch->pbShutdownImmediate)) ABORT_FINALIZE(RS_RET_FORCE_TERM); if( pBatch->pElem[i].bFilterOK - && pBatch->pElem[i].state != BATCH_STATE_DISC + && pBatch->pElem[i].state != BATCH_STATE_DISC//) { && ((pAction->bExecWhenPrevSusp == 0) || pBatch->pElem[i].bPrevWasSuspended) ) { pMsg = (msg_t*) pBatch->pElem[i].pUsrp; localRet = actionProcessMessage(pAction, pMsg, pBatch->pElem[i].staticActParams); @@ -1163,11 +1200,33 @@ } +/* This submits the message to the action queue in case we do NOT need to handle repeat + * message processing. That case permits us to gain lots of freedom during processing + * and thus speed. This is also utilized to submit messages in complex case once + * the complex logic has been applied ;) + * rgerhards, 2010-06-08 + */ +static inline rsRetVal +doSubmitToActionQ(action_t *pAction, msg_t *pMsg) +{ + DEFiRet; + + if(pAction->pQueue->qType == QUEUETYPE_DIRECT) + iRet = qqueueEnqObjDirect(pAction->pQueue, (void*) MsgAddRef(pMsg)); + else + iRet = qqueueEnqObj(pAction->pQueue, pMsg->flowCtlType, (void*) MsgAddRef(pMsg)); + + RETiRet; +} + + /* This function builds up a batch of messages to be (later) * submitted to the action queue. + * Note: this function is also called from syslogd itself as part of its + * flush processing. If so, pBatch will be NULL and idxBtch undefined. */ rsRetVal -actionWriteToAction(action_t *pAction) +actionWriteToAction(action_t *pAction, batch_t *pBatch, int idxBtch) { msg_t *pMsgSave; /* to save current message pointer, necessary to restore it in case it needs to be updated (e.g. repeated msgs) */ @@ -1238,7 +1297,7 @@ pAction->f_pMsg = pMsg; /* use the new msg (pointer will be restored below) */ } - DBGPRINTF("Called action, logging to %s\n", module.GetStateName(pAction->pMod)); + DBGPRINTF("Called action(complex case), logging to %s\n", module.GetStateName(pAction->pMod)); /* now check if we need to drop the message because otherwise the action would be too * frequently called. -- rgerhards, 2008-04-08 @@ -1256,14 +1315,43 @@ FINALIZE; } - /* we use reception time, not dequeue time - this is considered more appropriate and also faster ;) -- rgerhards, 2008-09-17 */ + /* we use reception time, not dequeue time - this is considered more appropriate and also faster ;) + * rgerhards, 2008-09-17 */ pAction->tLastExec = getActNow(pAction); /* re-init time flags */ pAction->f_time = pAction->f_pMsg->ttGenTime; /* When we reach this point, we have a valid, non-disabled action. * So let's enqueue our message for execution. -- rgerhards, 2007-07-24 */ - iRet = qqueueEnqObj(pAction->pQueue, pAction->f_pMsg->flowCtlType, (void*) MsgAddRef(pAction->f_pMsg)); + if( pBatch != NULL + && (pAction->bExecWhenPrevSusp == 1 && pBatch->pElem[idxBtch].bPrevWasSuspended)) { + /* in that case, we need to create a special batch which reflects the + * suspended state. Otherwise, that information would be dropped inside + * the queue engine. TODO: in later releases (v6?) create a better + * solution than what we do here. However, for v5 this sounds much too + * intrusive. -- rgerhardsm, 2011-03-16 + * (Code is copied over from queue.c and slightly modified) + */ + batch_t singleBatch; + batch_obj_t batchObj; + int i; + memset(&batchObj, 0, sizeof(batch_obj_t)); + memset(&singleBatch, 0, sizeof(batch_t)); + batchObj.state = BATCH_STATE_RDY; + batchObj.pUsrp = (obj_t*) pAction->f_pMsg; + batchObj.bPrevWasSuspended = 1; + batchObj.bFilterOK = 1; + singleBatch.nElem = 1; /* there always is only one in direct mode */ + singleBatch.pElem = &batchObj; + + iRet = qqueueEnqObjDirectBatch(pAction->pQueue, &singleBatch); + + for(i = 0 ; i < CONF_OMOD_NUMSTRINGS_MAXSIZE ; ++i) { + free(batchObj.staticActStrings[i]); + } + } else { /* standard case, just submit */ + iRet = doSubmitToActionQ(pAction, pAction->f_pMsg); + } if(iRet == RS_RET_OK) pAction->f_prevcount = 0; /* message processed, so we start a new cycle */ @@ -1291,10 +1379,12 @@ * pthread_cleanup_push() POSIX macro... */ static inline rsRetVal -doActionCallAction(action_t *pAction, msg_t *pMsg) +doActionCallAction(action_t *pAction, batch_t *pBatch, int idxBtch) { + msg_t *pMsg; DEFiRet; + pMsg = (msg_t*)(pBatch->pElem[idxBtch].pUsrp); pAction->tActNow = -1; /* we do not yet know our current time (clear prev. value) */ /* don't output marks to recently written outputs */ @@ -1321,7 +1411,7 @@ * isolated messages), but back off so we'll flush less often in the future. */ if(getActNow(pAction) > REPEATTIME(pAction)) { - iRet = actionWriteToAction(pAction); + iRet = actionWriteToAction(pAction, pBatch, idxBtch); BACKOFF(pAction); } } else {/* new message, save it */ @@ -1330,7 +1420,7 @@ */ if(pAction->f_pMsg != NULL) { if(pAction->f_prevcount > 0) - actionWriteToAction(pAction); + actionWriteToAction(pAction, pBatch, idxBtch); /* we do not care about iRet above - I think it's right but if we have * some troubles, you know where to look at ;) -- rgerhards, 2007-08-01 */ @@ -1338,33 +1428,21 @@ } pAction->f_pMsg = MsgAddRef(pMsg); /* call the output driver */ - iRet = actionWriteToAction(pAction); + iRet = actionWriteToAction(pAction, pBatch, idxBtch); } finalize_it: - RETiRet; -} - -/* This submits the message to the action queue in case we do NOT need to handle repeat - * message processing. That case permits us to gain lots of freedom during processing - * and thus speed. - * rgerhards, 2010-06-08 - */ -static inline rsRetVal -doSubmitToActionQ(action_t *pAction, msg_t *pMsg) -{ - DEFiRet; - - if(pAction->pQueue->qType == QUEUETYPE_DIRECT) - iRet = qqueueEnqObjDirect(pAction->pQueue, (void*) MsgAddRef(pMsg)); - else - iRet = qqueueEnqObj(pAction->pQueue, pMsg->flowCtlType, (void*) MsgAddRef(pMsg)); + /* we need to update the batch to handle failover processing correctly */ + if(iRet == RS_RET_OK) { + pBatch->pElem[idxBtch].bPrevWasSuspended = 0; + } else if(iRet == RS_RET_ACTION_FAILED) { + pBatch->pElem[idxBtch].bPrevWasSuspended = 1; + } RETiRet; } - /* This submits the message to the action queue in case where we need to handle * bWriteAllMarkMessage == FALSE only. Note that we use a non-blocking CAS loop * for the synchronization. Here, we just modify the filter condition to be false when @@ -1480,8 +1558,10 @@ DBGPRINTF("Called action(complex case), logging to %s\n", module.GetStateName(pAction->pMod)); for(i = 0 ; i < batchNumMsgs(pBatch) && !*(pBatch->pbShutdownImmediate) ; ++i) { - if(pBatch->pElem[i].bFilterOK) { - doActionCallAction(pAction, (msg_t*)(pBatch->pElem[i].pUsrp)); + if( pBatch->pElem[i].bFilterOK + && pBatch->pElem[i].state != BATCH_STATE_DISC + && ((pAction->bExecWhenPrevSusp == 0) || pBatch->pElem[i].bPrevWasSuspended) ) { + doActionCallAction(pAction, pBatch, i); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/action.h new/rsyslog-5.6.5/action.h --- old/rsyslog-5.6.3/action.h 2011-01-26 12:34:28.000000000 +0100 +++ new/rsyslog-5.6.5/action.h 2011-03-22 12:27:49.000000000 +0100 @@ -101,26 +101,9 @@ rsRetVal actionDbgPrint(action_t *pThis); rsRetVal actionSetGlobalResumeInterval(int iNewVal); rsRetVal actionDoAction(action_t *pAction); -rsRetVal actionWriteToAction(action_t *pAction); +rsRetVal actionWriteToAction(action_t *pAction, batch_t *pBatch, int idxBtch); rsRetVal actionCallHUPHdlr(action_t *pAction); rsRetVal actionClassInit(void); rsRetVal addAction(action_t **ppAction, modInfo_t *pMod, void *pModData, omodStringRequest_t *pOMSR, int bSuspended); -#if 1 -#define actionIsSuspended(pThis) ((pThis)->bSuspended == 1) -#else -/* The function is a debugging aid */ -inline int actionIsSuspended(action_t *pThis) -{ - int i; - ASSERT(pThis != NULL); - i = pThis->bSuspended == 1; - dbgprintf("in IsSuspend(), returns %d\n", i); - return i; -} -#endif - #endif /* #ifndef ACTION_H_INCLUDED */ -/* - * vi:set ai: - */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/configure new/rsyslog-5.6.5/configure --- old/rsyslog-5.6.3/configure 2011-01-26 12:43:46.000000000 +0100 +++ new/rsyslog-5.6.5/configure 2011-03-22 12:28:49.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.3. +# Generated by GNU Autoconf 2.65 for rsyslog 5.6.5. # # Report bugs to <rsyslog@lists.adiscon.com>. # @@ -701,8 +701,8 @@ # Identity of this package. PACKAGE_NAME='rsyslog' PACKAGE_TARNAME='rsyslog' -PACKAGE_VERSION='5.6.3' -PACKAGE_STRING='rsyslog 5.6.3' +PACKAGE_VERSION='5.6.5' +PACKAGE_STRING='rsyslog 5.6.5' PACKAGE_BUGREPORT='rsyslog@lists.adiscon.com' 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.3 to adapt to many kinds of systems. +\`configure' configures rsyslog 5.6.5 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.3:";; + short | recursive ) echo "Configuration of rsyslog 5.6.5:";; 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.3 +rsyslog configure 5.6.5 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.3, which was +It was created by rsyslog $as_me 5.6.5, 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.3' + VERSION='5.6.5' cat >>confdefs.h <<_ACEOF @@ -15464,11 +15464,6 @@ fi -if test "$enable_testbench" = "yes"; then - if test x$HAVE_JAVAC = x; then - enable_testbench='no' - fi -fi if test x$enable_testbench = xyes; then ENABLE_TESTBENCH_TRUE= ENABLE_TESTBENCH_FALSE='#' @@ -16602,7 +16597,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.3, which was +This file was extended by rsyslog $as_me 5.6.5, which was generated by GNU Autoconf 2.65. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16668,7 +16663,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.3 +rsyslog config.status 5.6.5 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.3/configure.ac new/rsyslog-5.6.5/configure.ac --- old/rsyslog-5.6.3/configure.ac 2011-01-26 12:43:00.000000000 +0100 +++ new/rsyslog-5.6.5/configure.ac 2011-03-22 12:28:18.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.3],[rsyslog@lists.adiscon.com]) +AC_INIT([rsyslog],[5.6.5],[rsyslog@lists.adiscon.com]) AM_INIT_AUTOMAKE m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) @@ -746,11 +746,6 @@ esac], [enable_testbench=yes] ) -if test "$enable_testbench" = "yes"; then - if test x$HAVE_JAVAC = x; then - enable_testbench='no' - fi -fi AM_CONDITIONAL(ENABLE_TESTBENCH, test x$enable_testbench = xyes) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/doc/manual.html new/rsyslog-5.6.5/doc/manual.html --- old/rsyslog-5.6.3/doc/manual.html 2011-01-26 12:43:31.000000000 +0100 +++ new/rsyslog-5.6.5/doc/manual.html 2011-03-22 12:28:37.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.3 (beta branch) of rsyslog.</b> +<p><b>This documentation is for version 5.6.5 (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-5.6.3/doc/rsconf1_generateconfiggraph.html new/rsyslog-5.6.5/doc/rsconf1_generateconfiggraph.html --- old/rsyslog-5.6.3/doc/rsconf1_generateconfiggraph.html 2010-12-16 14:54:48.000000000 +0100 +++ new/rsyslog-5.6.5/doc/rsconf1_generateconfiggraph.html 2011-03-11 10:58:37.000000000 +0100 @@ -8,8 +8,14 @@ <h2>$GenerateConfigGraph</h2> <p><b>Type:</b> global configuration directive</p> <p><b>Default:</b> </p> -<p><b>Available Since:</b> 4.3.1</p> +<p><b>Available Since:</b> 4.3.1 <b>CURRENTLY NOT AVAILABLE</b></p> <p><b>Description:</b></p> +<b>This directive is currently not supported. We had to disable it when we improved the +rule engine. It is considerable effort to re-enable it. On the other hand, we are about +to add a new config system, which will make yet another config graph method necessary. +As such we have decided to currently disable this functionality and re-introduce it when +the new config system has been instantiated. +</b></p> <p>This directive permits to create (hopefully) good-looking visualizations of rsyslogd's configuration. It does not affect rsyslog operation. If the directive is specified multiple times, all but the last are ignored. If it is specified, a graph is created. This happens diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/plugins/omlibdbi/omlibdbi.c new/rsyslog-5.6.5/plugins/omlibdbi/omlibdbi.c --- old/rsyslog-5.6.3/plugins/omlibdbi/omlibdbi.c 2011-01-26 12:34:28.000000000 +0100 +++ new/rsyslog-5.6.5/plugins/omlibdbi/omlibdbi.c 2011-03-22 12:27:49.000000000 +0100 @@ -287,7 +287,7 @@ if(dbName != NULL) if((pData->dbName = (uchar*) strdup((char*)dbName)) == NULL) ABORT_FINALIZE(RS_RET_OUT_OF_MEMORY); if(pwd != NULL) - if((pData->pwd = (uchar*) strdup((char*)"")) == NULL) ABORT_FINALIZE(RS_RET_OUT_OF_MEMORY); + if((pData->pwd = (uchar*) strdup((char*)pwd)) == NULL) ABORT_FINALIZE(RS_RET_OUT_OF_MEMORY); CHKiRet(cflineParseTemplateName(&p, *ppOMSR, 0, OMSR_RQD_TPL_OPT_SQL, (uchar*) " StdDBFmt")); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/runtime/batch.h new/rsyslog-5.6.5/runtime/batch.h --- old/rsyslog-5.6.3/runtime/batch.h 2011-01-10 12:41:13.000000000 +0100 +++ new/rsyslog-5.6.5/runtime/batch.h 2011-03-11 10:58:37.000000000 +0100 @@ -136,11 +136,16 @@ /* copy one batch element to another. * This creates a complete duplicate in those cases where * it is needed. Use duplication only when absolutely necessary! + * Note that all working fields are reset to zeros. If that were + * not done, we would have potential problems with invalid + * or double pointer frees. * rgerhards, 2010-06-10 */ static inline void batchCopyElem(batch_obj_t *pDest, batch_obj_t *pSrc) { - memcpy(pDest, pSrc, sizeof(batch_obj_t)); + memset(pDest, 0, sizeof(batch_obj_t)); + pDest->pUsrp = pSrc->pUsrp; + pDest->state = pSrc->state; } @@ -171,6 +176,7 @@ static inline rsRetVal batchInit(batch_t *pBatch, int maxElem) { DEFiRet; + pBatch->iDoneUpTo = 0; pBatch->maxElem = maxElem; CHKmalloc(pBatch->pElem = calloc((size_t)maxElem, sizeof(batch_obj_t))); // TODO: replace calloc by inidividual writes? diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/runtime/msg.c new/rsyslog-5.6.5/runtime/msg.c --- old/rsyslog-5.6.3/runtime/msg.c 2011-01-26 12:34:28.000000000 +0100 +++ new/rsyslog-5.6.5/runtime/msg.c 2011-03-22 12:27:49.000000000 +0100 @@ -922,13 +922,14 @@ pNew->iLenMSG = pOld->iLenMSG; pNew->iLenTAG = pOld->iLenTAG; pNew->iLenHOSTNAME = pOld->iLenHOSTNAME; - if((pOld->msgFlags & NEEDS_DNSRESOL) == 1) { + if((pOld->msgFlags & NEEDS_DNSRESOL)) { localRet = msgSetFromSockinfo(pNew, pOld->rcvFrom.pfrominet); if(localRet != RS_RET_OK) { /* if something fails, we accept loss of this property, it is * better than losing the whole message. */ pNew->msgFlags &= ~NEEDS_DNSRESOL; + pNew->rcvFrom.pRcvFrom = NULL; /* make sure no dangling values */ } } else { if(pOld->rcvFrom.pRcvFrom != NULL) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/runtime/queue.c new/rsyslog-5.6.5/runtime/queue.c --- old/rsyslog-5.6.3/runtime/queue.c 2011-01-26 12:35:44.000000000 +0100 +++ new/rsyslog-5.6.5/runtime/queue.c 2011-03-22 12:27:49.000000000 +0100 @@ -839,6 +839,7 @@ { batch_t singleBatch; batch_obj_t batchObj; + int i; DEFiRet; //TODO: init batchObj (states _OK and new fields -- CHECK) @@ -860,6 +861,10 @@ singleBatch.nElem = 1; /* there always is only one in direct mode */ singleBatch.pElem = &batchObj; iRet = pThis->pConsumer(pThis->pUsr, &singleBatch, &pThis->bShutdownImmediate); + /* delete the batch string params: TODO: create its own "class" for this */ + for(i = 0 ; i < CONF_OMOD_NUMSTRINGS_MAXSIZE ; ++i) { + free(batchObj.staticActStrings[i]); + } objDestruct(pUsr); RETiRet; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/runtime/ruleset.c new/rsyslog-5.6.5/runtime/ruleset.c --- old/rsyslog-5.6.3/runtime/ruleset.c 2011-01-26 12:34:28.000000000 +0100 +++ new/rsyslog-5.6.5/runtime/ruleset.c 2011-03-17 12:25:53.000000000 +0100 @@ -171,35 +171,40 @@ int i; int iStart; /* start index of partial batch */ int iNew; /* index for new (temporary) batch */ + int bHaveUnprocessed; /* do we (still) have unprocessed entries? (loop term predicate) */ DEFiRet; - CHKiRet(batchInit(&snglRuleBatch, pBatch->nElem)); - snglRuleBatch.pbShutdownImmediate = pBatch->pbShutdownImmediate; - - while(1) { /* loop broken inside */ + do { + bHaveUnprocessed = 0; /* search for first unprocessed element */ for(iStart = 0 ; iStart < pBatch->nElem && pBatch->pElem[iStart].state == BATCH_STATE_DISC ; ++iStart) /* just search, no action */; - if(iStart == pBatch->nElem) - FINALIZE; /* everything processed */ + break; /* everything processed */ /* prepare temporary batch */ + CHKiRet(batchInit(&snglRuleBatch, pBatch->nElem)); + snglRuleBatch.pbShutdownImmediate = pBatch->pbShutdownImmediate; currRuleset = batchElemGetRuleset(pBatch, iStart); iNew = 0; for(i = iStart ; i < pBatch->nElem ; ++i) { if(batchElemGetRuleset(pBatch, i) == currRuleset) { - batchCopyElem(&(snglRuleBatch.pElem[iNew++]), &(pBatch->pElem[i])); + /* for performance reasons, we copy only those members that we actually need */ + snglRuleBatch.pElem[iNew].pUsrp = pBatch->pElem[i].pUsrp; + snglRuleBatch.pElem[iNew].state = pBatch->pElem[i].state; + ++iNew; /* We indicate the element also as done, so it will not be processed again */ pBatch->pElem[i].state = BATCH_STATE_DISC; + } else { + bHaveUnprocessed = 1; } } snglRuleBatch.nElem = iNew; /* was left just right by the for loop */ batchSetSingleRuleset(&snglRuleBatch, 1); /* process temp batch */ processBatch(&snglRuleBatch); - } - batchFree(&snglRuleBatch); + batchFree(&snglRuleBatch); + } while(bHaveUnprocessed == 1); finalize_it: RETiRet; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/runtime/stringbuf.c new/rsyslog-5.6.5/runtime/stringbuf.c --- old/rsyslog-5.6.3/runtime/stringbuf.c 2011-01-26 12:34:28.000000000 +0100 +++ new/rsyslog-5.6.5/runtime/stringbuf.c 2011-03-17 12:25:53.000000000 +0100 @@ -156,7 +156,7 @@ rsCStrExtendBuf(cstr_t *pThis, size_t iMinNeeded) { uchar *pNewBuf; - unsigned short iNewSize; + size_t iNewSize; DEFiRet; /* first compute the new size needed */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/Makefile.am new/rsyslog-5.6.5/tests/Makefile.am --- old/rsyslog-5.6.3/tests/Makefile.am 2011-01-26 12:35:44.000000000 +0100 +++ new/rsyslog-5.6.5/tests/Makefile.am 2011-03-22 12:27:49.000000000 +0100 @@ -1,6 +1,6 @@ if ENABLE_TESTBENCH TESTRUNS = rt_init rscript -check_PROGRAMS = $(TESTRUNS) ourtail nettester tcpflood chkseq msleep randomgen diagtalker uxsockrcvr +check_PROGRAMS = $(TESTRUNS) ourtail nettester tcpflood chkseq msleep randomgen diagtalker uxsockrcvr inputfilegen TESTS = $(TESTRUNS) cfg.sh \ arrayqueue.sh \ linkedlistqueue.sh \ @@ -46,6 +46,12 @@ pipe_noreader.sh \ dircreate_dflt.sh \ dircreate_off.sh \ + discard-rptdmsg.sh \ + discard.sh \ + failover-basic.sh \ + failover-rptd.sh \ + failover-no-rptd.sh \ + failover-no-basic.sh \ queue-persist.sh if ENABLE_IMPTCP @@ -68,7 +74,6 @@ inputname.sh \ threadingmq.sh \ threadingmqaq.sh \ - discard.sh \ badqi.sh \ tabescape_dflt.sh \ tabescape_off.sh \ @@ -84,6 +89,10 @@ TESTS += random.sh endif +if ENABLE_IMFILE +TESTS += imfile-basic.sh +endif + endif # if ENABLE_TESTBENCH TESTS_ENVIRONMENT = RSYSLOG_MODDIR='$(abs_top_builddir)'/runtime/.libs/ @@ -212,6 +221,16 @@ omod-if-array.sh \ discard.sh \ testsuites/discard.conf \ + failover-no-rptd.sh \ + testsuites/failover-no-rptd.conf \ + failover-no-basic.sh \ + testsuites/failover-no-basic.conf \ + failover-rptd.sh \ + testsuites/failover-rptd.conf \ + failover-basic.sh \ + testsuites/failover-basic.conf \ + discard-rptdmsg.sh \ + testsuites/discard-rptdmsg.conf \ diag.sh \ testsuites/diag-common.conf \ testsuites/diag-common2.conf \ @@ -275,6 +294,8 @@ testsuites/complex1.conf \ random.sh \ testsuites/random.conf \ + imfile-basic.sh \ + testsuites/imfile-basic.conf \ dynfile_invld_async.sh \ dynfile_invld_sync.sh \ dynfile_cachemiss.sh \ @@ -334,6 +355,9 @@ randomgen_SOURCES = randomgen.c randomgen_LDADD = $(SOL_LIBS) +inputfilegen_SOURCES = inputfilegen.c +inputfilegen_LDADD = $(SOL_LIBS) + nettester_SOURCES = nettester.c getline.c nettester_LDADD = $(SOL_LIBS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/Makefile.in new/rsyslog-5.6.5/tests/Makefile.in --- old/rsyslog-5.6.3/tests/Makefile.in 2011-01-26 12:43:54.000000000 +0100 +++ new/rsyslog-5.6.5/tests/Makefile.in 2011-03-22 12:28:55.000000000 +0100 @@ -37,7 +37,8 @@ @ENABLE_TESTBENCH_TRUE@ ourtail$(EXEEXT) nettester$(EXEEXT) \ @ENABLE_TESTBENCH_TRUE@ tcpflood$(EXEEXT) chkseq$(EXEEXT) \ @ENABLE_TESTBENCH_TRUE@ msleep$(EXEEXT) randomgen$(EXEEXT) \ -@ENABLE_TESTBENCH_TRUE@ diagtalker$(EXEEXT) uxsockrcvr$(EXEEXT) +@ENABLE_TESTBENCH_TRUE@ diagtalker$(EXEEXT) uxsockrcvr$(EXEEXT) \ +@ENABLE_TESTBENCH_TRUE@ inputfilegen$(EXEEXT) @ENABLE_TESTBENCH_TRUE@TESTS = $(am__EXEEXT_1) cfg.sh arrayqueue.sh \ @ENABLE_TESTBENCH_TRUE@ linkedlistqueue.sh da-mainmsg-q.sh \ @ENABLE_TESTBENCH_TRUE@ validation-run.sh imtcp-multiport.sh \ @@ -63,10 +64,13 @@ @ENABLE_TESTBENCH_TRUE@ execonlywhenprevsuspended3.sh \ @ENABLE_TESTBENCH_TRUE@ execonlywhenprevsuspended4.sh \ @ENABLE_TESTBENCH_TRUE@ pipe_noreader.sh dircreate_dflt.sh \ -@ENABLE_TESTBENCH_TRUE@ dircreate_off.sh queue-persist.sh \ +@ENABLE_TESTBENCH_TRUE@ dircreate_off.sh discard-rptdmsg.sh \ +@ENABLE_TESTBENCH_TRUE@ discard.sh failover-basic.sh \ +@ENABLE_TESTBENCH_TRUE@ failover-rptd.sh failover-no-rptd.sh \ +@ENABLE_TESTBENCH_TRUE@ failover-no-basic.sh queue-persist.sh \ @ENABLE_TESTBENCH_TRUE@ $(am__append_1) $(am__append_2) \ @ENABLE_TESTBENCH_TRUE@ $(am__append_3) $(am__append_4) \ -@ENABLE_TESTBENCH_TRUE@ $(am__append_5) +@ENABLE_TESTBENCH_TRUE@ $(am__append_5) $(am__append_6) @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 \ @@ -82,7 +86,6 @@ @ENABLE_OMSTDOUT_TRUE@@ENABLE_TESTBENCH_TRUE@ inputname.sh \ @ENABLE_OMSTDOUT_TRUE@@ENABLE_TESTBENCH_TRUE@ threadingmq.sh \ @ENABLE_OMSTDOUT_TRUE@@ENABLE_TESTBENCH_TRUE@ threadingmqaq.sh \ -@ENABLE_OMSTDOUT_TRUE@@ENABLE_TESTBENCH_TRUE@ discard.sh \ @ENABLE_OMSTDOUT_TRUE@@ENABLE_TESTBENCH_TRUE@ badqi.sh \ @ENABLE_OMSTDOUT_TRUE@@ENABLE_TESTBENCH_TRUE@ tabescape_dflt.sh \ @ENABLE_OMSTDOUT_TRUE@@ENABLE_TESTBENCH_TRUE@ tabescape_off.sh \ @@ -92,6 +95,7 @@ @ENABLE_OMRULESET_TRUE@@ENABLE_TESTBENCH_TRUE@ omruleset-queue.sh @ENABLE_EXTENDED_TESTS_TRUE@@ENABLE_TESTBENCH_TRUE@am__append_5 = random.sh +@ENABLE_IMFILE_TRUE@@ENABLE_TESTBENCH_TRUE@am__append_6 = imfile-basic.sh subdir = tests DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ INSTALL @@ -119,6 +123,9 @@ diagtalker_OBJECTS = $(am_diagtalker_OBJECTS) am__DEPENDENCIES_1 = diagtalker_DEPENDENCIES = $(am__DEPENDENCIES_1) +am_inputfilegen_OBJECTS = inputfilegen.$(OBJEXT) +inputfilegen_OBJECTS = $(am_inputfilegen_OBJECTS) +inputfilegen_DEPENDENCIES = $(am__DEPENDENCIES_1) am_msleep_OBJECTS = msleep.$(OBJEXT) msleep_OBJECTS = $(am_msleep_OBJECTS) msleep_LDADD = $(LDADD) @@ -180,14 +187,14 @@ AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(chkseq_SOURCES) $(diagtalker_SOURCES) $(msleep_SOURCES) \ - $(nettester_SOURCES) $(ourtail_SOURCES) $(randomgen_SOURCES) \ - $(rscript_SOURCES) $(rt_init_SOURCES) $(tcpflood_SOURCES) \ - $(uxsockrcvr_SOURCES) +SOURCES = $(chkseq_SOURCES) $(diagtalker_SOURCES) \ + $(inputfilegen_SOURCES) $(msleep_SOURCES) $(nettester_SOURCES) \ + $(ourtail_SOURCES) $(randomgen_SOURCES) $(rscript_SOURCES) \ + $(rt_init_SOURCES) $(tcpflood_SOURCES) $(uxsockrcvr_SOURCES) DIST_SOURCES = $(chkseq_SOURCES) $(diagtalker_SOURCES) \ - $(msleep_SOURCES) $(nettester_SOURCES) $(ourtail_SOURCES) \ - $(randomgen_SOURCES) $(rscript_SOURCES) $(rt_init_SOURCES) \ - $(tcpflood_SOURCES) $(uxsockrcvr_SOURCES) + $(inputfilegen_SOURCES) $(msleep_SOURCES) $(nettester_SOURCES) \ + $(ourtail_SOURCES) $(randomgen_SOURCES) $(rscript_SOURCES) \ + $(rt_init_SOURCES) $(tcpflood_SOURCES) $(uxsockrcvr_SOURCES) ETAGS = etags CTAGS = ctags am__tty_colors = \ @@ -464,6 +471,16 @@ omod-if-array.sh \ discard.sh \ testsuites/discard.conf \ + failover-no-rptd.sh \ + testsuites/failover-no-rptd.conf \ + failover-no-basic.sh \ + testsuites/failover-no-basic.conf \ + failover-rptd.sh \ + testsuites/failover-rptd.conf \ + failover-basic.sh \ + testsuites/failover-basic.conf \ + discard-rptdmsg.sh \ + testsuites/discard-rptdmsg.conf \ diag.sh \ testsuites/diag-common.conf \ testsuites/diag-common2.conf \ @@ -527,6 +544,8 @@ testsuites/complex1.conf \ random.sh \ testsuites/random.conf \ + imfile-basic.sh \ + testsuites/imfile-basic.conf \ dynfile_invld_async.sh \ dynfile_invld_sync.sh \ dynfile_cachemiss.sh \ @@ -581,6 +600,8 @@ diagtalker_LDADD = $(SOL_LIBS) randomgen_SOURCES = randomgen.c randomgen_LDADD = $(SOL_LIBS) +inputfilegen_SOURCES = inputfilegen.c +inputfilegen_LDADD = $(SOL_LIBS) nettester_SOURCES = nettester.c getline.c nettester_LDADD = $(SOL_LIBS) rt_init_SOURCES = rt-init.c $(test_files) @@ -640,6 +661,9 @@ diagtalker$(EXEEXT): $(diagtalker_OBJECTS) $(diagtalker_DEPENDENCIES) @rm -f diagtalker$(EXEEXT) $(AM_V_CCLD)$(LINK) $(diagtalker_OBJECTS) $(diagtalker_LDADD) $(LIBS) +inputfilegen$(EXEEXT): $(inputfilegen_OBJECTS) $(inputfilegen_DEPENDENCIES) + @rm -f inputfilegen$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(inputfilegen_OBJECTS) $(inputfilegen_LDADD) $(LIBS) msleep$(EXEEXT): $(msleep_OBJECTS) $(msleep_DEPENDENCIES) @rm -f msleep$(EXEEXT) $(AM_V_CCLD)$(LINK) $(msleep_OBJECTS) $(msleep_LDADD) $(LIBS) @@ -674,6 +698,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chkseq.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diagtalker.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getline.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inputfilegen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msleep.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nettester.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ourtail.Po@am__quote@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/diag.sh new/rsyslog-5.6.5/tests/diag.sh --- old/rsyslog-5.6.3/tests/diag.sh 2011-01-10 12:10:50.000000000 +0100 +++ new/rsyslog-5.6.5/tests/diag.sh 2011-03-22 12:27:49.000000000 +0100 @@ -10,7 +10,7 @@ #valgrind="valgrind --tool=helgrind --log-fd=1" #valgrind="valgrind --tool=exp-ptrcheck --log-fd=1" #set -o xtrace -#export RSYSLOG_DEBUG="debug nostdout" +#export RSYSLOG_DEBUG="debug nologfuncflow nostdout" #export RSYSLOG_DEBUGLOG="log" case $1 in 'init') $srcdir/killrsyslog.sh # kill rsyslogd if it runs for some reason @@ -22,6 +22,7 @@ rm -f work rsyslog.out.log rsyslog2.out.log rsyslog.out.log.save # common work files rm -rf test-spool test-logdir rm -f rsyslog.out.*.log work-presort rsyslog.pipe + rm -f rsyslog.input rm -f core.* vgcore.* mkdir test-spool ;; @@ -30,6 +31,7 @@ rm -f work rsyslog.out.log rsyslog2.out.log rsyslog.out.log.save # common work files rm -rf test-spool test-logdir rm -f rsyslog.out.*.log rsyslog.random.data work-presort rsyslog.pipe + rm -f rsyslog.input stat-file1 echo ------------------------------------------------------------------------------- ;; 'startup') # start rsyslogd with default params. $2 is the config file name to use diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/discard-rptdmsg.sh new/rsyslog-5.6.5/tests/discard-rptdmsg.sh --- old/rsyslog-5.6.3/tests/discard-rptdmsg.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/rsyslog-5.6.5/tests/discard-rptdmsg.sh 2011-03-22 12:27:49.000000000 +0100 @@ -0,0 +1,17 @@ +# Test for discard-rptdmsg functionality +# This test checks if discard-rptdmsg works. It is not a perfect test but +# will find at least segfaults and obviously not discard-rptdmsged messages. +# added 2009-07-30 by Rgerhards +# This file is part of the rsyslog project, released under GPLv3 +# uncomment for debugging support: +echo =============================================================================== +echo \[discard-rptdmsg.sh\]: testing discard-rptdmsg functionality +source $srcdir/diag.sh init +source $srcdir/diag.sh startup discard-rptdmsg.conf +# 20000 messages should be enough - the disk test is slow enough ;) +sleep 4 +source $srcdir/diag.sh tcpflood -m10 -i1 +source $srcdir/diag.sh shutdown-when-empty # shut down rsyslogd when done processing messages +source $srcdir/diag.sh wait-shutdown +source $srcdir/diag.sh seq-check 2 10 +source $srcdir/diag.sh exit diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/failover-basic.sh new/rsyslog-5.6.5/tests/failover-basic.sh --- old/rsyslog-5.6.3/tests/failover-basic.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/rsyslog-5.6.5/tests/failover-basic.sh 2011-03-17 12:25:53.000000000 +0100 @@ -0,0 +1,12 @@ +# This file is part of the rsyslog project, released under GPLv3 +echo =============================================================================== +echo \[failover-basic.sh\]: basic test for failover functionality +source $srcdir/diag.sh init +source $srcdir/diag.sh startup failover-basic.conf +source $srcdir/diag.sh injectmsg 0 5000 +echo doing shutdown +source $srcdir/diag.sh shutdown-when-empty +echo wait on shutdown +source $srcdir/diag.sh wait-shutdown +source $srcdir/diag.sh seq-check 0 4999 +source $srcdir/diag.sh exit diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/failover-no-basic.sh new/rsyslog-5.6.5/tests/failover-no-basic.sh --- old/rsyslog-5.6.3/tests/failover-no-basic.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/rsyslog-5.6.5/tests/failover-no-basic.sh 2011-03-17 12:25:53.000000000 +0100 @@ -0,0 +1,19 @@ +# This file is part of the rsyslog project, released under GPLv3 +echo =============================================================================== +echo \[failover-no-basic.sh\]: basic test for failover functionality - no failover +source $srcdir/diag.sh init +source $srcdir/diag.sh startup failover-no-basic.conf +source $srcdir/diag.sh injectmsg 0 5000 +echo doing shutdown +source $srcdir/diag.sh shutdown-when-empty +echo wait on shutdown +source $srcdir/diag.sh wait-shutdown +# now we need our custom logic to see if the result file is empty +# (what it should be!) +cmp rsyslog.out.log /dev/null +if [ $? -eq 1 ] +then + echo "ERROR, output file not empty" + exit 1 +fi +source $srcdir/diag.sh exit diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/failover-no-rptd.sh new/rsyslog-5.6.5/tests/failover-no-rptd.sh --- old/rsyslog-5.6.3/tests/failover-no-rptd.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/rsyslog-5.6.5/tests/failover-no-rptd.sh 2011-03-17 12:25:53.000000000 +0100 @@ -0,0 +1,19 @@ +# This file is part of the rsyslog project, released under GPLv3 +echo =============================================================================== +echo \[failover-no-rptd.sh\]: rptd test for failover functionality - no failover +source $srcdir/diag.sh init +source $srcdir/diag.sh startup failover-no-rptd.conf +source $srcdir/diag.sh injectmsg 0 5000 +echo doing shutdown +source $srcdir/diag.sh shutdown-when-empty +echo wait on shutdown +source $srcdir/diag.sh wait-shutdown +# now we need our custom logic to see if the result file is empty +# (what it should be!) +cmp rsyslog.out.log /dev/null +if [ $? -eq 1 ] +then + echo "ERROR, output file not empty" + exit 1 +fi +source $srcdir/diag.sh exit diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/failover-rptd.sh new/rsyslog-5.6.5/tests/failover-rptd.sh --- old/rsyslog-5.6.3/tests/failover-rptd.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/rsyslog-5.6.5/tests/failover-rptd.sh 2011-03-17 12:25:53.000000000 +0100 @@ -0,0 +1,12 @@ +# This file is part of the rsyslog project, released under GPLv3 +echo =============================================================================== +echo \[failover-rptd.sh\]: rptd test for failover functionality +source $srcdir/diag.sh init +source $srcdir/diag.sh startup failover-rptd.conf +source $srcdir/diag.sh injectmsg 0 5000 +echo doing shutdown +source $srcdir/diag.sh shutdown-when-empty +echo wait on shutdown +source $srcdir/diag.sh wait-shutdown +source $srcdir/diag.sh seq-check 0 4999 +source $srcdir/diag.sh exit diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/imfile-basic.sh new/rsyslog-5.6.5/tests/imfile-basic.sh --- old/rsyslog-5.6.3/tests/imfile-basic.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/rsyslog-5.6.5/tests/imfile-basic.sh 2011-03-14 09:38:32.000000000 +0100 @@ -0,0 +1,14 @@ +# This is part of the rsyslog testbench, licensed under GPLv3 +echo [imfile-basic.sh] +source $srcdir/diag.sh init +# generate input file first. Note that rsyslog processes it as +# soon as it start up (so the file should exist at that point). +./inputfilegen 50000 > rsyslog.input +ls -l rsyslog.input +source $srcdir/diag.sh startup imfile-basic.conf +# sleep a little to give rsyslog a chance to begin processing +sleep 1 +source $srcdir/diag.sh shutdown-when-empty # shut down rsyslogd when done processing messages +source $srcdir/diag.sh wait-shutdown # we need to wait until rsyslogd is finished! +source $srcdir/diag.sh seq-check 0 49999 +source $srcdir/diag.sh exit diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/imtcp_conndrop.sh new/rsyslog-5.6.5/tests/imtcp_conndrop.sh --- old/rsyslog-5.6.3/tests/imtcp_conndrop.sh 2011-01-10 08:34:33.000000000 +0100 +++ new/rsyslog-5.6.5/tests/imtcp_conndrop.sh 2011-03-22 12:27:49.000000000 +0100 @@ -6,7 +6,7 @@ echo TEST: \[imtcp_conndrop.sh\]: test imtcp with random connection drops cat rsyslog.action.1.include source $srcdir/diag.sh init -source $srcdir/diag.sh startup imptcp_large.conf +source $srcdir/diag.sh startup imtcp_conndrop.conf # 100 byte messages to gain more practical data use source $srcdir/diag.sh tcpflood -c20 -m50000 -r -d100 -P129 -D sleep 4 # due to large messages, we need this time for the tcp receiver to settle... diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/inputfilegen.c new/rsyslog-5.6.5/tests/inputfilegen.c --- old/rsyslog-5.6.3/tests/inputfilegen.c 1970-01-01 01:00:00.000000000 +0100 +++ new/rsyslog-5.6.5/tests/inputfilegen.c 2011-03-14 09:38:32.000000000 +0100 @@ -0,0 +1,23 @@ +/* generate an input file suitable for use by the testbench + * Copyright (C) 2011 by Rainer Gerhards and Adiscon GmbH. + * Part of rsyslog, licensed under GPLv3 + */ +#include <stdio.h> +#include <stdlib.h> + +int main(int argc, char* argv[]) +{ + int nmsgs; + int i; + + if(argc != 2) { + fprintf(stderr, "usage: inputfilegen num-messages\n"); + return 1; + } + + nmsgs = atoi(argv[1]); + for(i = 0 ; i < nmsgs ; ++i) { + printf("msgnum:%8.8d:\n", i); + } + return 0; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/random.sh new/rsyslog-5.6.5/tests/random.sh --- old/rsyslog-5.6.3/tests/random.sh 2010-12-17 16:20:03.000000000 +0100 +++ new/rsyslog-5.6.5/tests/random.sh 2011-03-14 09:38:32.000000000 +0100 @@ -5,9 +5,6 @@ echo =============================================================================== echo TEST: \[random.sh\]: testing random data source $srcdir/diag.sh init -# uncomment for debugging support: -#export RSYSLOG_DEBUG="debug nostdout noprintmutexaction" -#export RSYSLOG_DEBUGLOG="log" source $srcdir/diag.sh startup random.conf # generate random data ./randomgen -f rsyslog.random.data -s 100000 @@ -17,4 +14,5 @@ source $srcdir/diag.sh wait-shutdown # and wait for it to terminate # we do not check anything yet, the point is if rsyslog survived ;) # TODO: check for exit message, but we'll notice an abort anyhow, so not that important +rm -f random.data source $srcdir/diag.sh exit diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/tcpflood.c new/rsyslog-5.6.5/tests/tcpflood.c --- old/rsyslog-5.6.3/tests/tcpflood.c 2011-01-26 12:35:44.000000000 +0100 +++ new/rsyslog-5.6.5/tests/tcpflood.c 2011-03-22 12:27:49.000000000 +0100 @@ -355,6 +355,7 @@ int ret = 0; int opt; struct sigaction sigAct; + struct rlimit maxFiles; static char buf[1024]; srand(time(NULL)); /* seed is good enough for our needs */ @@ -431,6 +432,9 @@ maxFiles.rlim_max = numConnections + 20; if(setrlimit(RLIMIT_NOFILE, &maxFiles) < 0) { perror("setrlimit to increase file handles failed"); + fprintf(stderr, + "could net set sufficiently large number of " + "open files for required connection count!\n"); exit(1); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/testsuites/discard-rptdmsg.conf new/rsyslog-5.6.5/tests/testsuites/discard-rptdmsg.conf --- old/rsyslog-5.6.3/tests/testsuites/discard-rptdmsg.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/rsyslog-5.6.5/tests/testsuites/discard-rptdmsg.conf 2011-03-11 10:58:37.000000000 +0100 @@ -0,0 +1,15 @@ +# Test for discard functionality +# rgerhards, 2009-07-30 +$IncludeConfig diag-common.conf + +$ModLoad ../plugins/imtcp/.libs/imtcp +$MainMsgQueueTimeoutShutdown 10000 +$InputTCPServerRun 13514 + +$RepeatedMsgReduction on + +:msg, contains, "00000001" ~ + +$template outfmt,"%msg:F,58:2%\n" +$template dynfile,"rsyslog.out.log" # trick to use relative path names! +:msg, contains, "msgnum:" ?dynfile;outfmt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/testsuites/failover-basic.conf new/rsyslog-5.6.5/tests/testsuites/failover-basic.conf --- old/rsyslog-5.6.3/tests/testsuites/failover-basic.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/rsyslog-5.6.5/tests/testsuites/failover-basic.conf 2011-03-17 12:25:53.000000000 +0100 @@ -0,0 +1,8 @@ +# see the equally-named .sh file for details +$IncludeConfig diag-common.conf + +$template outfmt,"%msg:F,58:2%\n" +# note: the target server shall not be available! +:msg, contains, "msgnum:" @@127.0.0.1:13514 +$ActionExecOnlyWhenPreviousIsSuspended on +& ./rsyslog.out.log;outfmt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/testsuites/failover-no-basic.conf new/rsyslog-5.6.5/tests/testsuites/failover-no-basic.conf --- old/rsyslog-5.6.3/tests/testsuites/failover-no-basic.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/rsyslog-5.6.5/tests/testsuites/failover-no-basic.conf 2011-03-17 12:25:53.000000000 +0100 @@ -0,0 +1,9 @@ +# see the equally-named .sh file for details +$IncludeConfig diag-common.conf + +$RepeatedMsgReduction off + +# second action should never execute +:msg, contains, "msgnum:" /dev/null +$ActionExecOnlyWhenPreviousIsSuspended on +& ./rsyslog.out.log diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/testsuites/failover-no-rptd.conf new/rsyslog-5.6.5/tests/testsuites/failover-no-rptd.conf --- old/rsyslog-5.6.3/tests/testsuites/failover-no-rptd.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/rsyslog-5.6.5/tests/testsuites/failover-no-rptd.conf 2011-03-17 12:25:53.000000000 +0100 @@ -0,0 +1,9 @@ +# see the equally-named .sh file for details +$IncludeConfig diag-common.conf + +$RepeatedMsgReduction on + +# second action should never execute +:msg, contains, "msgnum:" /dev/null +$ActionExecOnlyWhenPreviousIsSuspended on +& ./rsyslog.out.log diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/testsuites/failover-rptd.conf new/rsyslog-5.6.5/tests/testsuites/failover-rptd.conf --- old/rsyslog-5.6.3/tests/testsuites/failover-rptd.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/rsyslog-5.6.5/tests/testsuites/failover-rptd.conf 2011-03-17 12:25:53.000000000 +0100 @@ -0,0 +1,10 @@ +# see the equally-named .sh file for details +$IncludeConfig diag-common.conf + +$RepeatedMsgReduction on + +$template outfmt,"%msg:F,58:2%\n" +# note: the target server shall not be available! +:msg, contains, "msgnum:" @@127.0.0.1:13514 +$ActionExecOnlyWhenPreviousIsSuspended on +& ./rsyslog.out.log;outfmt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/testsuites/imfile-basic.conf new/rsyslog-5.6.5/tests/testsuites/imfile-basic.conf --- old/rsyslog-5.6.3/tests/testsuites/imfile-basic.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/rsyslog-5.6.5/tests/testsuites/imfile-basic.conf 2011-03-14 12:13:56.000000000 +0100 @@ -0,0 +1,12 @@ +$IncludeConfig diag-common.conf + +$ModLoad ../plugins/imfile/.libs/imfile +$InputFileName ./rsyslog.input +$InputFileTag file: +$InputFileStateFile stat-file1 +$InputFileSeverity error +$InputFileFacility local7 +$InputRunFileMonitor + +$template outfmt,"%msg:F,58:2%\n" +:msg, contains, "msgnum:" ./rsyslog.out.log;outfmt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/testsuites/samples.parse-nodate new/rsyslog-5.6.5/tests/testsuites/samples.parse-nodate --- old/rsyslog-5.6.3/tests/testsuites/samples.parse-nodate 2010-12-16 14:54:48.000000000 +0100 +++ new/rsyslog-5.6.5/tests/testsuites/samples.parse-nodate 2011-03-11 10:58:37.000000000 +0100 @@ -1,5 +1,5 @@ <27>xapi: [error|xen3|15|Guest liveness monitor D:bca30ab3f1c1|master_connection] Connection to master died. I will continue to retry indefinitely (supressing future logging of this message) -27,daemon,err,localhost,xapi,xapi:, [error|xen3|15|Guest liveness monitor D:bca30ab3f1c1|master_connection] Connection to master died. I will continue to retry indefinitely (supressing future logging of this message) +27,daemon,err,localhost.localdomain,xapi,xapi:, [error|xen3|15|Guest liveness monitor D:bca30ab3f1c1|master_connection] Connection to master died. I will continue to retry indefinitely (supressing future logging of this message) # a message with just text (as permitted by rfc 3164) # it is questionable if the current sample result is really correct as of 3164! This is a message! diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/testsuites/samples.snare_ccoff_udp new/rsyslog-5.6.5/tests/testsuites/samples.snare_ccoff_udp --- old/rsyslog-5.6.3/tests/testsuites/samples.snare_ccoff_udp 2010-12-16 14:54:48.000000000 +0100 +++ new/rsyslog-5.6.5/tests/testsuites/samples.snare_ccoff_udp 2011-03-11 10:58:37.000000000 +0100 @@ -3,7 +3,7 @@ # *real* cases (just mangled to anonymize them...) # Sample 1 - note the absence of PRI! windowsserver MSWinEventLog 1 Security 1167 Fri Mar 19 15:33:30 2010 540 Security SYSTEM User Success Audit WINDOWSSERVER Logon/Logoff Successful Network Logon: User Name: WINDOWSSERVER$ Domain: DOMX Logon ID: (0x0,0xF88396) Logon Type: 3 Logon Process: Kerberos Authentication Package: Kerberos Workstation Name: Logon GUID: {79b6eb79-7bcc-8a2e-7dad-953c51dc00fd} Caller User Name: - Caller Domain: - Caller Logon ID: - Caller Process ID: - Transited Services: - Source Network Address: 10.11.11.3 Source Port: 3306 733\n -13,user,notice,localhost,windowsserver,windowsserver MSWinEventLog 1 Security 1167 Fri, Mar 19 15:33:30 2010 540 Security SYSTEM User Success Audit WINDOWSSERVER Logon/Logoff Successful Network Logon: User Name: WINDOWSSERVER$ Domain: DOMX Logon ID: (0x0,0xF88396) Logon Type: 3 Logon Process: Kerberos Authentication Package: Kerberos Workstation Name: Logon GUID: {79b6eb79-7bcc-8a2e-7dad-953c51dc00fd} Caller User Name: - Caller Domain: - Caller Logon ID: - Caller Process ID: - Transited Services: - Source Network Address: 10.11.11.3 Source Port: 3306 733 +13,user,notice,localhost.localdomain,windowsserver,windowsserver MSWinEventLog 1 Security 1167 Fri, Mar 19 15:33:30 2010 540 Security SYSTEM User Success Audit WINDOWSSERVER Logon/Logoff Successful Network Logon: User Name: WINDOWSSERVER$ Domain: DOMX Logon ID: (0x0,0xF88396) Logon Type: 3 Logon Process: Kerberos Authentication Package: Kerberos Workstation Name: Logon GUID: {79b6eb79-7bcc-8a2e-7dad-953c51dc00fd} Caller User Name: - Caller Domain: - Caller Logon ID: - Caller Process ID: - Transited Services: - Source Network Address: 10.11.11.3 Source Port: 3306 733 # Sample 2 # the samples below need to be disabled for the "workaround patch" for the message # parser to work. They need to be re-enabled once a final solution has been crafted diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/testsuites/samples.snare_ccoff_udp2 new/rsyslog-5.6.5/tests/testsuites/samples.snare_ccoff_udp2 --- old/rsyslog-5.6.3/tests/testsuites/samples.snare_ccoff_udp2 2010-12-16 14:54:48.000000000 +0100 +++ new/rsyslog-5.6.5/tests/testsuites/samples.snare_ccoff_udp2 2011-03-11 10:58:37.000000000 +0100 @@ -14,13 +14,13 @@ insert into windows (Message, Facility,FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values ('', 1, 'test',5, '20100321185328', '20100321185328', 1, '') # and yet another one we have seen in practice UX=Abcd-efg-hij-klmno; XXXXX=1111111111, Z123=192.12.231.245:11111, S1234=123456789, XXXXXX=111111111 -insert into windows (Message, Facility,FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values (' XXXXX=1111111111, Z123=192.12.231.245:11111, S1234=123456789, XXXXXX=111111111', 1, 'localhost',5, '20100321185328', '20100321185328', 1, 'UX=Abcd-efg-hij-klmno;') +insert into windows (Message, Facility,FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values (' XXXXX=1111111111, Z123=192.12.231.245:11111, S1234=123456789, XXXXXX=111111111', 1, 'localhost.localdomain',5, '20100321185328', '20100321185328', 1, 'UX=Abcd-efg-hij-klmno;') # Sample 1 - note the absence of PRI! windowsserver MSWinEventLog 1 Security 1167 Fri Mar 19 15:33:30 2010 540 Security SYSTEM User Success Audit WINDOWSSERVER Logon/Logoff Successful Network Logon: User Name: WINDOWSSERVER$ Domain: DOMX Logon ID: (0x0,0xF88396) Logon Type: 3 Logon Process: Kerberos Authentication Package: Kerberos Workstation Name: Logon GUID: {79b6eb79-7bcc-8a2e-7dad-953c51dc00fd} Caller User Name: - Caller Domain: - Caller Logon ID: - Caller Process ID: - Transited Services: - Source Network Address: 10.11.11.3 Source Port: 3306 733\n -insert into windows (Message, Facility,FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values (' Mar 19 15:33:30 2010 540 Security SYSTEM User Success Audit WINDOWSSERVER Logon/Logoff Successful Network Logon: User Name: WINDOWSSERVER$ Domain: DOMX Logon ID: (0x0,0xF88396) Logon Type: 3 Logon Process: Kerberos Authentication Package: Kerberos Workstation Name: Logon GUID: {79b6eb79-7bcc-8a2e-7dad-953c51dc00fd} Caller User Name: - Caller Domain: - Caller Logon ID: - Caller Process ID: - Transited Services: - Source Network Address: 10.11.11.3 Source Port: 3306 733', 1, 'localhost',5, '20100321185328', '20100321185328', 1, 'windowsserver MSWinEventLog 1 Security 1167 Fri') +insert into windows (Message, Facility,FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values (' Mar 19 15:33:30 2010 540 Security SYSTEM User Success Audit WINDOWSSERVER Logon/Logoff Successful Network Logon: User Name: WINDOWSSERVER$ Domain: DOMX Logon ID: (0x0,0xF88396) Logon Type: 3 Logon Process: Kerberos Authentication Package: Kerberos Workstation Name: Logon GUID: {79b6eb79-7bcc-8a2e-7dad-953c51dc00fd} Caller User Name: - Caller Domain: - Caller Logon ID: - Caller Process ID: - Transited Services: - Source Network Address: 10.11.11.3 Source Port: 3306 733', 1, 'localhost.localdomain',5, '20100321185328', '20100321185328', 1, 'windowsserver MSWinEventLog 1 Security 1167 Fri') # Sample 2 windowsserver MSWinEventLog 1 Security 1166 Fri Mar 19 15:33:30 2010 576 Security SYSTEM User Success Audit WINDOWSSERVER Logon/Logoff Special privileges assigned to new logon: User Name: WINDOWSSERVER$ Domain: DOMX Logon ID: (0x0,0xF88396) Privileges: SeSecurityPrivilege SeBackupPrivilege SeRestorePrivilege SeTakeOwnershipPrivilege SeDebugPrivilege SeSystemEnvironmentPrivilege SeLoadDriverPrivilege SeImpersonatePrivilege SeEnableDelegationPrivilege 732\n -insert into windows (Message, Facility,FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values (' Mar 19 15:33:30 2010 576 Security SYSTEM User Success Audit WINDOWSSERVER Logon/Logoff Special privileges assigned to new logon: User Name: WINDOWSSERVER$ Domain: DOMX Logon ID: (0x0,0xF88396) Privileges: SeSecurityPrivilege SeBackupPrivilege SeRestorePrivilege SeTakeOwnershipPrivilege SeDebugPrivilege SeSystemEnvironmentPrivilege SeLoadDriverPrivilege SeImpersonatePrivilege SeEnableDelegationPrivilege 732', 1, 'localhost',5, '20100321185328', '20100321185328', 1, 'windowsserver MSWinEventLog 1 Security 1166 Fri') +insert into windows (Message, Facility,FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values (' Mar 19 15:33:30 2010 576 Security SYSTEM User Success Audit WINDOWSSERVER Logon/Logoff Special privileges assigned to new logon: User Name: WINDOWSSERVER$ Domain: DOMX Logon ID: (0x0,0xF88396) Privileges: SeSecurityPrivilege SeBackupPrivilege SeRestorePrivilege SeTakeOwnershipPrivilege SeDebugPrivilege SeSystemEnvironmentPrivilege SeLoadDriverPrivilege SeImpersonatePrivilege SeEnableDelegationPrivilege 732', 1, 'localhost.localdomain',5, '20100321185328', '20100321185328', 1, 'windowsserver MSWinEventLog 1 Security 1166 Fri') # Sample 3 windowsserver MSWinEventLog 1 Security 1165 Fri Mar 19 15:33:30 2010 538 Security SYSTEM User Success Audit WINDOWSSERVER Logon/Logoff User Logoff: User Name: WINDOWSSERVER$ Domain: DOMX Logon ID: (0x0,0xF8830B) Logon Type: 3 731\n -insert into windows (Message, Facility,FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values (' Mar 19 15:33:30 2010 538 Security SYSTEM User Success Audit WINDOWSSERVER Logon/Logoff User Logoff: User Name: WINDOWSSERVER$ Domain: DOMX Logon ID: (0x0,0xF8830B) Logon Type: 3 731', 1, 'localhost',5, '20100321185328', '20100321185328', 1, 'windowsserver MSWinEventLog 1 Security 1165 Fri') +insert into windows (Message, Facility,FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values (' Mar 19 15:33:30 2010 538 Security SYSTEM User Success Audit WINDOWSSERVER Logon/Logoff User Logoff: User Name: WINDOWSSERVER$ Domain: DOMX Logon ID: (0x0,0xF8830B) Logon Type: 3 731', 1, 'localhost.localdomain',5, '20100321185328', '20100321185328', 1, 'windowsserver MSWinEventLog 1 Security 1165 Fri') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tests/testsuites/weird.parse1 new/rsyslog-5.6.5/tests/testsuites/weird.parse1 --- old/rsyslog-5.6.3/tests/testsuites/weird.parse1 2010-12-16 14:54:48.000000000 +0100 +++ new/rsyslog-5.6.5/tests/testsuites/weird.parse1 2011-03-11 10:58:37.000000000 +0100 @@ -11,10 +11,10 @@ 14,user,info,Aug 30 23:00:05,X4711,,, # there is a SP at the end of the line <14>Aug 30 23:00:05 -14,user,info,Aug 30 23:00:05,localhost,,, +14,user,info,Aug 30 23:00:05,localhost.localdomain,,, # and here is no SP at the end of the line <14>Aug 30 23:00:05 -14,user,info,Aug 30 23:00:05,localhost,,, +14,user,info,Aug 30 23:00:05,localhost.localdomain,,, # unfortunately, I can not test missing dates with this test suite, because # we would have the current date in the response, which we can not check against # @@ -31,7 +31,7 @@ 14,user,info,Aug 30 23:00:05,X4711,,, # there is a SP at the end of the line <14>2010-08-30T23:00:05Z -14,user,info,Aug 30 23:00:05,localhost,,, +14,user,info,Aug 30 23:00:05,localhost.localdomain,,, # and here is no SP at the end of the line <14>2010-08-30T23:00:05Z -14,user,info,Aug 30 23:00:05,localhost,,, +14,user,info,Aug 30 23:00:05,localhost.localdomain,,, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rsyslog-5.6.3/tools/syslogd.c new/rsyslog-5.6.5/tools/syslogd.c --- old/rsyslog-5.6.3/tools/syslogd.c 2011-01-26 12:35:44.000000000 +0100 +++ new/rsyslog-5.6.5/tools/syslogd.c 2011-03-22 12:27:49.000000000 +0100 @@ -799,7 +799,7 @@ DBGPRINTF("flush %s: repeated %d times, %d sec.\n", module.GetStateName(pAction->pMod), pAction->f_prevcount, repeatinterval[pAction->f_repeatcount]); - actionWriteToAction(pAction); + actionWriteToAction(pAction, NULL, 0); BACKOFF(pAction); } UnlockObj(pAction); @@ -1334,6 +1334,11 @@ assert(pszDAGFile != NULL); + logmsgInternal(NO_ERRCODE, LOG_SYSLOG|LOG_INFO, (uchar*) + "Configuration graph generation is unfortunately disabled " + "in the current code base.", 0); + ABORT_FINALIZE(RS_RET_FILENAME_INVALID); + if((fp = fopen((char*) pszDAGFile, "w")) == NULL) { logmsgInternal(NO_ERRCODE, LOG_SYSLOG|LOG_INFO, (uchar*) "configuraton graph output file could not be opened, none generated", 0); ++++++ rsyslog-systemd-integration.bnc656104.diff ++++++ --- /var/tmp/diff_new_pack.ggs7pf/_old 2011-03-25 08:55:59.000000000 +0100 +++ /var/tmp/diff_new_pack.ggs7pf/_new 2011-03-25 08:55:59.000000000 +0100 @@ -31,15 +31,15 @@ [skipped whitespace-only changes -- mt@suse.de] diff --git a/ChangeLog b/ChangeLog -index 72e2946..8b7c7b7 100644 +index 89d5711..1e2aaa7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,5 @@ +- acquire /dev/log socket optionally from systemd + thanks to Lennart Poettering for this patch --------------------------------------------------------------------------- - Version 5.6.3 [V5-STABLE] (rgerhards), 2011-01-26 - - bugfix: action processor released mememory too early, resulting in + Version 5.6.5 [V5-STABLE] (rgerhards), 2011-03-22 + - bugfix: failover did not work correctly if repeated msg reduction was on diff --git a/plugins/imuxsock/Makefile.am b/plugins/imuxsock/Makefile.am index a2fe0ba..28f9f9e 100644 --- a/plugins/imuxsock/Makefile.am @@ -870,7 +870,7 @@ + +#endif diff --git a/tools/syslogd.c b/tools/syslogd.c -index ffcaa27..37c3848 100644 +index 1148108..e18101c 100644 --- a/tools/syslogd.c +++ b/tools/syslogd.c @@ -135,6 +135,7 @@ @@ -881,7 +881,7 @@ /* definitions for objects we access */ DEFobjCurrIf(obj) -@@ -2428,10 +2429,44 @@ doGlblProcessInit(void) +@@ -2433,10 +2434,44 @@ doGlblProcessInit(void) */ exit(1); /* "good" exit - after forking, not diasabling anything */ } ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de