diff --git a/libraries/WiFiS3/src/WiFi.cpp b/libraries/WiFiS3/src/WiFi.cpp index 7e73b94f..f485d0be 100644 --- a/libraries/WiFiS3/src/WiFi.cpp +++ b/libraries/WiFiS3/src/WiFi.cpp @@ -329,11 +329,10 @@ IPAddress CWifi::localIP() { /* -------------------------------------------------------------------------- */ modem.begin(); string res = ""; - int attempts = 0; IPAddress local_IP(0,0,0,0); + unsigned long start_time = millis(); do { - delay(100); if(modem.write(string(PROMPT(_MODE)),res, "%s" , CMD_READ(_MODE))) { if(atoi(res.c_str()) == 1) { if(modem.write(string(PROMPT(_IPSTA)),res, "%s%d\r\n" , CMD_WRITE(_IPSTA), IP_ADDR)) { @@ -349,9 +348,8 @@ IPAddress CWifi::localIP() { } } } - attempts++; } - while(local_IP == IPAddress(0,0,0,0) && attempts < 50); + while((local_IP == IPAddress(0,0,0,0)) && (millis() - start_time < _timeout)); return local_IP; }