X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-rest-api.c;h=2b47794e9cf9b2aff25ca308873a7dec23fdcdda;hb=0a621f91ee673dd9182467a4ed649636dd0f2ba0;hp=febe19f83993366341e6003373b861dc95c3a1e9;hpb=ca208671cc79bbc05c574df788035878e5d39382;p=src%2Fapp-framework-binder.git diff --git a/src/afb-rest-api.c b/src/afb-rest-api.c index febe19f8..2b47794e 100644 --- a/src/afb-rest-api.c +++ b/src/afb-rest-api.c @@ -31,6 +31,7 @@ #include #include "afb-apis.h" +#include "session.h" #define AFB_MSG_JTYPE "AJB_reply" @@ -72,24 +73,26 @@ static AFB_error doCallPluginApi(AFB_request * request, int apiidx, int verbidx, // prepare an object to store calling values jcall = json_object_new_object(); json_object_object_add(jcall, "prefix", json_object_new_string(request->prefix)); - json_object_object_add(jcall, "api", json_object_new_string(request->api)); + json_object_object_add(jcall, "api", json_object_new_string(request->method)); // Out of SessionNone every call get a client context session session = afb_apis_get(apiidx, verbidx)->session; if (AFB_SESSION_NONE != session) { // add client context to request - clientCtx = ctxClientGet(request, apiidx); + clientCtx = ctxClientGet(request); if (clientCtx == NULL) { request->errcode = MHD_HTTP_INSUFFICIENT_STORAGE; json_object_object_add(jcall, "status", json_object_new_string("fail")); json_object_object_add(jcall, "info", json_object_new_string("Client Session Context Full !!!")); json_object_object_add(jreqt, "request", jcall); goto ExitOnDone; - }; + } + request->context = clientCtx->contexts[apiidx]; + request->uuid = clientCtx->uuid; if (verbose) - fprintf(stderr, "Plugin=[%s] Api=[%s] Middleware=[%d] Client=[%p] Uuid=[%s] Token=[%s]\n", request->prefix, request->api, session, clientCtx, clientCtx->uuid, clientCtx->token); + fprintf(stderr, "Plugin=[%s] Api=[%s] Middleware=[%d] Client=[%p] Uuid=[%s] Token=[%s]\n", request->prefix, request->method, session, clientCtx, clientCtx->uuid, clientCtx->token); switch (session) { @@ -207,7 +210,7 @@ static AFB_error callPluginApi(AFB_request * request, int apiidx, int verbidx, v // prepare an object to store calling values jcall = json_object_new_object(); json_object_object_add(jcall, "prefix", json_object_new_string(request->prefix)); - json_object_object_add(jcall, "api", json_object_new_string(request->api)); + json_object_object_add(jcall, "api", json_object_new_string(request->method)); // Plugin aborted somewhere during its execution json_object_object_add(jcall, "status", json_object_new_string("abort")); @@ -239,7 +242,7 @@ STATIC AFB_error findAndCallApi(AFB_request * request, void *context) int apiidx, verbidx; AFB_error status; - if (!request->api || !request->prefix) + if (!request->method || !request->prefix) return AFB_FAIL; /* get the plugin if any */ @@ -251,9 +254,9 @@ STATIC AFB_error findAndCallApi(AFB_request * request, void *context) } /* get the verb if any */ - verbidx = afb_apis_get_verbidx(apiidx, request->api); + verbidx = afb_apis_get_verbidx(apiidx, request->method); if (verbidx < 0) { - request->jresp = jsonNewMessage(AFB_FATAL, "No API=[%s] for Plugin=[%s] url=[%s]", request->api, request->prefix, request->url); + request->jresp = jsonNewMessage(AFB_FATAL, "No API=[%s] for Plugin=[%s] url=[%s]", request->method, request->prefix, request->url); request->errcode = MHD_HTTP_UNPROCESSABLE_ENTITY; return AFB_FAIL; } @@ -263,7 +266,7 @@ STATIC AFB_error findAndCallApi(AFB_request * request, void *context) /* plugin callback did not return a valid Json Object */ if (status == AFB_FAIL) { - request->jresp = jsonNewMessage(AFB_FATAL, "No API=[%s] for Plugin=[%s] url=[%s]", request->api, request->prefix, request->url); + request->jresp = jsonNewMessage(AFB_FATAL, "No API=[%s] for Plugin=[%s] url=[%s]", request->method, request->prefix, request->url); request->errcode = MHD_HTTP_UNPROCESSABLE_ENTITY; return AFB_FAIL; } @@ -317,7 +320,7 @@ STATIC void freeRequest(AFB_request * request) { free(request->prefix); - free(request->api); + free(request->method); free(request); } @@ -351,7 +354,7 @@ STATIC AFB_request *createRequest(struct MHD_Connection *connection, AFB_session request->config = session->config; request->url = url; request->prefix = strdup(baseurl); - request->api = strdup(baseapi); + request->method = strdup(baseapi); Done: free(urlcpy1);