diff --git a/libraries/ESP8266WiFi/src/WiFiClient.cpp b/libraries/ESP8266WiFi/src/WiFiClient.cpp index fb10209ec0..bdb29eb08c 100644 --- a/libraries/ESP8266WiFi/src/WiFiClient.cpp +++ b/libraries/ESP8266WiFi/src/WiFiClient.cpp @@ -387,6 +387,16 @@ void WiFiClient::abort() _client->abort(); // Wich in turn calls tcp_abort which calls tcp_abandon(). } +// In case you need to increase/decrease timeout current value +bool WiFiClient::setTimeout( int timeout_ms ) +{ + if ( timeout_ms <= 0 || timeout_ms > 3600000 ) return(false); // More than 0 and less than 1 hour + _timeout = timeout_ms; + if (!_client) return(true); + else _client->setTimeout(_timeout); + return(true); +} + void WiFiClient::stopAll() { for (WiFiClient* it = _s_first; it; it = it->_next) { diff --git a/libraries/ESP8266WiFi/src/WiFiClient.h b/libraries/ESP8266WiFi/src/WiFiClient.h index 711adb6204..64829562e3 100644 --- a/libraries/ESP8266WiFi/src/WiFiClient.h +++ b/libraries/ESP8266WiFi/src/WiFiClient.h @@ -151,6 +151,12 @@ class WiFiClient : public Client, public SList { // Immediately stops this client instance. // Unlike stop(), does not wait to gracefuly shutdown the connection. void abort(); + + // Default timeout is set to 5000 ms. + // setTimeout gives the possibility to adjust this value. + // getTimeout return the timeout current value. + bool setTimeout( int ); + int getTimeout(); protected: