From bd9c5d6648be43495181c96ea309ef3309b8e694 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Wed, 23 Oct 2013 15:46:04 +0200 Subject: refactor RainerScript variable access --- grammar/rainerscript.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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); } } -- cgit v1.2.3