diff options
Diffstat (limited to 'ctl-lib/ctl-lua.c')
-rw-r--r-- | ctl-lib/ctl-lua.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/ctl-lib/ctl-lua.c b/ctl-lib/ctl-lua.c index 08c9b85..b61885d 100644 --- a/ctl-lib/ctl-lua.c +++ b/ctl-lib/ctl-lua.c @@ -470,7 +470,7 @@ static int LuaAfbService(lua_State* luaState) { // get api/verb+query const char *api = lua_tostring(luaState, 3); const char *verb = lua_tostring(luaState, 4); - json_object *queryJ = LuaTableToJson(source, luaState, 5); + json_object *queryJ = LuaPopOneArg(source, luaState, LUA_FIRST_ARG + 3); if (queryJ == JSON_ERROR) return 1; LuaCbHandleT *handleCb = calloc(1, sizeof (LuaCbHandleT)); @@ -498,7 +498,9 @@ static int LuaAfbServiceSync(lua_State* luaState) { } // note: argument start at 2 because of AFB: table - if (count != 5 || !lua_isstring(luaState, LUA_FIRST_ARG + 1) || !lua_isstring(luaState, LUA_FIRST_ARG + 2) || (!lua_istable(luaState, LUA_FIRST_ARG + 3) && !lua_isstring(luaState, LUA_FIRST_ARG +3))) { + if (count != 5 || + ! lua_isstring(luaState, LUA_FIRST_ARG + 1) || + ! lua_isstring(luaState, LUA_FIRST_ARG + 2)) { lua_pushliteral(luaState, "ERROR: syntax AFB:servsync(source, api, verb, {[Lua Table]})"); lua_error(luaState); return 1; @@ -508,12 +510,9 @@ static int LuaAfbServiceSync(lua_State* luaState) { // get source/api/verb+query const char *api = lua_tostring(luaState, LUA_FIRST_ARG + 1); const char *verb = lua_tostring(luaState, LUA_FIRST_ARG + 2); - json_object *queryJ = NULL; - if (lua_istable(luaState, LUA_FIRST_ARG + 3)) { - queryJ = LuaTableToJson(source, luaState, LUA_FIRST_ARG + 3); - } else { - queryJ = json_object_new_string(lua_tostring(luaState, LUA_FIRST_ARG + 3)); - } + + json_object *queryJ = LuaPopOneArg(source, luaState, LUA_FIRST_ARG + 3); + if (queryJ == JSON_ERROR) return 1; int iserror = AFB_ServiceSync(source->api, api, verb, queryJ, &responseJ); |