summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--grammar/rainerscript.c12
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);
}
}