summaryrefslogtreecommitdiffstats
path: root/template.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2008-11-11 12:00:11 +0100
committerRainer Gerhards <rgerhards@adiscon.com>2008-11-11 12:00:11 +0100
commit4cfbf894fd0caebaf65e1b7ffcb5725a530cf67d (patch)
treeb92ab2dbac3bbec2f007e97a35d7efb374733563 /template.c
parentb104759ad671a1ae92f2768de02f1dbbe5f4cb12 (diff)
downloadrsyslog-4cfbf894fd0caebaf65e1b7ffcb5725a530cf67d.tar.gz
rsyslog-4cfbf894fd0caebaf65e1b7ffcb5725a530cf67d.tar.xz
rsyslog-4cfbf894fd0caebaf65e1b7ffcb5725a530cf67d.zip
enhance: regex nomatch option "ZERO" has been added
This allows to return the string 0 if a regular expression is not found. This is probably useful for storing numerical values into database columns.
Diffstat (limited to 'template.c')
-rw-r--r--template.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/template.c b/template.c
index 2fe23710..936ccd07 100644
--- a/template.c
+++ b/template.c
@@ -558,13 +558,17 @@ static int do_Parameter(unsigned char **pp, struct template *pTpl)
pTpe->data.field.nomatchAction = TPL_REGEX_NOMATCH_USE_DFLTSTR;
p += 4; /* eat indicator sequence */
} else if(p[0] == 'B' && p[1] == 'L' && p[2] == 'A' && p[3] == 'N' && p[4] == 'K'
- && (p[5] == ',' || p[5] == ':')) {
+ && (p[5] == ',' || p[5] == ':')) {
pTpe->data.field.nomatchAction = TPL_REGEX_NOMATCH_USE_BLANK;
p += 5; /* eat indicator sequence */
} else if(p[0] == 'F' && p[1] == 'I' && p[2] == 'E' && p[3] == 'L' && p[4] == 'D'
- && (p[5] == ',' || p[5] == ':')) {
+ && (p[5] == ',' || p[5] == ':')) {
pTpe->data.field.nomatchAction = TPL_REGEX_NOMATCH_USE_WHOLE_FIELD;
p += 5; /* eat indicator sequence */
+ } else if(p[0] == 'Z' && p[1] == 'E' && p[2] == 'R' && p[3] == 'O'
+ && (p[4] == ',' || p[4] == ':')) {
+ pTpe->data.field.nomatchAction = TPL_REGEX_NOMATCH_USE_ZERO;
+ p += 4; /* eat indicator sequence */
} else if(p[0] == ',') { /* empty, use default */
pTpe->data.field.nomatchAction = TPL_REGEX_NOMATCH_USE_DFLTSTR;
/* do NOT eat indicator sequence, as this was already eaten - the