From 8fe98db5dd6738546db0d27c6823e3380df322d4 Mon Sep 17 00:00:00 2001 From: Benjamin Faershtein <119711889+RCGV1@users.noreply.github.com> Date: Sat, 8 Nov 2025 03:59:45 -0800 Subject: [PATCH] Drop PKI acks if there is no downlink on MQTTClientProxy (#8580) * Discard everything if downlink isn't on * Drop PKI packets when downlink not on --- src/mqtt/MQTT.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/mqtt/MQTT.cpp b/src/mqtt/MQTT.cpp index 40d03de63..f9f114039 100644 --- a/src/mqtt/MQTT.cpp +++ b/src/mqtt/MQTT.cpp @@ -66,6 +66,20 @@ inline void onReceiveProto(char *topic, byte *payload, size_t length) (strcmp(e.channel_id, channels.getGlobalId(ch.index)) == 0 && ch.settings.downlink_enabled))) { return; } + + bool anyChannelHasDownlink = false; + size_t numChan = channels.getNumChannels(); + for (size_t i = 0; i < numChan; ++i) { + const auto &c = channels.getByIndex(i); + if (c.settings.downlink_enabled) { + anyChannelHasDownlink = true; + break; + } + } + + if (strcmp(e.channel_id, "PKI") == 0 && !anyChannelHasDownlink) { + return; + } // Generate node ID from nodenum for comparison std::string nodeId = nodeDB->getNodeId(); if (strcmp(e.gateway_id, nodeId.c_str()) == 0) {