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>
return;
if (args.enabled) {
if (list[name]) {
- if (tx_auth)
+ if (tx_auth && msgtype == "publish")
core.handle_publish(null, name);
return 0;
}
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];
}