X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-xreq.c;h=fbed6ed1d8ca16949e4a7d95342855fa2c7e401c;hb=8ed4166fe1e1d24c174ae53101159853709b1346;hp=ba533c906ae7b4d400816991998061f512f77042;hpb=4dc768d67031aa99e2b885a0df7e643fdd1fa80c;p=src%2Fapp-framework-binder.git diff --git a/src/afb-xreq.c b/src/afb-xreq.c index ba533c90..fbed6ed1 100644 --- a/src/afb-xreq.c +++ b/src/afb-xreq.c @@ -55,7 +55,9 @@ static void vinfo(void *first, void *second, const char *fmt, va_list args, void static struct json_object *xreq_json_cb(void *closure) { struct afb_xreq *xreq = closure; - return xreq->json ? : (xreq->json = xreq->queryitf->json(xreq)); + if (!xreq->json && xreq->queryitf->json) + xreq->json = xreq->queryitf->json(xreq); + return xreq->json; } static struct afb_arg xreq_get_cb(void *closure, const char *name) @@ -664,8 +666,11 @@ static void process_sync(struct afb_xreq *xreq) afb_hook_xreq_begin(xreq); /* search the api */ - if (afb_apiset_get(xreq->apiset, xreq->api, &api) < 0) { - afb_xreq_fail_f(xreq, "unknown-api", "api %s not found", xreq->api); + if (afb_apiset_get_started(xreq->apiset, xreq->api, &api) < 0) { + if (errno == ENOENT) + afb_xreq_fail_f(xreq, "unknown-api", "api %s not found", xreq->api); + else + afb_xreq_fail_f(xreq, "bad-api-state", "api %s not started correctly: %m", xreq->api); } else { xreq->context.api_key = api.closure; api.itf->call(api.closure, xreq);