summaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2012-06-27 16:25:42 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2012-06-27 16:25:42 +0200
commitd9fb04c5c5b5c1a789d3776f0441d3c8dca08be2 (patch)
tree70b3c18f4666bd3460bb1f76fc7e2e28cee64f30 /plugins
parent18757756ea1036febe6f26db89e42662c20fe35f (diff)
downloadrsyslog-d9fb04c5c5b5c1a789d3776f0441d3c8dca08be2.tar.gz
rsyslog-d9fb04c5c5b5c1a789d3776f0441d3c8dca08be2.tar.xz
rsyslog-d9fb04c5c5b5c1a789d3776f0441d3c8dca08be2.zip
immark: support for module() global config parameters added
Diffstat (limited to 'plugins')
-rw-r--r--plugins/immark/immark.c70
-rw-r--r--plugins/imudp/imudp.c1
2 files changed, 67 insertions, 4 deletions
diff --git a/plugins/immark/immark.c b/plugins/immark/immark.c
index 273af021..0e946c0b 100644
--- a/plugins/immark/immark.c
+++ b/plugins/immark/immark.c
@@ -58,9 +58,26 @@ DEFobjCurrIf(errmsg)
static int iMarkMessagePeriod = DEFAULT_MARK_PERIOD;
struct modConfData_s {
+ rsconf_t *pConf; /* our overall config object */
int iMarkMessagePeriod;
+ sbool configSetViaV2Method;
};
+/* module-global parameters */
+static struct cnfparamdescr modpdescr[] = {
+ { "interval", eCmdHdlrInt, 0 }
+};
+static struct cnfparamblk modpblk =
+ { CNFPARAMBLK_VERSION,
+ sizeof(modpdescr)/sizeof(struct cnfparamdescr),
+ modpdescr
+ };
+
+
+static modConfData_t *loadModConf = NULL;/* modConf ptr to use for the current load process */
+static int bLegacyCnfModGlobalsPermitted;/* are legacy module-global config parameters permitted? */
+
+
BEGINisCompatibleWithFeature
CODESTARTisCompatibleWithFeature
if(eFeat == sFEATURENonCancelInputTermination)
@@ -75,12 +92,57 @@ ENDafterRun
BEGINbeginCnfLoad
CODESTARTbeginCnfLoad
+ loadModConf = pModConf;
+ pModConf->pConf = pConf;
+ /* init our settings */
+ pModConf->iMarkMessagePeriod = DEFAULT_MARK_PERIOD;
+ loadModConf->configSetViaV2Method = 0;
+ bLegacyCnfModGlobalsPermitted = 1;
ENDbeginCnfLoad
+BEGINsetModCnf
+ struct cnfparamvals *pvals = NULL;
+ int i;
+CODESTARTsetModCnf
+ pvals = nvlstGetParams(lst, &modpblk, NULL);
+ if(pvals == NULL) {
+ errmsg.LogError(0, RS_RET_MISSING_CNFPARAMS, "error processing module "
+ "config parameters [module(...)]");
+ ABORT_FINALIZE(RS_RET_MISSING_CNFPARAMS);
+ }
+
+ if(Debug) {
+ dbgprintf("module (global) param blk for imuxsock:\n");
+ cnfparamsPrint(&modpblk, pvals);
+ }
+
+ for(i = 0 ; i < modpblk.nParams ; ++i) {
+ if(!pvals[i].bUsed)
+ continue;
+ if(!strcmp(modpblk.descr[i].name, "interval")) {
+ loadModConf->iMarkMessagePeriod = (int) pvals[i].val.d.n;
+ } else {
+ dbgprintf("imuxsock: program error, non-handled "
+ "param '%s' in beginCnfLoad\n", modpblk.descr[i].name);
+ }
+ }
+
+ /* disable legacy module-global config directives */
+ bLegacyCnfModGlobalsPermitted = 0;
+ loadModConf->configSetViaV2Method = 1;
+
+finalize_it:
+ if(pvals != NULL)
+ cnfparamvalsDestruct(pvals, &modpblk);
+ENDsetModCnf
+
+
BEGINendCnfLoad
CODESTARTendCnfLoad
- pModConf->iMarkMessagePeriod = iMarkMessagePeriod;
+ if(!loadModConf->configSetViaV2Method) {
+ pModConf->iMarkMessagePeriod = iMarkMessagePeriod;
+ }
ENDendCnfLoad
@@ -97,6 +159,7 @@ ENDcheckCnf
BEGINactivateCnf
CODESTARTactivateCnf
MarkInterval = pModConf->iMarkMessagePeriod;
+ DBGPRINTF("immark set MarkInterval to %d\n", MarkInterval);
ENDactivateCnf
@@ -150,6 +213,7 @@ BEGINqueryEtryPt
CODESTARTqueryEtryPt
CODEqueryEtryPt_STD_IMOD_QUERIES
CODEqueryEtryPt_STD_CONF2_QUERIES
+CODEqueryEtryPt_STD_CONF2_setModCnf_QUERIES
CODEqueryEtryPt_IsCompatibleWithFeature_IF_OMOD_QUERIES
ENDqueryEtryPt
@@ -167,8 +231,8 @@ CODEmodInit_QueryRegCFSLineHdlr
CHKiRet(objUse(errmsg, CORE_COMPONENT));
/* legacy config handlers */
- CHKiRet(omsdRegCFSLineHdlr((uchar *)"markmessageperiod", 0, eCmdHdlrInt, NULL,
- &iMarkMessagePeriod, STD_LOADABLE_MODULE_ID));
+ CHKiRet(regCfSysLineHdlr2((uchar *)"markmessageperiod", 0, eCmdHdlrInt, NULL,
+ &iMarkMessagePeriod, STD_LOADABLE_MODULE_ID, &bLegacyCnfModGlobalsPermitted));
CHKiRet(omsdRegCFSLineHdlr((uchar *)"resetconfigvariables", 1, eCmdHdlrCustomHandler,
resetConfigVariables, NULL, STD_LOADABLE_MODULE_ID));
ENDmodInit
diff --git a/plugins/imudp/imudp.c b/plugins/imudp/imudp.c
index 9cb28550..d570e3e5 100644
--- a/plugins/imudp/imudp.c
+++ b/plugins/imudp/imudp.c
@@ -755,7 +755,6 @@ CODESTARTactivateCnf
/* caching various settings */
iMaxLine = glbl.GetMaxLine();
CHKmalloc(pRcvBuf = MALLOC((iMaxLine + 1) * sizeof(char)));
-dbgprintf("AAA: timerequery %d\n", runModConf->iTimeRequery);
finalize_it:
ENDactivateCnf