libubus: add support for using channels master
authorFelix Fietkau <nbd@nbd.name>
Tue, 31 Dec 2024 11:54:06 +0000 (12:54 +0100)
committerFelix Fietkau <nbd@nbd.name>
Thu, 2 Jan 2025 12:40:21 +0000 (13:40 +0100)
commitafa57cce0aff82f4a7a0e509d4387ebc23dd3be7
tree5e8a55021cdbf8a6241b21ef81df2bbf1c6bdabf
parentd996988ae55b6af12e4611fdd758a2f0ad27a9a1
libubus: add support for using channels

A channel is a context that is directly connected to a peer instead of going
through ubusd. The use of this context is limited to calling ubus_invoke and
receiving requests not bound to any registered object.

The main use case for this is having a more stateful interaction between
processes. A service using channels can attach metadata to each individual
channel and keep track of its lifetime, which is not possible through
the regular subscribe/notify mechanism.
Using channels also improves request latency, since messages are passed
directly between processes.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
libubus-io.c
libubus-obj.c
libubus-req.c
libubus-sub.c
libubus.c
libubus.h
ubusmsg.h