lua: propagate incoming message to method callback inside the lua context
Signed-off-by: John Crispin <blogic@openwrt.org>
This commit is contained in:
parent
1e3220d9df
commit
0f793d3a45
2 changed files with 9 additions and 2 deletions
|
@ -20,9 +20,12 @@ local my_method = {
|
||||||
},
|
},
|
||||||
test = {
|
test = {
|
||||||
hello = {
|
hello = {
|
||||||
function(req)
|
function(req, msg)
|
||||||
conn:reply(req, {message="foo"});
|
conn:reply(req, {message="foo"});
|
||||||
print("Call to function 'hello'")
|
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 }
|
end, {id = ubus.INT32, msg = ubus.STRING }
|
||||||
},
|
},
|
||||||
hello1 = {
|
hello1 = {
|
||||||
|
|
|
@ -290,7 +290,11 @@ ubus_method_handler(struct ubus_context *ctx, struct ubus_object *obj,
|
||||||
|
|
||||||
if (lua_isfunction(state, -1)) {
|
if (lua_isfunction(state, -1)) {
|
||||||
lua_pushlightuserdata(state, req);
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue