lua: propagate incoming message to method callback inside the lua context

Signed-off-by: John Crispin <blogic@openwrt.org>
This commit is contained in:
John Crispin 2012-09-29 01:37:37 +02:00 committed by Felix Fietkau
parent 1e3220d9df
commit 0f793d3a45
2 changed files with 9 additions and 2 deletions

View file

@ -20,9 +20,12 @@ local my_method = {
},
test = {
hello = {
function(req)
function(req, msg)
conn:reply(req, {message="foo"});
print("Call to function 'hello'")
for k, v in pairs(msg) do
print("key=" .. k .. " value=" .. tostring(v))
end
end, {id = ubus.INT32, msg = ubus.STRING }
},
hello1 = {

View file

@ -290,7 +290,11 @@ ubus_method_handler(struct ubus_context *ctx, struct ubus_object *obj,
if (lua_isfunction(state, -1)) {
lua_pushlightuserdata(state, req);
lua_call(state, 1, 0);
if (!msg)
lua_pushnil(state);
else
ubus_lua_parse_blob_array(state, blob_data(msg), blob_len(msg), true);
lua_call(state, 2, 0);
}
return 0;
}