diff --git a/include/WiFiSettings.h b/include/WiFiSettings.h index bbc33098..89e6ac78 100644 --- a/include/WiFiSettings.h +++ b/include/WiFiSettings.h @@ -26,6 +26,7 @@ private: IPAddress apIp; IPAddress apNetmask; std::unique_ptr dnsServer; + bool dnsServerStatus = false; }; extern WiFiSettingsClass WiFiSettings; \ No newline at end of file diff --git a/src/WiFiSettings.cpp b/src/WiFiSettings.cpp index d736e997..dcaaf7d7 100644 --- a/src/WiFiSettings.cpp +++ b/src/WiFiSettings.cpp @@ -24,8 +24,10 @@ void WiFiSettingsClass::setupMode() WiFi.softAP((const char*)ssidString.c_str(), ACCESS_POINT_PASSWORD); dnsServer->setErrorReplyCode(DNSReplyCode::NoError); dnsServer->start(DNS_PORT, "*", WiFi.softAPIP()); + dnsServerStatus = true; } else { dnsServer->stop(); + dnsServerStatus = false; WiFi.mode(WIFI_STA); } } @@ -90,7 +92,9 @@ void WiFiSettingsClass::loop() } } } - dnsServer->processNextRequest(); + if (dnsServerStatus) { + dnsServer->processNextRequest(); + } } void WiFiSettingsClass::applyConfig()