diff options
| author | Felix Fietkau | 2026-02-07 08:02:24 +0000 |
|---|---|---|
| committer | Felix Fietkau | 2026-02-07 09:04:18 +0000 |
| commit | e0722d0ac41b931e8a3b79c439a029844e89cbad (patch) | |
| tree | 471d05c622730853bd70a38723bbbb719251bc3f | |
| parent | 212040b5cac619ec8009b0b4262d11b4e3abfdc4 (diff) | |
| download | openwrt-e0722d0ac41b931e8a3b79c439a029844e89cbad.tar.gz | |
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@nbd.name>
| -rw-r--r-- | package/network/services/unetmsg/files/usr/share/ucode/unetmsg/unetmsgd-remote.uc | 7 |
1 files 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]; } |