From fac64900dd1d56d2724755346b72866a08d8db94 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Tue, 26 Dec 2017 18:01:28 +0100 Subject: [PATCH] Configurable WiFiClientSecure connect timeout, better default value (#4027) * WiFiClientSecure: use _timeout setting when connecting This timeout value can be customized via a call to setTimeout function. Closes https://github.com/esp8266/Arduino/issues/3944. * WiFiClientSecure: increase default connection timeout to 15 sec --- libraries/ESP8266WiFi/src/WiFiClientSecure.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp b/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp index 55d16adda..d94e41f8f 100644 --- a/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp +++ b/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp @@ -404,6 +404,8 @@ ClientContext* SSLContext::s_io_ctx = nullptr; WiFiClientSecure::WiFiClientSecure() { + // TLS handshake may take more than the 5 second default timeout + _timeout = 15000; } WiFiClientSecure::~WiFiClientSecure() @@ -459,7 +461,7 @@ int WiFiClientSecure::_connectSSL(const char* hostName) _ssl = new SSLContext; _ssl->ref(); } - _ssl->connect(_client, hostName, 5000); + _ssl->connect(_client, hostName, _timeout); auto status = ssl_handshake_status(*_ssl); if (status != SSL_OK) {