X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-hreq.c;h=fe5af73acb4bbe791f878f96198496cafef561de;hb=a8e971702f23ee67e02b4716ad4159f12cefdca6;hp=6589f0f46412a3b6f94d8bcfb023aceb29fa77c4;hpb=9991f9f55b6b77bf89a9e2cec84280d0c9c0b2cd;p=src%2Fapp-framework-binder.git diff --git a/src/afb-hreq.c b/src/afb-hreq.c index 6589f0f4..fe5af73a 100644 --- a/src/afb-hreq.c +++ b/src/afb-hreq.c @@ -910,16 +910,19 @@ static void req_success(struct afb_xreq *xreq, json_object *obj, const char *inf req_reply(hreq, MHD_HTTP_OK, "success", info, obj); } -int afb_hreq_init_req_call(struct afb_hreq *hreq, const char *api, size_t lenapi, const char *verb, size_t lenverb) +void afb_hreq_call(struct afb_hreq *hreq, struct afb_apiset *apiset, const char *api, size_t lenapi, const char *verb, size_t lenverb) { hreq->xreq.api = strndup(api, lenapi); hreq->xreq.verb = strndup(verb, lenverb); if (hreq->xreq.api == NULL || hreq->xreq.verb == NULL) { ERROR("Out of memory"); - errno = ENOMEM; - return -1; + afb_hreq_reply_error(hreq, MHD_HTTP_INTERNAL_SERVER_ERROR); + } else if (afb_hreq_init_context(hreq) < 0) { + afb_hreq_reply_error(hreq, MHD_HTTP_INTERNAL_SERVER_ERROR); + } else { + afb_xreq_addref(&hreq->xreq); /* TODO check if needed */ + afb_xreq_process(&hreq->xreq, apiset); } - return afb_hreq_init_context(hreq); } int afb_hreq_init_context(struct afb_hreq *hreq)