diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2013-11-29 15:43:23 +0100 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2013-11-29 15:43:23 +0100 |
commit | 8bf869fafbcc53a134e2842e4fc894ee27ee1c7f (patch) | |
tree | f0b246d3c9d1cc5955fdf70496465a8a52086348 | |
parent | c3d80cd3b0060a37e15e8e323b5a3535ab1933c0 (diff) | |
download | rsyslog-8bf869fafbcc53a134e2842e4fc894ee27ee1c7f.tar.gz rsyslog-8bf869fafbcc53a134e2842e4fc894ee27ee1c7f.tar.bz2 rsyslog-8bf869fafbcc53a134e2842e4fc894ee27ee1c7f.zip |
actions now report if they suspend and resume themselves
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | action.c | 19 | ||||
-rw-r--r-- | action.h | 6 | ||||
-rw-r--r-- | runtime/glbl.c | 4 |
4 files changed, 21 insertions, 11 deletions
@@ -1,5 +1,8 @@ --------------------------------------------------------------------------- Version 7.5.8 [v7-devel] 2013-11-?? +- actions now report if they suspend and resume themselves + this is by default on and controllable by the action.reportSuspension + global parameter - bugfix: mmrfc5424addhmac: "key" parameter was not properly processed - add new impstats action counters: * suspended @@ -180,6 +180,7 @@ configSettings_t cs_save; /* our saved (scope!) config settings */ * counting. -- rgerhards, 2008-01-29 */ static int iActionNbr = 0; +int bActionReportSuspension = 1; /* tables for interfacing with the v6 config system */ static struct cnfparamdescr cnfparamdescr[] = { @@ -645,11 +646,13 @@ actionSuspend(action_t * const pThis) DBGPRINTF("action '%s' suspended, earliest retry=%lld (now %lld), iNbrResRtry %d\n", pThis->pszName, (long long) pThis->ttResumeRtry, (long long) ttNow, pThis->iNbrResRtry); - ctime_r(&pThis->ttResumeRtry, timebuf); - timebuf[strlen(timebuf)-1] = '\0'; /* strip LF */ - errmsg.LogMsg(0, RS_RET_NOT_FOUND, LOG_WARNING, - "action '%s' suspended, next retry is %s", - pThis->pszName, timebuf); + if(bActionReportSuspension) { + ctime_r(&pThis->ttResumeRtry, timebuf); + timebuf[strlen(timebuf)-1] = '\0'; /* strip LF */ + errmsg.LogMsg(0, RS_RET_NOT_FOUND, LOG_WARNING, + "action '%s' suspended, next retry is %s", + pThis->pszName, timebuf); + } } @@ -692,8 +695,10 @@ actionDoRetry(action_t *pThis, int *pbShutdownImmediate) if((iRet == RS_RET_OK) && (!bTreatOKasSusp)) { DBGPRINTF("actionDoRetry: %s had success RDY again (iRet=%d)\n", pThis->pszName, iRet); - errmsg.LogMsg(0, RS_RET_OK, LOG_INFO, "action '%s' resumed", - pThis->pszName); + if(bActionReportSuspension) { + errmsg.LogMsg(0, RS_RET_OK, LOG_INFO, "action '%s' resumed", + pThis->pszName); + } actionSetState(pThis, ACT_STATE_RDY); } else if(iRet == RS_RET_SUSPENDED || bTreatOKasSusp) { /* max retries reached? */ @@ -28,11 +28,9 @@ #include "syslogd-types.h" #include "queue.h" -/* external data - this is to be removed when we change the action - * object interface (will happen some time..., at latest when the - * config file format is changed). -- rgerhards, 2008-01-28 - */ +/* external data */ extern int glbliActionResumeRetryCount; +extern int bActionReportSuspension; typedef enum { diff --git a/runtime/glbl.c b/runtime/glbl.c index e1d4e92d..3983a449 100644 --- a/runtime/glbl.c +++ b/runtime/glbl.c @@ -43,6 +43,7 @@ #include "prop.h" #include "atomic.h" #include "errmsg.h" +#include "action.h" #include "rainerscript.h" #include "net.h" @@ -105,6 +106,7 @@ static struct cnfparamdescr cnfparamdescr[] = { { "defaultnetstreamdriverkeyfile", eCmdHdlrString, 0 }, { "defaultnetstreamdriver", eCmdHdlrString, 0 }, { "maxmessagesize", eCmdHdlrSize, 0 }, + { "action.reportsuspension", eCmdHdlrBinary, 0 } }; static struct cnfparamblk paramblk = { CNFPARAMBLK_VERSION, @@ -693,6 +695,8 @@ glblDoneLoadCnf(void) } else if(!strcmp(paramblk.descr[i].name, "dropmsgswithmaliciousdnsptrrecords")) { bDropMalPTRMsgs = (int) cnfparamvals[i].val.d.n; + } else if(!strcmp(paramblk.descr[i].name, "action.reportsuspension")) { + bActionReportSuspension = (int) cnfparamvals[i].val.d.n; } else if(!strcmp(paramblk.descr[i].name, "maxmessagesize")) { iMaxLine = (int) cnfparamvals[i].val.d.n; } else { |