diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2011-07-22 18:03:43 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2011-07-22 18:03:43 +0200 |
commit | 9757aeb56445eee3aca2b43e6b3efa1f1cb59ba3 (patch) | |
tree | b44dad3ab3f3477c4b6c45b615b60f5e51f58e35 /grammar/rainerscript.c | |
parent | 6b8b7ba0091a4e59b9a45057756fc7f754576242 (diff) | |
download | rsyslog-9757aeb56445eee3aca2b43e6b3efa1f1cb59ba3.tar.gz rsyslog-9757aeb56445eee3aca2b43e6b3efa1f1cb59ba3.tar.xz rsyslog-9757aeb56445eee3aca2b43e6b3efa1f1cb59ba3.zip |
milestone: queue object now has a param handler for new conf interface
... and action queue defs use this new interface (but not yet the main queues)
Diffstat (limited to 'grammar/rainerscript.c')
-rw-r--r-- | grammar/rainerscript.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/grammar/rainerscript.c b/grammar/rainerscript.c index fe99e4aa..1b44974c 100644 --- a/grammar/rainerscript.c +++ b/grammar/rainerscript.c @@ -35,9 +35,11 @@ #include <sys/stat.h> #include <sys/types.h> #include <libestr.h> +#include "rsyslog.h" #include "rainerscript.h" #include "parserif.h" #include "grammar.h" +#include "queue.h" #include "srUtils.h" void @@ -271,6 +273,30 @@ doGetBinary(struct nvlst *valnode, struct cnfparamdescr *param, } } +static inline void +doGetQueueType(struct nvlst *valnode, struct cnfparamdescr *param, + struct cnfparamvals *val) +{ + char *cstr; + if(!es_strcasebufcmp(valnode->val.d.estr, (uchar*)"fixedarray", 10)) { + val->val.d.n = QUEUETYPE_FIXED_ARRAY; + } else if(!es_strcasebufcmp(valnode->val.d.estr, (uchar*)"linkedlist", 10)) { + val->val.d.n = QUEUETYPE_LINKEDLIST; + } else if(!es_strcasebufcmp(valnode->val.d.estr, (uchar*)"disk", 4)) { + val->val.d.n = QUEUETYPE_DISK; + } else if(!es_strcasebufcmp(valnode->val.d.estr, (uchar*)"direct", 6)) { + val->val.d.n = QUEUETYPE_DIRECT; + } else { + cstr = es_str2cstr(valnode->val.d.estr, NULL); + parser_errmsg("param '%s': unknown queue type: '%s'", + param->name, cstr); + free(cstr); + } +dbgprintf("XXXXX: queue type: %d\n", (int)val->val.d.n); + val->val.datatype = 'N'; +} + + /* A file create-mode must be a four-digit octal number * starting with '0'. */ @@ -416,6 +442,9 @@ nvlstGetParam(struct nvlst *valnode, struct cnfparamdescr *param, valnode->bUsed = 1; val->bUsed = 1; switch(param->type) { + case eCmdHdlrQueueType: + doGetQueueType(valnode, param, val); + break; case eCmdHdlrUID: doGetUID(valnode, param, val); break; |