summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2018-10-02 14:17:41 +0200
committerRomain Forlot <romain.forlot@iot.bzh>2018-12-12 17:44:41 +0100
commitc76dc6c88a24764b27affaa9eb92b144b868972d (patch)
tree0c1f309ff5a035de9b8656166b7d57da82589453
parenta492cbfe993139fe50950bb42f8a3dfcce094146 (diff)
Pass the plugin to action.
Pass the plugin to action using source structure. Plugin pointer is now accessible from anywhere in the plugin callbacks. Clean deprecated function. Change-Id: Idf50728af0b3573a45c4731d4343cf67741b662c Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
-rw-r--r--ctl-lib/ctl-action.c1
-rw-r--r--ctl-lib/ctl-plugin.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/ctl-lib/ctl-action.c b/ctl-lib/ctl-action.c
index 4c72105..c1b7123 100644
--- a/ctl-lib/ctl-action.c
+++ b/ctl-lib/ctl-action.c
@@ -106,6 +106,7 @@ int ActionExecOne(CtlSourceT *source, CtlActionT* action, json_object *queryJ) {
#endif
case CTL_TYPE_CB:
+ source->plugin = action->exec.cb.plugin;
err = (*action->exec.cb.callback) (source, action->argsJ, queryJ);
if (err) {
AFB_ApiError(action->api, "ActionExecOne(Callback) uid%s plugin=%s function=%s args=%s", source->uid, action->exec.cb.plugin->uid, action->exec.cb.funcname, json_object_get_string(action->argsJ));
diff --git a/ctl-lib/ctl-plugin.h b/ctl-lib/ctl-plugin.h
index d931906..d7ede8e 100644
--- a/ctl-lib/ctl-plugin.h
+++ b/ctl-lib/ctl-plugin.h
@@ -87,6 +87,7 @@ typedef struct {
AFB_ApiT api;
AFB_ReqT request;
void *context;
+ CtlPluginT *plugin;
CtlActionStatusT status;
} CtlSourceT;