Alexandru Ardelean
e52db46c9c
libubus: restore uloop_cancelled on timeout
...
Context: 1 loop with a single ubus_invoke() that times out calls
uloop_end() which ends the loop, and thus ends the application.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2014-09-15 15:48:54 +02:00
Felix Fietkau
3e45a782b2
libubus: remove ubus_msghdr_data() by passing in the right data structure pointer
...
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2014-09-15 15:33:27 +02:00
Alexandru Ardelean
f47005a44c
libubus: fix ubus_invoke() to return err in case ubus_start_request() fails
...
Seems the UBUS_MAX_MSGLEN is ignored by ubus_invoke(),
and then segfault happens.
This issue is present before this set of patches.
2014-07-03 12:46:44 +02:00
Felix Fietkau
3869e0ca07
libubus: fix deferring invoke processing for non-uloop usage
...
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2014-06-25 10:24:27 +02:00
Felix Fietkau
bbd3fbc9cc
libubus: always defer processing incoming invoke/unsubscribe/notify if there is a request pending
...
This fixes recursion problems on config reload in netifd and simplifies
application handling of requests
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2014-06-24 22:34:53 +02:00
Felix Fietkau
1d5ac421a5
libubus: do not use uloop_run() inside ubus_complete_request
...
Avoid unrelated uloop callbacks by using poll() on the ubus fd instead.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2014-03-18 22:36:38 +01:00
Felix Fietkau
47a9ab0c64
libubus: implement file descriptor passing support
...
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2014-02-18 15:03:53 +01:00
Felix Fietkau
a9ee3ef0cf
libubus: pull the variable length data array out of struct ubus_msghdr to fix builds with clang
...
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2013-10-29 17:28:37 +01:00
Felix Fietkau
f72dca720b
libubus: fix logic inversion for cancelling requests
...
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2013-05-30 12:39:51 +02:00
Felix Fietkau
dd3afa517d
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>
2013-05-11 20:39:54 +02:00
Felix Fietkau
460301e62d
libubus: fix synchronous ubus_notify without waiting for a timeout
...
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2013-03-17 17:55:11 +01:00
Felix Fietkau
4b9ed896cf
libubus: fix uninitialized variable warning
...
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2012-12-15 14:11:15 +01:00
Felix Fietkau
f3fabd45a7
libubus: implement notify handling
...
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2012-12-15 00:37:09 +01:00
Felix Fietkau
c2158ae53c
libubus: fix segfaults on request timeouts
...
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2012-12-15 00:35:12 +01:00
Felix Fietkau
2224658580
move ubus_start_request to libubus-req.c
...
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2012-12-14 19:48:26 +01:00
Felix Fietkau
2cae3fb422
libubus: refactor code, move request handling to libubus-req.c
...
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
2012-12-14 14:13:27 +01:00