X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-xreq.c;h=9c4cab8fdae8af88f07aa4bc15da591022d46ab8;hb=d3c80685ed6067f4899635c0328bbd8b70a2ed90;hp=fbed6ed1d8ca16949e4a7d95342855fa2c7e401c;hpb=16899582de97ffa492768e5d96cec813f44417ea;p=src%2Fapp-framework-binder.git diff --git a/src/afb-xreq.c b/src/afb-xreq.c index fbed6ed1..9c4cab8f 100644 --- a/src/afb-xreq.c +++ b/src/afb-xreq.c @@ -63,10 +63,23 @@ static struct json_object *xreq_json_cb(void *closure) static struct afb_arg xreq_get_cb(void *closure, const char *name) { struct afb_xreq *xreq = closure; + struct afb_arg arg; + struct json_object *object, *value; + if (xreq->queryitf->get) - return xreq->queryitf->get(xreq, name); - else - return afb_msg_json_get_arg(xreq_json_cb(closure), name); + arg = xreq->queryitf->get(xreq, name); + else { + object = xreq_json_cb(closure); + if (json_object_object_get_ex(object, name, &value)) { + arg.name = name; + arg.value = json_object_get_string(value); + } else { + arg.name = NULL; + arg.value = NULL; + } + arg.path = NULL; + } + return arg; } static void xreq_success_cb(void *closure, struct json_object *obj, const char *info)