diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2013-10-23 15:46:04 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2013-10-23 15:46:04 +0200 |
commit | bd9c5d6648be43495181c96ea309ef3309b8e694 (patch) | |
tree | fa11de997f5f663b6e2af809a006aca8635e8f4d /grammar/rainerscript.c | |
parent | c0f44743898954aee7f846ce630280a80297b80d (diff) | |
download | rsyslog-bd9c5d6648be43495181c96ea309ef3309b8e694.tar.gz rsyslog-bd9c5d6648be43495181c96ea309ef3309b8e694.tar.bz2 rsyslog-bd9c5d6648be43495181c96ea309ef3309b8e694.zip |
refactor RainerScript variable access
Diffstat (limited to 'grammar/rainerscript.c')
-rw-r--r-- | grammar/rainerscript.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/grammar/rainerscript.c b/grammar/rainerscript.c index e4a2caa0..d4a9529d 100644 --- a/grammar/rainerscript.c +++ b/grammar/rainerscript.c @@ -1603,6 +1603,9 @@ dbgprintf("DDDD: executing lookup\n"); static inline void evalVar(struct cnfvar *var, void *usrptr, struct var *ret) { + rs_size_t propLen; + uchar *pszProp = NULL; + unsigned short bMustBeFreed = 0; rsRetVal localRet; struct json_object *json; @@ -1612,9 +1615,16 @@ evalVar(struct cnfvar *var, void *usrptr, struct var *ret) localRet = msgGetJSONPropJSON((msg_t*)usrptr, &var->prop, &json); ret->datatype = 'J'; ret->d.json = (localRet == RS_RET_OK) ? json : NULL; + + DBGPRINTF("rainerscript: var '%s': '%s'\n", var->prop.name, + (ret->d.json == NULL) ? "" : json_object_get_string(ret->d.json)); } else { ret->datatype = 'S'; - ret->d.estr = cnfGetVar(var->name, usrptr); + pszProp = (uchar*) MsgGetProp((msg_t*)usrptr, NULL, &var->prop, &propLen, &bMustBeFreed, NULL); + ret->d.estr = es_newStrFromCStr((char*)pszProp, propLen); + DBGPRINTF("rainerscript: var '%s': '%s'\n", var->prop.name, pszProp); + if(bMustBeFreed) + free(pszProp); } } |