From: Felix Fietkau Date: Fri, 6 Feb 2026 09:30:49 +0000 (+0000) Subject: unetmsg: close all channels on network removal X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=389a79d97230fbd31de98a7f8896302ad284c114;p=thirdparty%2Fopenwrt.git unetmsg: close all channels on network removal network_close() only closed the listening socket without shutting down established RX/TX connections. This left remote state in core.remote_publish/core.remote_subscribe for hosts on the removed network, causing stale entries in channel listings and failed routing attempts. Close all RX and TX channels before removing the network, which also triggers remote state cleanup via network_rx_socket_close(). Signed-off-by: Felix Fietkau --- 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 54e77596f16..f6b0ef2d595 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 @@ -449,6 +449,13 @@ function network_close(name) net.timer.cancel(); net.handle.delete(); net.socket.close(); + + for (let peer, sock_data in net.rx_channels) + network_rx_socket_close(sock_data); + + for (let peer, sock_data in net.tx_channels) + network_tx_socket_close(sock_data); + delete networks[name]; }