diff options
author | José Bollo <jose.bollo@iot.bzh> | 2016-04-05 13:18:21 +0200 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2016-04-05 13:18:21 +0200 |
commit | efe18167d6ce59b263c179a6e2d01aa875c05cf8 (patch) | |
tree | e3e5f9c9f6d0c9d131503a6b54f608f9fbfcf2a1 | |
parent | 677717c5c86f107b2d196d70796a9be7db3532df (diff) |
fix context values
Change-Id: I8a904fe7e0e895854729ae852b63c090f6c5bb5f
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
-rw-r--r-- | include/afb-req-itf.h | 2 | ||||
-rw-r--r-- | plugins/samples/ClientCtx.c | 6 | ||||
-rw-r--r-- | src/afb-apis.c | 3 |
3 files changed, 5 insertions, 6 deletions
diff --git a/include/afb-req-itf.h b/include/afb-req-itf.h index a9b768db..8d869a6f 100644 --- a/include/afb-req-itf.h +++ b/include/afb-req-itf.h @@ -37,7 +37,7 @@ struct afb_req_itf { struct afb_req { const struct afb_req_itf *itf; void *data; - void *context; + void **context; }; static inline struct afb_arg afb_req_get(struct afb_req req, const char *name) diff --git a/plugins/samples/ClientCtx.c b/plugins/samples/ClientCtx.c index 3fa43adf..0ea88087 100644 --- a/plugins/samples/ClientCtx.c +++ b/plugins/samples/ClientCtx.c @@ -75,7 +75,7 @@ static void myCreate (struct afb_req request) ctx->count = 0; ctx->abcd = "SomeThingUseful"; - request.context = ctx; + *request.context = ctx; afb_req_success_f(request, NULL, "SUCCESS: create client context for plugin [%s]", handle->anythingYouWant); } @@ -86,7 +86,7 @@ static void myCreate (struct afb_req request) static void myAction (struct afb_req request) { MyPluginHandleT *handle = (MyPluginHandleT*) &global_handle; - MyClientContextT *ctx = (MyClientContextT*) request.context; + MyClientContextT *ctx = (MyClientContextT*) *request.context; // store something in our plugin private client context ctx->count++; @@ -100,7 +100,7 @@ static void myAction (struct afb_req request) static void myClose (struct afb_req request) { MyPluginHandleT *handle = (MyPluginHandleT*) &global_handle; - MyClientContextT *ctx = (MyClientContextT*) request.context; + MyClientContextT *ctx = (MyClientContextT*) *request.context; // store something in our plugin private client context ctx->count++; diff --git a/src/afb-apis.c b/src/afb-apis.c index 8dfac519..55e68c93 100644 --- a/src/afb-apis.c +++ b/src/afb-apis.c @@ -367,9 +367,8 @@ int afb_apis_handle(struct afb_req req, struct AFB_clientCtx *context, const cha v = a->plugin->apis; for (j = 0 ; v->name ; j++, v++) { if (!strncasecmp(v->name, verb, lenverb) && !v->name[lenverb]) { - req.context = context->contexts[i]; + req.context = &context->contexts[i]; handle(req, v); - context->contexts[i] = req.context; return 1; } } |