diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2012-09-17 09:34:01 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2012-09-17 09:34:01 +0200 |
commit | b3eb2f9b81a3cfc2d179aea364501fca4134e480 (patch) | |
tree | 082f9951df5c113d6495c029e00dbb42d441365c /grammar/rainerscript.c | |
parent | 92564dc5560aff06062a612058865f2a8a8bdff3 (diff) | |
parent | 5ab936a92d636390026d466350464ec4182075ac (diff) | |
download | rsyslog-b3eb2f9b81a3cfc2d179aea364501fca4134e480.tar.gz rsyslog-b3eb2f9b81a3cfc2d179aea364501fca4134e480.tar.bz2 rsyslog-b3eb2f9b81a3cfc2d179aea364501fca4134e480.zip |
Merge branch 'master-newruleset'
Diffstat (limited to 'grammar/rainerscript.c')
-rw-r--r-- | grammar/rainerscript.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/grammar/rainerscript.c b/grammar/rainerscript.c index b0a79458..c7344628 100644 --- a/grammar/rainerscript.c +++ b/grammar/rainerscript.c @@ -1466,6 +1466,16 @@ cnfstmtPrint(struct cnfstmt *root, int indent) } doIndent(indent); dbgprintf("END IF\n"); break; + case S_SET: + doIndent(indent); dbgprintf("SET %s =\n", + stmt->d.s_set.varname); + cnfexprPrint(stmt->d.s_set.expr, indent+1); + doIndent(indent); dbgprintf("END SET\n"); + break; + case S_UNSET: + doIndent(indent); dbgprintf("UNSET %s\n", + stmt->d.s_unset.varname); + break; case S_PRIFILT: doIndent(indent); dbgprintf("PRIFILT '%s'\n", stmt->printable); cnfstmtPrint(stmt->d.s_prifilt.t_then, indent+1); @@ -1569,6 +1579,13 @@ cnfstmtDestruct(struct cnfstmt *root) cnfstmtDestruct(stmt->d.s_if.t_else); } break; + case S_SET: + free(stmt->d.s_set.varname); + cnfexprDestruct(stmt->d.s_set.expr); + break; + case S_UNSET: + free(stmt->d.s_set.varname); + break; case S_PRIFILT: cnfstmtDestruct(stmt->d.s_prifilt.t_then); break; @@ -1594,6 +1611,27 @@ cnfstmtDestruct(struct cnfstmt *root) } struct cnfstmt * +cnfstmtNewSet(char *var, struct cnfexpr *expr) +{ + struct cnfstmt* cnfstmt; + if((cnfstmt = cnfstmtNew(S_SET)) != NULL) { + cnfstmt->d.s_set.varname = (uchar*) var; + cnfstmt->d.s_set.expr = expr; + } + return cnfstmt; +} + +struct cnfstmt * +cnfstmtNewUnset(char *var) +{ + struct cnfstmt* cnfstmt; + if((cnfstmt = cnfstmtNew(S_UNSET)) != NULL) { + cnfstmt->d.s_unset.varname = (uchar*) var; + } + return cnfstmt; +} + +struct cnfstmt * cnfstmtNewPRIFILT(char *prifilt, struct cnfstmt *t_then) { struct cnfstmt* cnfstmt; |