A message system like D-Bus for Liminix, taken from OpenWRT's ubus
5f87f5480e
Even with the tx_queue-ing issue resolved, what seems to happen afterwards, is that all the messages seems to get through, but the client still loops in the `ubus_complete_request()` waiting for `req->status_msg` or for a timeout. Though, the timeout does not seem to happen, because the data is processed in `ubus_poll_data()`, with a infinite poll() timeout (ubus_complete_request() is called with timeout 0). It's likely that either the `seq` or `peer` sent from ubusd are wrong, and the client cannot get the correct ubus request in `ubus_process_req_msg()`. I haven't digged too deep into this ; setting the `retmsg` object on the client struct seems to have resolved any hanging with the `ubus list` command. Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com> Signed-off-by: Felix Fietkau <nbd@nbd.name> [fix placement of retmsg in cl] |
||
---|---|---|
examples | ||
lua | ||
.gitignore | ||
cli.c | ||
CMakeLists.txt | ||
libubus-acl.c | ||
libubus-internal.h | ||
libubus-io.c | ||
libubus-obj.c | ||
libubus-req.c | ||
libubus-sub.c | ||
libubus.c | ||
libubus.h | ||
ubus_common.h | ||
ubusd.c | ||
ubusd.h | ||
ubusd_acl.c | ||
ubusd_acl.h | ||
ubusd_event.c | ||
ubusd_id.c | ||
ubusd_id.h | ||
ubusd_monitor.c | ||
ubusd_obj.c | ||
ubusd_obj.h | ||
ubusd_proto.c | ||
ubusmsg.h |