--- /dev/null
+#!/usr/bin/env lua
+
+require "ubus"
+require "uloop"
+
+uloop.init()
+
+local conn = ubus.connect()
+if not conn then
+ error("Failed to connect to ubus")
+end
+
+local my_method = {
+ broken = {
+ hello = 1,
+ hello1 = {
+ function(req)
+ end, {id = "fail" }
+ },
+ },
+ test = {
+ hello = {
+ function(req)
+ conn:reply(req, {message="foo"});
+ print("Call to function 'hello'")
+ end, {id = ubus.INT32, msg = ubus.STRING }
+ },
+ hello1 = {
+ function(req)
+ conn:reply(req, {message="foo1"});
+ conn:reply(req, {message="foo2"});
+ print("Call to function 'hello1'")
+ end, {id = ubus.INT32, msg = ubus.STRING }
+ }
+ }
+}
+
+conn:add(my_method)
+uloop.run()
--- /dev/null
+#!/usr/bin/env lua
+
+require "ubus"
+require "uloop"
+
+uloop.init()
+
+local conn = ubus.connect()
+if not conn then
+ error("Failed to connect to ubusd")
+end
+
+local namespaces = conn:objects()
+for i, n in ipairs(namespaces) do
+ print("namespace=" .. n)
+ local signatures = conn:signatures(n)
+ for p, s in pairs(signatures) do
+ print("\tprocedure=" .. p)
+ for k, v in pairs(s) do
+ print("\t\tattribute=" .. k .. " type=" .. v)
+ end
+ end
+end
+
+local status = conn:call("test", "hello", { msg = "eth0" })
+
+for k, v in pairs(status) do
+ print("key=" .. k .. " value=" .. tostring(v))
+end
+
+local status = {conn:call("test", "hello1", { msg = "eth0" })}
+
+for a = 1, #status do
+ for k, v in pairs(status[a]) do
+ print("key=" .. k .. " value=" .. tostring(v))
+ end
+end
+
+uloop.run()