diff options
| author | John Crispin | 2026-02-06 07:41:49 +0000 |
|---|---|---|
| committer | Felix Fietkau | 2026-02-07 09:04:18 +0000 |
| commit | 7fd71f2c7424c75f6aca26f523e084012b122714 (patch) | |
| tree | 5975e88ea2bbbcb5a60113aa04d596cb1ea5b646 | |
| parent | e0722d0ac41b931e8a3b79c439a029844e89cbad (diff) | |
| download | openwrt-7fd71f2c7424c75f6aca26f523e084012b122714.tar.gz | |
unetmsg: notify subscribers when remote peer connection drops
When a remote peer's connection drops (device powered off, unetmsgd
crash, network failure), network_rx_cleanup_state silently removed
the remote publish/subscribe handles without notifying local
subscribers. This meant local clients had no way to detect that a
remote peer had disappeared.
Call handle_publish for each channel where a remote publish handle
is removed during connection cleanup, so local subscribers receive
the publisher change notification and can react accordingly.
Signed-off-by: John Crispin <john@phrozen.org>
| -rw-r--r-- | package/network/services/unetmsg/files/usr/share/ucode/unetmsg/unetmsgd-remote.uc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/package/network/services/unetmsg/files/usr/share/ucode/unetmsg/unetmsgd-remote.uc b/package/network/services/unetmsg/files/usr/share/ucode/unetmsg/unetmsgd-remote.uc index e5f1b7fb5f..a02ba08c67 100644 --- a/package/network/services/unetmsg/files/usr/share/ucode/unetmsg/unetmsgd-remote.uc +++ b/package/network/services/unetmsg/files/usr/share/ucode/unetmsg/unetmsgd-remote.uc @@ -51,8 +51,12 @@ function network_rx_cleanup_state(name) for (let cur, sub in core.remote_subscribe) delete sub[name]; - for (let cur, sub in core.remote_publish) + for (let cur, sub in core.remote_publish) { + if (!sub[name]) + continue; delete sub[name]; + core.handle_publish(null, cur); + } } function network_rx_socket_close(data) |