struct blob_attr *msg)
{
struct ubus_lua_object *o = container_of(obj, struct ubus_lua_object, o);
+ int rv = 0;
lua_getglobal(state, "__ubus_cb");
lua_rawgeti(state, -1, o->r);
lua_getfield(state, -1, method);
+ lua_remove(state, -2);
+ lua_remove(state, -2);
if (lua_isfunction(state, -1)) {
lua_pushlightuserdata(state, req);
lua_pushnil(state);
else
ubus_lua_parse_blob_array(state, blob_data(msg), blob_len(msg), true);
- lua_call(state, 2, 0);
- }
- return 0;
+ lua_call(state, 2, 1);
+ if (lua_isnumber(state, -1))
+ rv = lua_tonumber(state, -1);
+ } else
+ lua_pop(state, 1);
+
+ return rv;
}
static int lua_gettablelen(lua_State *L, int index)