ubus/lua: pass notification name to callback

The callback function registered to be invoked when subscribing to a
notification was only passed the notification data (if any) but not the name
of the notification.

This name is now passed as second argument to remain backwards compatible.
The example subscriber.lua has also be updated.

Signed-off-by: Dirk Feytons <dirk.feytons@gmail.com>
This commit is contained in:
Dirk Feytons 2018-01-16 18:13:39 +01:00 committed by John Crispin
parent 212ceb1b02
commit 5bae22eb54
2 changed files with 6 additions and 4 deletions

View file

@ -15,8 +15,9 @@ if not conn then
end
local sub = {
notify = function( msg )
print("Count: ", msg["count"])
notify = function( msg, name )
print("name:", name)
print(" count:", msg["count"])
end,
}

View file

@ -787,10 +787,11 @@ ubus_sub_notify_handler(struct ubus_context *ctx, struct ubus_object *obj,
if (lua_isfunction(state, -1)) {
if( msg ){
ubus_lua_parse_blob_array(state, blob_data(msg), blob_len(msg), true);
lua_call(state, 1, 0);
} else {
lua_call(state, 0, 0);
lua_pushnil(state);
}
lua_pushstring(state, method);
lua_call(state, 2, 0);
} else {
lua_pop(state, 1);
}