From: John Crispin Date: Fri, 6 Feb 2026 07:41:49 +0000 (+0100) Subject: unetmsg: notify subscribers when remote peer connection drops X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7fd71f2c7424c75f6aca26f523e084012b122714;p=thirdparty%2Fopenwrt.git 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 --- 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 e5f1b7fb5f9..a02ba08c671 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)