diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2012-09-18 17:56:52 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2012-09-18 17:56:52 +0200 |
commit | d88b0e0baf77427c32aa6212579fc9e33359b9ce (patch) | |
tree | 583aba1a3abee1e9b35034095e130a11e85c2cd2 | |
parent | 28778f398dc6537e09e7236aebb245fb8c9bd311 (diff) | |
download | rsyslog-d88b0e0baf77427c32aa6212579fc9e33359b9ce.tar.gz rsyslog-d88b0e0baf77427c32aa6212579fc9e33359b9ce.tar.xz rsyslog-d88b0e0baf77427c32aa6212579fc9e33359b9ce.zip |
subtree template parameter requires variable name, not CEE path
This was changed to keep things in rsyslog.conf consistent. Can also
come handy if at some time we want to have a global (disjunct) CEE path.
-rw-r--r-- | template.c | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -1708,7 +1708,18 @@ tplProcessCnf(struct cnfobj *o) } else if(!strcmp(pblk.descr[i].name, "string")) { tplStr = (uchar*) es_str2cstr(pvals[i].val.d.estr, NULL); } else if(!strcmp(pblk.descr[i].name, "subtree")) { - subtree = es_strdup(pvals[i].val.d.estr); + uchar *st_str = es_getBufAddr(pvals[i].val.d.estr); + if(st_str[0] != '$' || st_str[1] != '!') { + char *cstr = es_str2cstr(pvals[i].val.d.estr, NULL); + errmsg.LogError(0, RS_RET_ERR, "invalid subtree " + "parameter, variable must start with '$!' but " + "var name is '%s'", cstr); + free(cstr); + free(name); /* overall assigned */ + ABORT_FINALIZE(RS_RET_ERR); + } else { + subtree = es_strdup(pvals[i].val.d.estr); + } } else if(!strcmp(pblk.descr[i].name, "plugin")) { plugin = (uchar*) es_str2cstr(pvals[i].val.d.estr, NULL); } else if(!strcmp(pblk.descr[i].name, "option.stdsql")) { @@ -1820,7 +1831,7 @@ tplProcessCnf(struct cnfobj *o) break; case T_LIST: createListTpl(pTpl, o); break; - case T_SUBTREE: pTpl->subtree = subtree; + case T_SUBTREE: pTpl->subtree = subtree + 1; break; } |