Felix Fietkau [Sat, 11 May 2013 18:39:54 +0000 (20:39 +0200)]
libubus: fix deadlock in recursive synchronous ubus requests
When synchronous request completion loops are running, the innermost
loop can receive events that can unblock the outer loops, however the
loop clears uloop_cancelled (which is set by the request completion).
This causes the event loop to continue running even while a completion
loop has already been unblocked.
Fix this by not clearing uloop_cancelled for inner loops
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Thu, 4 Apr 2013 20:03:03 +0000 (22:03 +0200)]
libubus: fix crash on reconnect with objects that have no type
Signed-off-by: John Crispin <blogic@openwrt.org>
Felix Fietkau [Sun, 17 Mar 2013 17:29:38 +0000 (18:29 +0100)]
libubus: fix passing the return code of the subscriber callback to the notifier
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sun, 17 Mar 2013 16:55:11 +0000 (17:55 +0100)]
libubus: fix synchronous ubus_notify without waiting for a timeout
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sun, 17 Mar 2013 02:11:35 +0000 (03:11 +0100)]
libubus: add ubus_unregister_subscriber wrapper
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Wed, 6 Mar 2013 15:56:33 +0000 (16:56 +0100)]
libubus: add UBUS_METHOD_NOARG
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Thomas Gstädtner [Mon, 4 Mar 2013 18:05:09 +0000 (19:05 +0100)]
add systemd support
This adds basic systemd support, incl. socket activation.
If systemd build is disabled, there won't be any sign of it neither
during build nor after.
If systemd build is enabled (default), but systemd is not available,
no systemd stuff is installed, so there is no impact whatsoever.
Thomas Gstädtner [Mon, 4 Mar 2013 18:05:08 +0000 (19:05 +0100)]
make UBUS_UNIX_SOCKET configurable via cmake
this is mainly useful to have a single location to read the setting
from, when it is used multiple times at build time (which it will in a
following patch) :)
Thomas Gstädtner [Sun, 3 Mar 2013 02:06:20 +0000 (03:06 +0100)]
add INCLUDE_DIRECTORIES to subdirectories
Thomas Gstädtner [Sun, 3 Mar 2013 02:06:19 +0000 (03:06 +0100)]
make building examples an option
Felix Fietkau [Wed, 23 Jan 2013 14:22:46 +0000 (15:22 +0100)]
build: remove install prefix override
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Jo-Philipp Wich [Sun, 13 Jan 2013 19:37:00 +0000 (20:37 +0100)]
lua: pass u64 blob type as double to Lua
Felix Fietkau [Sun, 30 Dec 2012 13:12:10 +0000 (14:12 +0100)]
libubus: free internal blob_buf memory when freeing an ubus context
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sat, 15 Dec 2012 15:52:03 +0000 (16:52 +0100)]
examples: disable the message on the server example, measure the notify latency on the client example
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sat, 15 Dec 2012 15:51:28 +0000 (16:51 +0100)]
libubus: fix data type of request sequence counter. fixes hang after ~64K requests
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Sat, 15 Dec 2012 13:11:15 +0000 (14:11 +0100)]
libubus: fix uninitialized variable warning
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Fri, 14 Dec 2012 23:37:26 +0000 (00:37 +0100)]
examples: use blocking notify
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Fri, 14 Dec 2012 23:37:09 +0000 (00:37 +0100)]
libubus: implement notify handling
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Fri, 14 Dec 2012 23:35:12 +0000 (00:35 +0100)]
libubus: fix segfaults on request timeouts
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Fri, 14 Dec 2012 23:32:27 +0000 (00:32 +0100)]
ubusd: implement notify forwarding with status reporting
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Fri, 14 Dec 2012 20:27:52 +0000 (21:27 +0100)]
libubus: check if subscriber cb is non-NULL before calling it
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Fri, 14 Dec 2012 19:05:34 +0000 (20:05 +0100)]
libubus: do not send a status reply if UBUS_ATTR_NO_REPLY is set
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Fri, 14 Dec 2012 19:05:06 +0000 (20:05 +0100)]
libubus: add UBUS_ATTR_NO_REPLY and add policy for UBUS_ATTR_ACTIVE
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Fri, 14 Dec 2012 18:48:26 +0000 (19:48 +0100)]
move ubus_start_request to libubus-req.c
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Fri, 14 Dec 2012 13:14:43 +0000 (14:14 +0100)]
libubus: remove accidentally committed unused header file
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Fri, 14 Dec 2012 13:13:27 +0000 (14:13 +0100)]
libubus: refactor code, move request handling to libubus-req.c
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Fri, 14 Dec 2012 12:42:10 +0000 (13:42 +0100)]
libubus: reduce code duplication and add stack depth protection for unsubscribe/notify callbacks
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Fri, 14 Dec 2012 12:11:40 +0000 (13:11 +0100)]
remove the "method" argument for object subscription
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Fri, 14 Dec 2012 12:00:49 +0000 (13:00 +0100)]
ubus: add notification for subscribers present/gone
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Thu, 13 Dec 2012 17:44:15 +0000 (18:44 +0100)]
watch add/remove -> subscribe/unsubscribe:
rename the ADD_WATCH/REMOVE_WATCH messages to SUBSCRIBE/UNSUBSCRIBE and change
the message format and libubus API in preparation for adding object notifications
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Tue, 11 Dec 2012 17:53:17 +0000 (18:53 +0100)]
ubusd: use avl_strcmp
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Tue, 30 Oct 2012 12:41:17 +0000 (13:41 +0100)]
libubus: fix stack space init for processing requests
Fixes client timeouts on invoke on some platforms
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau [Wed, 24 Oct 2012 12:37:44 +0000 (14:37 +0200)]
libubus: split out some code into separate source files
Felix Fietkau [Mon, 1 Oct 2012 13:03:26 +0000 (15:03 +0200)]
examples: split client/server code
Felix Fietkau [Mon, 1 Oct 2012 12:54:54 +0000 (14:54 +0200)]
move example to examples/
Jo-Philipp Wich [Wed, 17 Oct 2012 13:32:26 +0000 (15:32 +0200)]
lua: remove a superfluous lua_pop() when checking table style
Jo-Philipp Wich [Tue, 16 Oct 2012 16:37:31 +0000 (19:37 +0300)]
lua: fix ubus_lua_format_blob_is_array() to not leave garbage on the stack
Felix Fietkau [Mon, 1 Oct 2012 12:09:37 +0000 (14:09 +0200)]
add deferred reply to the ubus server example
Felix Fietkau [Mon, 1 Oct 2012 12:09:19 +0000 (14:09 +0200)]
add support for deferring a reply to a method invoke call
John Crispin [Fri, 28 Sep 2012 23:37:37 +0000 (01:37 +0200)]
lua: propagate incoming message to method callback inside the lua context
Signed-off-by: John Crispin <blogic@openwrt.org>
Felix Fietkau [Fri, 28 Sep 2012 21:10:23 +0000 (23:10 +0200)]
cli: add array and table types to method signature dump
John Crispin [Wed, 26 Sep 2012 16:27:10 +0000 (18:27 +0200)]
add lua binding test scripts
Signed-off-by: John Crispin <blogic@openwrt.org>
Felix Fietkau [Thu, 27 Sep 2012 12:00:49 +0000 (14:00 +0200)]
lua: add support for registering methods
Signed-off-by: John Crispin <blogic@openwrt.org>
Felix Fietkau [Thu, 27 Sep 2012 11:59:47 +0000 (13:59 +0200)]
lua: add uloop support
John Crispin [Wed, 26 Sep 2012 16:27:09 +0000 (18:27 +0200)]
lua: allow building the lua binding with vanilla lua
Signed-off-by: John Crispin <blogic@openwrt.org>
Felix Fietkau [Fri, 1 Jun 2012 08:08:58 +0000 (10:08 +0200)]
libubus: fix multiple inclusions of libubus.h
Felix Fietkau [Mon, 28 May 2012 22:56:37 +0000 (00:56 +0200)]
libubus: add support for reconnecting (and re-publishing objects)
Felix Fietkau [Mon, 28 May 2012 22:41:39 +0000 (00:41 +0200)]
enable -Wmissing-declarations
Felix Fietkau [Mon, 28 May 2012 22:41:27 +0000 (00:41 +0200)]
lua: add a prototype for luaopen_ubus so that -Wmissing-declarations can be enabled
Felix Fietkau [Mon, 28 May 2012 22:40:50 +0000 (00:40 +0200)]
make a few functions static
Felix Fietkau [Sat, 19 May 2012 19:09:50 +0000 (21:09 +0200)]
ubus-example: use object notification, add a simple client mode
Felix Fietkau [Sat, 19 May 2012 19:09:35 +0000 (21:09 +0200)]
ubusd: add support for watching objects to get notified when they go away
Felix Fietkau [Sat, 19 May 2012 14:21:22 +0000 (16:21 +0200)]
ubusd: allow registration of anonymous objects with type
Felix Fietkau [Fri, 18 May 2012 20:32:25 +0000 (22:32 +0200)]
uloop: do not use ULOOP_EDGE_TRIGGER for the blocking socket, it can miss some events due to races
Felix Fietkau [Sun, 6 May 2012 08:25:46 +0000 (10:25 +0200)]
lua: put LUAPATH in quotes to prevent weird error messages when it is unset
Felix Fietkau [Wed, 14 Mar 2012 15:32:06 +0000 (16:32 +0100)]
cli: prevent indenting if simple output is requested
Jo-Philipp Wich [Sat, 5 May 2012 20:37:46 +0000 (22:37 +0200)]
implement Lua binding
Felix Fietkau [Fri, 28 Oct 2011 20:21:52 +0000 (22:21 +0200)]
fix unused but set variable
Felix Fietkau [Thu, 27 Oct 2011 12:03:19 +0000 (14:03 +0200)]
libubus: limit stack depth for incoming invoke requests
Felix Fietkau [Thu, 27 Oct 2011 11:46:05 +0000 (13:46 +0200)]
libubus: fix recursive synchrnonous invoke commands
Felix Fietkau [Mon, 10 Oct 2011 14:47:49 +0000 (16:47 +0200)]
fix invalid message reuse in ubus_process_invoke
Felix Fietkau [Wed, 14 Sep 2011 15:09:19 +0000 (17:09 +0200)]
ubusd: fix a use after free bug
Felix Fietkau [Fri, 9 Sep 2011 15:53:22 +0000 (17:53 +0200)]
make the socket non-blocking, explicitly wait for data using poll()
Felix Fietkau [Mon, 5 Sep 2011 02:00:20 +0000 (04:00 +0200)]
add -v
Felix Fietkau [Mon, 5 Sep 2011 01:20:07 +0000 (03:20 +0200)]
add an error message for "unknown error"
Felix Fietkau [Mon, 5 Sep 2011 01:16:59 +0000 (03:16 +0200)]
add an error code for "operation not supported"
Felix Fietkau [Sat, 30 Jul 2011 15:57:17 +0000 (17:57 +0200)]
remove an unused-but-set variable
Felix Fietkau [Mon, 18 Jul 2011 11:08:53 +0000 (13:08 +0200)]
cli: indent call result data
Felix Fietkau [Fri, 17 Jun 2011 14:35:11 +0000 (16:35 +0200)]
add copyright/license information
Felix Fietkau [Wed, 13 Apr 2011 18:13:42 +0000 (20:13 +0200)]
add support for a const void * key in avl
Felix Fietkau [Sun, 27 Mar 2011 18:03:18 +0000 (20:03 +0200)]
simplify object signatures by reusing the parser policy to define them
Felix Fietkau [Sun, 27 Mar 2011 16:28:47 +0000 (18:28 +0200)]
suppress stderr output with -S
Felix Fietkau [Sun, 27 Mar 2011 15:40:46 +0000 (17:40 +0200)]
improve output for scripts
Felix Fietkau [Sun, 27 Mar 2011 00:39:14 +0000 (01:39 +0100)]
do not reverse method sorting order
Felix Fietkau [Sun, 27 Mar 2011 00:05:30 +0000 (01:05 +0100)]
use int8 as boolean
Felix Fietkau [Sat, 26 Feb 2011 16:26:21 +0000 (17:26 +0100)]
change the ubus signature type to int instead of the enum, as there are possible values not covered by the enum
Felix Fietkau [Sat, 12 Feb 2011 22:57:35 +0000 (23:57 +0100)]
change minimum cmake version to 2.6
Felix Fietkau [Fri, 11 Feb 2011 03:18:26 +0000 (04:18 +0100)]
remove array from the signature
Felix Fietkau [Fri, 11 Feb 2011 01:40:39 +0000 (02:40 +0100)]
add support for timeouts on synchronous requests
Felix Fietkau [Fri, 11 Feb 2011 00:21:07 +0000 (01:21 +0100)]
remove separate catch all list, always require a pattern argument for registering events, even if it is just *
Felix Fietkau [Thu, 10 Feb 2011 23:36:10 +0000 (00:36 +0100)]
add writev_retry to avoid incomplete writes
Felix Fietkau [Thu, 10 Feb 2011 00:37:32 +0000 (01:37 +0100)]
fix initial object event sequence number
Felix Fietkau [Thu, 10 Feb 2011 00:31:52 +0000 (01:31 +0100)]
add notifications for registered/unregistered objects with path
Felix Fietkau [Thu, 10 Feb 2011 00:21:24 +0000 (01:21 +0100)]
move event message formatting into a callback
Felix Fietkau [Thu, 10 Feb 2011 00:05:28 +0000 (01:05 +0100)]
split event sending from event forwarding
Felix Fietkau [Mon, 7 Feb 2011 19:43:43 +0000 (20:43 +0100)]
libubus: add an inline function for socket event handling
Felix Fietkau [Mon, 7 Feb 2011 17:54:27 +0000 (18:54 +0100)]
suppress -rdynamic when linking ubus
Felix Fietkau [Mon, 7 Feb 2011 15:43:30 +0000 (16:43 +0100)]
add missing include
Felix Fietkau [Mon, 7 Feb 2011 02:51:00 +0000 (03:51 +0100)]
implement event pattern matching
Felix Fietkau [Mon, 7 Feb 2011 02:20:05 +0000 (03:20 +0100)]
trim the wildcard of partial patterns to keep the avl tree sorted properly
Felix Fietkau [Mon, 7 Feb 2011 02:01:36 +0000 (03:01 +0100)]
remove some duplication
Felix Fietkau [Mon, 7 Feb 2011 01:54:00 +0000 (02:54 +0100)]
move more protocol related stuff to ubusd_proto.c
Felix Fietkau [Mon, 7 Feb 2011 01:41:56 +0000 (02:41 +0100)]
make ubus_msg_ref static
Felix Fietkau [Mon, 7 Feb 2011 01:40:40 +0000 (02:40 +0100)]
make ubusd_get_client_by_id static
Felix Fietkau [Mon, 7 Feb 2011 01:38:57 +0000 (02:38 +0100)]
make ubus_parse_msg static
Felix Fietkau [Mon, 7 Feb 2011 01:35:01 +0000 (02:35 +0100)]
add sender side length checks
Felix Fietkau [Mon, 7 Feb 2011 01:30:18 +0000 (02:30 +0100)]
cli: clean up code
Felix Fietkau [Mon, 7 Feb 2011 01:13:41 +0000 (02:13 +0100)]
remove some verbosity from the ubus example
Felix Fietkau [Mon, 7 Feb 2011 01:12:28 +0000 (02:12 +0100)]
reorder a few functions in libubus.h
Felix Fietkau [Mon, 7 Feb 2011 01:09:37 +0000 (02:09 +0100)]
remove unnecessary debug stuff