[openwrt/openwrt] unetmsg: only send publish notifications for remote publisher changes

LEDE Commits lede-commits at lists.infradead.org
Mon Feb 16 00:21:01 PST 2026


nbd pushed a commit to openwrt/openwrt.git, branch openwrt-25.12:
https://git.openwrt.org/40a7b55d70681db008427c11cfad56e3c78908c9

commit 40a7b55d70681db008427c11cfad56e3c78908c9
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Sat Feb 7 08:02:24 2026 +0000

    unetmsg: only send publish notifications for remote publisher changes
    
    handle_publish() notifies local subscribers about publisher state
    changes. The publish/subscribe handler in network_socket_handle_request()
    was calling it for both remote publish and subscribe changes, but
    subscriber changes are not relevant to local subscribers.
    
    Guard the handle_publish() calls with a msgtype == "publish" check,
    matching the local client paths in unetmsgd-client.uc which already
    have this guard.
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
    (cherry picked from commit e0722d0ac41b931e8a3b79c439a029844e89cbad)
---
 .../unetmsg/files/usr/share/ucode/unetmsg/unetmsgd-remote.uc       | 7 ++++---
 1 file changed, 4 insertions(+), 3 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 c7301e1a09..e5f1b7fb5f 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
@@ -104,7 +104,7 @@ function network_socket_handle_request(sock_data, req)
 			return;
 		if (args.enabled) {
 			if (list[name]) {
-				if (tx_auth)
+				if (tx_auth && msgtype == "publish")
 					core.handle_publish(null, name);
 				return 0;
 			}
@@ -124,13 +124,14 @@ function network_socket_handle_request(sock_data, req)
 				network: sock_data.network,
 				name: host,
 			}, pubsub_proto);
-			if (tx_auth)
+			if (tx_auth && msgtype == "publish")
 				core.handle_publish(null, name);
 			list[name] = true;
 		} else {
 			if (!list[name])
 				return 0;
-			core.handle_publish(null, name);
+			if (msgtype == "publish")
+				core.handle_publish(null, name);
 			delete core["remote_" + msgtype][name][host];
 			delete list[name];
 		}




More information about the lede-commits mailing list