lua: forward return codes from lua to ubus
Signed-off-by: Steven Barth <cyrus@openwrt.org> Tested-by: Luka Perkov <luka@openwrt.org>
This commit is contained in:
parent
2c71017cfb
commit
6dffecb36b
1 changed files with 5 additions and 2 deletions
|
@ -285,6 +285,7 @@ ubus_method_handler(struct ubus_context *ctx, struct ubus_object *obj,
|
||||||
struct blob_attr *msg)
|
struct blob_attr *msg)
|
||||||
{
|
{
|
||||||
struct ubus_lua_object *o = container_of(obj, struct ubus_lua_object, o);
|
struct ubus_lua_object *o = container_of(obj, struct ubus_lua_object, o);
|
||||||
|
int rv = 0;
|
||||||
|
|
||||||
lua_getglobal(state, "__ubus_cb");
|
lua_getglobal(state, "__ubus_cb");
|
||||||
lua_rawgeti(state, -1, o->r);
|
lua_rawgeti(state, -1, o->r);
|
||||||
|
@ -298,11 +299,13 @@ ubus_method_handler(struct ubus_context *ctx, struct ubus_object *obj,
|
||||||
lua_pushnil(state);
|
lua_pushnil(state);
|
||||||
else
|
else
|
||||||
ubus_lua_parse_blob_array(state, blob_data(msg), blob_len(msg), true);
|
ubus_lua_parse_blob_array(state, blob_data(msg), blob_len(msg), true);
|
||||||
lua_call(state, 2, 0);
|
lua_call(state, 2, 1);
|
||||||
|
if (lua_isnumber(state, -1))
|
||||||
|
rv = lua_tonumber(state, -1);
|
||||||
} else
|
} else
|
||||||
lua_pop(state, 1);
|
lua_pop(state, 1);
|
||||||
|
|
||||||
return 0;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int lua_gettablelen(lua_State *L, int index)
|
static int lua_gettablelen(lua_State *L, int index)
|
||||||
|
|
Loading…
Add table
Reference in a new issue