X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-xreq.h;h=ccd79c4edba4a20cadfea11f3409cd0e9188eeef;hb=65353dce81a629e042800bb7b86fcd869a76727e;hp=270de1bb4e857838674d2780ece0fe81213d40ac;hpb=043c27c3a8fd323d59e41288b6fd24f0e9bfa9a3;p=src%2Fapp-framework-binder.git diff --git a/src/afb-xreq.h b/src/afb-xreq.h index 270de1bb..ccd79c4e 100644 --- a/src/afb-xreq.h +++ b/src/afb-xreq.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2017-2019 "IoT.bzh" + * Copyright (C) 2015-2020 "IoT.bzh" * Author José Bollo * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -55,10 +55,10 @@ struct afb_xreq const struct afb_xreq_query_itf *queryitf; /**< interface of xreq implementation functions */ int refcount; /**< current ref count */ int replied; /**< is replied? */ +#if WITH_AFB_HOOK int hookflags; /**< flags for hooking */ int hookindex; /**< hook index of the request if hooked */ - struct afb_evt_listener *listener; /**< event listener for the request */ - struct afb_cred *cred; /**< client credential if revelant */ +#endif struct afb_xreq *caller; /**< caller request if any */ }; @@ -83,6 +83,7 @@ struct afb_xreq /* req wrappers for xreq */ extern struct afb_req_x1 afb_xreq_unstore(struct afb_stored_req *sreq); + extern void afb_xreq_addref(struct afb_xreq *xreq); extern void afb_xreq_unref(struct afb_xreq *xreq); extern void afb_xreq_unhooked_addref(struct afb_xreq *xreq); @@ -94,8 +95,12 @@ extern struct json_object *afb_xreq_json(struct afb_xreq *xreq); extern void afb_xreq_reply(struct afb_xreq *xreq, struct json_object *obj, const char *error, const char *info); extern void afb_xreq_reply_f(struct afb_xreq *xreq, struct json_object *obj, const char *error, const char *info, ...); -extern void afb_xreq_reply_unknown_api(struct afb_xreq *xreq); -extern void afb_xreq_reply_unknown_verb(struct afb_xreq *xreq); +extern int afb_xreq_reply_unknown_api(struct afb_xreq *xreq); +extern int afb_xreq_reply_unknown_verb(struct afb_xreq *xreq); + +extern int afb_xreq_reply_invalid_token(struct afb_xreq *xreq); +extern int afb_xreq_reply_insufficient_scope(struct afb_xreq *xreq, const char *scope); + extern const char *afb_xreq_raw(struct afb_xreq *xreq, size_t *size); @@ -152,8 +157,13 @@ extern void afb_xreq_init(struct afb_xreq *xreq, const struct afb_xreq_query_itf extern void afb_xreq_process(struct afb_xreq *xreq, struct afb_apiset *apiset); +#if WITH_LEGACY_BINDING_V1 extern void afb_xreq_call_verb_v1(struct afb_xreq *xreq, const struct afb_verb_desc_v1 *verb); +#endif +#if WITH_LEGACY_BINDING_V2 extern void afb_xreq_call_verb_v2(struct afb_xreq *xreq, const struct afb_verb_v2 *verb); +#endif + extern void afb_xreq_call_verb_v3(struct afb_xreq *xreq, const struct afb_verb_v3 *verb); extern const char *xreq_on_behalf_cred_export(struct afb_xreq *xreq);