diff options
author | José Bollo <jose.bollo@iot.bzh> | 2017-04-13 22:58:33 +0200 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2017-04-13 23:02:25 +0200 |
commit | a8e971702f23ee67e02b4716ad4159f12cefdca6 (patch) | |
tree | b15a0176462006b2dcf7adeb7e65ee06ff06e2f1 /src/afb-hreq.c | |
parent | 9991f9f55b6b77bf89a9e2cec84280d0c9c0b2cd (diff) |
Introduce apiset for grouping apis
This will be used at the end for debugging
facilities.
Change-Id: I75e3345667e1f58143c77a885e166375680ca194
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src/afb-hreq.c')
-rw-r--r-- | src/afb-hreq.c | 11 |
1 files changed, 7 insertions, 4 deletions
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) |