From 94bb90322bf85de2c9ec592858f20643161bc11f Mon Sep 17 00:00:00 2001 From: tablatronix <807787+tablatronix@users.noreply.github.com> Date: Thu, 18 Aug 2022 22:10:41 -0500 Subject: [PATCH] #1403 try to increase hostname reliability and keep connect times low --- WiFiManager.cpp | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/WiFiManager.cpp b/WiFiManager.cpp index 25d0d2d..6f699fa 100644 --- a/WiFiManager.cpp +++ b/WiFiManager.cpp @@ -272,17 +272,19 @@ boolean WiFiManager::autoConnect(char const *apName, char const *apPassword) { DEBUG_WM(F("AutoConnect")); #endif - // sethostname before wifi ready - // https://github.com/tzapu/WiFiManager/issues/1403 #ifdef ESP32 - if(_hostname != ""){ - setupHostname(false); - } - #endif + setupHostname(true); - #ifdef ESP32 - if(WiFi.getMode() != WIFI_STA){ - WiFi.mode(WIFI_STA); + if(_hostname){ + // disable wifi if already on + if(WiFi.getMode() & WIFI_STA){ + WiFi.mode(WIFI_OFF); + int timeout = millis()+1200; + // async loop for mode change + while(WiFi.getMode()!= WIFI_OFF && millis()