Strip .local from mDNS resolution

This commit is contained in:
Blaž Kristan 2025-07-15 10:32:10 +02:00
parent 79b3bc2573
commit 24f2306129

View File

@ -214,8 +214,10 @@ bool initMqtt()
mqtt->setServer(mqttIP, mqttPort); mqtt->setServer(mqttIP, mqttPort);
} else { } else {
#ifdef ARDUINO_ARCH_ESP32 #ifdef ARDUINO_ARCH_ESP32
if (strlen(cmDNS) > 0 && strchr(mqttServer, '.') == nullptr) { // if mDNS is enabled and server does not have domain String mqttMDNS = mqttServer;
mqttIP = MDNS.queryHost(mqttServer); mqttMDNS.replace(F(".local"), ""); // remove .local if present
if (strlen(cmDNS) > 0 && mqttMDNS.length() > 0 && mqttMDNS.indexOf('.') < 0) { // if mDNS is enabled and server does not have domain
mqttIP = MDNS.queryHost(mqttMDNS.c_str());
if (mqttIP != IPAddress()) // if MDNS resolved the hostname if (mqttIP != IPAddress()) // if MDNS resolved the hostname
mqtt->setServer(mqttIP, mqttPort); mqtt->setServer(mqttIP, mqttPort);
else else