X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-api-so-v1.c;h=63ea3f8ad86c39720e65d7444f27f68d82dde48a;hb=0b838a6101edc810098ee0645d3bfd966096ae07;hp=a09b0f517a0fc493476eaa014f7ceeb78bcb9398;hpb=6797f9722dd3e5463e0f7c118397955bb59a40c7;p=src%2Fapp-framework-binder.git diff --git a/src/afb-api-so-v1.c b/src/afb-api-so-v1.c index a09b0f51..63ea3f8a 100644 --- a/src/afb-api-so-v1.c +++ b/src/afb-api-so-v1.c @@ -30,7 +30,6 @@ #include "afb-common.h" #include "afb-context.h" #include "afb-api-so.h" -#include "afb-thread.h" #include "afb-xreq.h" #include "verbose.h" @@ -127,53 +126,6 @@ static int afb_api_so_rootdir_open_locale(void *closure, const char *filename, i return afb_common_rootdir_open_locale(filename, flags, locale); } -static int call_check(struct afb_req req, struct afb_context *context, const struct afb_verb_desc_v1 *verb) -{ - int stag = (int)verb->session; - - if ((stag & (AFB_SESSION_CREATE|AFB_SESSION_CLOSE|AFB_SESSION_RENEW|AFB_SESSION_CHECK|AFB_SESSION_LOA_EQ)) != 0) { - if (!afb_context_check(context)) { - afb_context_close(context); - afb_req_fail(req, "failed", "invalid token's identity"); - return 0; - } - } - - if ((stag & AFB_SESSION_CREATE) != 0) { - if (afb_context_check_loa(context, 1)) { - afb_req_fail(req, "failed", "invalid creation state"); - return 0; - } - afb_context_change_loa(context, 1); - afb_context_refresh(context); - } - - if ((stag & (AFB_SESSION_CREATE | AFB_SESSION_RENEW)) != 0) - afb_context_refresh(context); - - if ((stag & AFB_SESSION_CLOSE) != 0) { - afb_context_change_loa(context, 0); - afb_context_close(context); - } - - if ((stag & AFB_SESSION_LOA_GE) != 0) { - int loa = (stag >> AFB_SESSION_LOA_SHIFT) & AFB_SESSION_LOA_MASK; - if (!afb_context_check_loa(context, loa)) { - afb_req_fail(req, "failed", "invalid LOA"); - return 0; - } - } - - if ((stag & AFB_SESSION_LOA_LE) != 0) { - int loa = (stag >> AFB_SESSION_LOA_SHIFT) & AFB_SESSION_LOA_MASK; - if (afb_context_check_loa(context, loa + 1)) { - afb_req_fail(req, "failed", "invalid LOA"); - return 0; - } - } - return 1; -} - static const struct afb_verb_desc_v1 *search(struct api_so_v1 *desc, const char *name) { const struct afb_verb_desc_v1 *verb; @@ -184,20 +136,7 @@ static const struct afb_verb_desc_v1 *search(struct api_so_v1 *desc, const char return verb->name ? verb : NULL; } -static void call_cb(void *closure, struct afb_req req, struct afb_context *context, const char *strverb) -{ - const struct afb_verb_desc_v1 *verb; - struct api_so_v1 *desc = closure; - - verb = search(desc, strverb); - if (!verb) - afb_req_fail_f(req, "unknown-verb", "verb %s unknown within api %s", strverb, desc->binding->v1.prefix); - else if (call_check(req, context, verb)) { - afb_thread_req_call(req, verb->callback, afb_api_so_timeout, desc); - } -} - -static void xcall_cb(void *closure, struct afb_xreq *xreq) +static void call_cb(void *closure, struct afb_xreq *xreq) { const struct afb_verb_desc_v1 *verb; struct api_so_v1 *desc = closure; @@ -326,7 +265,6 @@ int afb_api_so_v1_add(const char *path, void *handle) if (afb_apis_add(desc->binding->v1.prefix, (struct afb_api){ .closure = desc, .call = call_cb, - .xcall = xcall_cb, .service_start = service_start_cb }) < 0) { ERROR("binding [%s] can't be registered...", path); goto error2;