X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-xreq.c;h=6364018d3bcfe87c51536f28ee9c888d7810c646;hb=7087ad1b81b55fb2c1c14e7d9cbb49c0bf75e28e;hp=5bd2068c9e9096c1169a3487231eecefe5201ed2;hpb=6797f9722dd3e5463e0f7c118397955bb59a40c7;p=src%2Fapp-framework-binder.git diff --git a/src/afb-xreq.c b/src/afb-xreq.c index 5bd2068c..6364018d 100644 --- a/src/afb-xreq.c +++ b/src/afb-xreq.c @@ -108,7 +108,7 @@ static void xreq_success_cb(void *closure, struct json_object *obj, const char * if (xreq->queryitf->success) xreq->queryitf->success(xreq->query, obj, info); else - xreq->queryitf->reply(xreq->query, afb_msg_json_reply_ok(info, obj, &xreq->context, NULL)); + xreq->queryitf->reply(xreq->query, 0, afb_msg_json_reply_ok(info, obj, &xreq->context, NULL)); } } @@ -122,7 +122,7 @@ static void xreq_fail_cb(void *closure, const char *status, const char *info) if (xreq->queryitf->fail) xreq->queryitf->fail(xreq->query, status, info); else - xreq->queryitf->reply(xreq->query, afb_msg_json_reply_error(status, info, &xreq->context, NULL)); + xreq->queryitf->reply(xreq->query, 1, afb_msg_json_reply_error(status, info, &xreq->context, NULL)); } } @@ -215,7 +215,10 @@ static int xreq_unsubscribe_cb(void *closure, struct afb_event event) static void xreq_subcall_cb(void *closure, const char *api, const char *verb, struct json_object *args, void (*callback)(void*, int, struct json_object*), void *cb_closure) { struct afb_xreq *xreq = closure; - afb_subcall(&xreq->context, api, verb, args, callback, cb_closure, (struct afb_req){ .itf = &xreq_itf, .closure = xreq }); + if (xreq->queryitf->subcall) + xreq->queryitf->subcall(xreq->query, api, verb, args, callback, cb_closure); + else + afb_subcall(&xreq->context, api, verb, args, callback, cb_closure, (struct afb_req){ .itf = &xreq_itf, .closure = xreq }); } void afb_xreq_success_f(struct afb_xreq *xreq, struct json_object *obj, const char *info, ...)