diff --git a/WiFiManager.cpp b/WiFiManager.cpp index 343be0f..87dbe5f 100644 --- a/WiFiManager.cpp +++ b/WiFiManager.cpp @@ -159,6 +159,14 @@ boolean WiFiManager::autoConnect(char const *apName, char const *apPassword, boo return startConfigPortal(apName, apPassword); } +boolean WiFiManager::configPortalHasTimeout(){ + if(_configPortalTimeout == 0 || wifi_softap_get_station_num() > 0){ + _configPortalStart = millis(); // kludge, bump configportal start time to skew timeouts + return false; + } + return (millis() > _configPortalStart + _configPortalTimeout); +} + boolean WiFiManager::startConfigPortal() { String ssid = "ESP" + String(ESP.getChipId()); return startConfigPortal(ssid.c_str(), NULL); @@ -180,7 +188,11 @@ boolean WiFiManager::startConfigPortal(char const *apName, char const *apPasswo connect = false; setupConfigPortal(); - while (_configPortalTimeout == 0 || millis() < _configPortalStart + _configPortalTimeout) { + while(1){ + + // check if timeout + if(configPortalHasTimeout()) break; + //DNS dnsServer->processNextRequest(); //HTTP diff --git a/WiFiManager.h b/WiFiManager.h index 3edff0a..69609ac 100644 --- a/WiFiManager.h +++ b/WiFiManager.h @@ -161,6 +161,7 @@ class WiFiManager void handleNotFound(); void handle204(); boolean captivePortal(); + boolean configPortalHasTimeout(); // DNS server const byte DNS_PORT = 53; diff --git a/examples/AutoConnect/AutoConnect.ino b/examples/AutoConnect/AutoConnect.ino index 37ff392..0c44909 100644 --- a/examples/AutoConnect/AutoConnect.ino +++ b/examples/AutoConnect/AutoConnect.ino @@ -17,7 +17,7 @@ void setup() { //wifiManager.resetSettings(); //set custom ip for portal - //wifiManager.setAPConfig(IPAddress(10,0,1,1), IPAddress(10,0,1,1), IPAddress(255,255,255,0)); + //wifiManager.setAPStaticIPConfig(IPAddress(10,0,1,1), IPAddress(10,0,1,1), IPAddress(255,255,255,0)); //fetches ssid and pass from eeprom and tries to connect //if it does not connect it starts an access point with the specified name diff --git a/extras/WiFiManager.template.html b/extras/WiFiManager.template.html index d510e9c..e15593b 100644 --- a/extras/WiFiManager.template.html +++ b/extras/WiFiManager.template.html @@ -58,7 +58,7 @@


-
+