From 6e093aa32674235c76410a10d1cc7321d3bf33bc Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Thu, 24 Jun 2010 14:05:00 +0200 Subject: made hardcoded max string number persistent see commit for reasoning --- runtime/batch.h | 8 +++----- runtime/rsyslog.h | 10 +++++++++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/runtime/batch.h b/runtime/batch.h index b555fc2a..68f48d8b 100644 --- a/runtime/batch.h +++ b/runtime/batch.h @@ -53,11 +53,9 @@ struct batch_obj_s { */ sbool bFilterOK; /* work area for filter processing (per action, reused!) */ sbool bPrevWasSuspended; - void *pActParams; /* parameters to be passed to action */ - size_t *pLenParams; /* length of the parameter in question */ - void *staticActParams[CONF_OMOD_NUMSTRINGS_BUFSIZE]; + void *staticActParams[CONF_OMOD_NUMSTRINGS_MAXSIZE]; /* a cache to save malloc(), if not absolutely necessary */ - size_t staticLenParams[CONF_OMOD_NUMSTRINGS_BUFSIZE]; + size_t staticLenParams[CONF_OMOD_NUMSTRINGS_MAXSIZE]; /* and the same for the message length (if used) */ /* end action work variables */ }; @@ -153,7 +151,7 @@ batchFree(batch_t *pBatch) { int i; int j; for(i = 0 ; i < pBatch->maxElem ; ++i) { - for(j = 0 ; j < CONF_OMOD_NUMSTRINGS_BUFSIZE ; ++j) { + for(j = 0 ; j < CONF_OMOD_NUMSTRINGS_MAXSIZE ; ++j) { free(pBatch->pElem[i].staticActParams[j]); } } diff --git a/runtime/rsyslog.h b/runtime/rsyslog.h index 2279856e..a8b5d401 100644 --- a/runtime/rsyslog.h +++ b/runtime/rsyslog.h @@ -58,7 +58,15 @@ * rgerhards, 2006-11-30 */ -#define CONF_OMOD_NUMSTRINGS_BUFSIZE 2 /* cache for pointers to output module buffer pointers */ +#define CONF_OMOD_NUMSTRINGS_MAXSIZE 2 /* cache for pointers to output module buffer pointers. All + * rsyslog-provided plugins do NOT need more than two buffers. If + * more are needed (future developments, third-parties), rsyslog + * must be recompiled with a larger parameter. Hardcoding this + * saves us some overhead, both in runtime in code complexity. As + * it is doubtful if ever more than 2 parameters are needed, the + * approach taken here is considered appropriate. + * rgerhards, 2010-06-24 + */ /* ############################################################# * * # End Config Settings # * -- cgit