From c22f64425ce3f6853ce4cccf355a4f84a1c5a6b9 Mon Sep 17 00:00:00 2001 From: pennam Date: Mon, 10 Feb 2025 16:59:28 +0100 Subject: [PATCH 1/2] WiFiS3: add timeout check on localIP() --- libraries/WiFiS3/src/WiFi.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libraries/WiFiS3/src/WiFi.cpp b/libraries/WiFiS3/src/WiFi.cpp index 7e73b94f1..4459a938e 100644 --- a/libraries/WiFiS3/src/WiFi.cpp +++ b/libraries/WiFiS3/src/WiFi.cpp @@ -329,9 +329,9 @@ 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))) { @@ -349,9 +349,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; } From 6605efe5716a0ab8368de21c78c1dd7c89b26837 Mon Sep 17 00:00:00 2001 From: pennam Date: Mon, 10 Feb 2025 17:03:45 +0100 Subject: [PATCH 2/2] WiFiS3: remove delay() call from localIP --- libraries/WiFiS3/src/WiFi.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/libraries/WiFiS3/src/WiFi.cpp b/libraries/WiFiS3/src/WiFi.cpp index 4459a938e..f485d0bee 100644 --- a/libraries/WiFiS3/src/WiFi.cpp +++ b/libraries/WiFiS3/src/WiFi.cpp @@ -333,7 +333,6 @@ IPAddress CWifi::localIP() { 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)) {