]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
unetmsg: fix inverted condition in network_rx_socket_close()
authorFelix Fietkau <nbd@nbd.name>
Fri, 6 Feb 2026 09:30:26 +0000 (09:30 +0000)
committerFelix Fietkau <nbd@nbd.name>
Mon, 16 Feb 2026 08:09:16 +0000 (08:09 +0000)
The cleanup condition checked != instead of ==, inverting the logic.
This caused two problems:

When an authenticated RX connection disconnected, remote state for that
host was never cleaned up since the stored entry matched the one being
closed.

When a stale unauthenticated connection from a peer closed, any existing
authenticated connection from the same peer was incorrectly deleted and
its remote state wiped.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit f09596f84f3572d963e1c893762fd105b4ceee2e)

package/network/services/unetmsg/files/usr/share/ucode/unetmsg/unetmsgd-remote.uc

index 1f1c97a2cae7ab14684f9374112944547c3a2fc3..54e77596f16f9183898c4706619976a6289b7dee 100644 (file)
@@ -62,7 +62,7 @@ function network_rx_socket_close(data)
 
        core.dbg(`Incoming connection from ${data.name} closed\n`);
        let net = networks[data.network];
-       if (net && net.rx_channels[data.name] != data) {
+       if (net && net.rx_channels[data.name] == data) {
                delete net.rx_channels[data.name];
                network_rx_cleanup_state(data.name);
        }