From 6a8c9e3c36ae507eeec4176d456ae5f0ab2b2c5e Mon Sep 17 00:00:00 2001
From: Romain Forlot <romain.forlot@iot.bzh>
Date: Thu, 23 Nov 2017 19:00:23 +0100
Subject: Get back lua2c functions parsed at plugin load

Format JSON unpack operations

Change-Id: Iaed0988d8536ad1df60a32a610e69e35485fc9f8
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
---
 ctl-lib/ctl-action.c | 10 ++++++++--
 ctl-lib/ctl-lua.c    | 12 ++++++++++--
 ctl-lib/ctl-plugin.c | 15 +++++++++++----
 3 files changed, 29 insertions(+), 8 deletions(-)

(limited to 'ctl-lib')

diff --git a/ctl-lib/ctl-action.c b/ctl-lib/ctl-action.c
index 80e4484..41ce70b 100644
--- a/ctl-lib/ctl-action.c
+++ b/ctl-lib/ctl-action.c
@@ -136,8 +136,14 @@ PUBLIC int ActionLoadOne(AFB_ApiT apiHandle, CtlActionT *action, json_object *ac
     int err, modeCount = 0;
     json_object *callbackJ=NULL, *luaJ=NULL, *subcallJ=NULL;
 
-    err = wrap_json_unpack(actionJ, "{ss,s?s,s?s,s?o,s?o,s?o,s?o !}"
-            , "uid", &action->uid, "info", &action->info, "privileges", &action->privileges, "callback", &callbackJ, "lua", &luaJ, "subcall", &subcallJ, "args", &action->argsJ);
+    err = wrap_json_unpack(actionJ, "{ss,s?s,s?s,s?o,s?o,s?o,s?o !}",
+        "uid", &action->uid,
+        "info", &action->info,
+        "privileges", &action->privileges,
+        "callback", &callbackJ,
+        "lua", &luaJ,
+        "subcall", &subcallJ,
+        "args", &action->argsJ);
     if (err) {
         AFB_ApiError(apiHandle,"ACTION-LOAD-ONE Action missing uid|[info]|[callback]|[lua]|[subcall]|[args] in:\n--  %s", json_object_get_string(actionJ));
         goto OnErrorExit;
diff --git a/ctl-lib/ctl-lua.c b/ctl-lib/ctl-lua.c
index 07b26bf..add4c0d 100644
--- a/ctl-lib/ctl-lua.c
+++ b/ctl-lib/ctl-lua.c
@@ -796,7 +796,11 @@ STATIC void LuaDoAction (LuaDoActionT action, AFB_ReqT request) {
             // extract value from query
             const char *target=NULL,*func=NULL;
             json_object *argsJ=NULL;
-            err= wrap_json_unpack (queryJ, "{s:s,s?s,s?s,s?o !}","target", &target,"path",&luaScriptPathJ,"function",&func,"args",&argsJ);
+            err= wrap_json_unpack (queryJ, "{s:s,s?s,s?s,s?o !}",
+                "target", &target,
+                "path",&luaScriptPathJ,
+                "function",&func,
+                "args",&argsJ);
             if (err) {
                 AFB_ApiError(source->api, "LUA-DOSCRIPT-SYNTAX:missing target|[path]|[function]|[args] query=%s", json_object_get_string(queryJ));
                 goto OnErrorExit;
@@ -1023,7 +1027,11 @@ STATIC int LuaTimerSet(lua_State* luaState) {
         goto OnErrorExit;
     }
 
-    int err = wrap_json_unpack(timerJ, "{ss, s?s si, si !}", "uid", &uid, "info", &info, "delay", &delay, "count", &count);
+    int err = wrap_json_unpack(timerJ, "{ss, s?s si, si !}",
+        "uid", &uid,
+        "info", &info,
+        "delay", &delay,
+        "count", &count);
     if (err) {
 
         lua_pushliteral(luaState, "LuaTimerSet: Syntax timerT={uid:xxx delay:ms, count:xx}");
diff --git a/ctl-lib/ctl-plugin.c b/ctl-lib/ctl-plugin.c
index 11df1e3..557f85e 100644
--- a/ctl-lib/ctl-plugin.c
+++ b/ctl-lib/ctl-plugin.c
@@ -36,7 +36,10 @@ PUBLIC int PluginGetCB (AFB_ApiT apiHandle, CtlActionT *action , json_object *ca
         goto OnErrorExit;
     }
 
-    int err = wrap_json_unpack(callbackJ, "{ss,ss,s?s,s?o!}", "plugin", &plugin, "function", &function, "args", &argsJ);
+    int err = wrap_json_unpack(callbackJ, "{ss,ss,s?s,s?o!}",
+        "plugin", &plugin,
+        "function", &function,
+        "args", &argsJ);
     if (err) {
         AFB_ApiError(apiHandle, "PluginGet missing plugin|function|[args] in %s", json_object_get_string(callbackJ));
         goto OnErrorExit;
@@ -86,10 +89,14 @@ STATIC int PluginLoadOne (AFB_ApiT apiHandle, CtlPluginT *ctlPlugin, json_object
     // plugin initialises at 1st load further init actions should be place into onload section
     if (!pluginJ) return 0;
 
-    int err = wrap_json_unpack(pluginJ, "{ss,s?s,s?s,s?s !}",
-            "uid", &ctlPlugin->uid,  "info", &ctlPlugin->info, "ldpath", &ldSearchPath, "basename", &basename);
+    int err = wrap_json_unpack(pluginJ, "{ss,s?s,s?s,s?s,s?o !}",
+            "uid", &ctlPlugin->uid,
+            "info", &ctlPlugin->info,
+            "ldpath", &ldSearchPath,
+            "basename", &basename,
+            "lua2c", &lua2csJ);
     if (err) {
-        AFB_ApiError(apiHandle, "CTL-PLUGIN-LOADONE Plugin missing uid|[info]|[basename]|[ldpath] in:\n-- %s", json_object_get_string(pluginJ));
+        AFB_ApiError(apiHandle, "CTL-PLUGIN-LOADONE Plugin missing uid|[info]|basename|ldpath|[lua2c] in:\n-- %s", json_object_get_string(pluginJ));
         goto OnErrorExit;
     }
 
-- 
cgit