From bd87970aaec8c10ab6fb47e088360bcc9db83be3 Mon Sep 17 00:00:00 2001 From: Marian Craciunescu Date: Fri, 4 May 2018 17:18:15 +0300 Subject: [PATCH] add http client configurable timeout usefull when download is slow on server side (#4705) * add http client configurable timeout usefull when download is slow from server side * member init outside constructor body. * removed this. --- libraries/ESP8266httpUpdate/library.properties | 2 +- libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.cpp | 8 +++++++- libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.h | 3 +++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/libraries/ESP8266httpUpdate/library.properties b/libraries/ESP8266httpUpdate/library.properties index 2116c04a0..94a8499b8 100644 --- a/libraries/ESP8266httpUpdate/library.properties +++ b/libraries/ESP8266httpUpdate/library.properties @@ -1,5 +1,5 @@ name=ESP8266httpUpdate -version=1.1 +version=1.2 author=Markus Sattler maintainer=Markus Sattler sentence=Http Update for ESP8266 diff --git a/libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.cpp b/libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.cpp index f08aa1ede..92f1bfd85 100644 --- a/libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.cpp +++ b/libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.cpp @@ -30,6 +30,12 @@ extern "C" uint32_t _SPIFFS_start; extern "C" uint32_t _SPIFFS_end; ESP8266HTTPUpdate::ESP8266HTTPUpdate(void) + : _httpClientTimeout(8000) +{ +} + +ESP8266HTTPUpdate::ESP8266HTTPUpdate(int httpClientTimeout) + : _httpClientTimeout(httpClientTimeout) { } @@ -170,7 +176,7 @@ HTTPUpdateResult ESP8266HTTPUpdate::handleUpdate(HTTPClient& http, const String& // use HTTP/1.0 for update since the update handler not support any transfer Encoding http.useHTTP10(true); - http.setTimeout(8000); + http.setTimeout(_httpClientTimeout); http.setUserAgent(F("ESP8266-http-Update")); http.addHeader(F("x-ESP8266-STA-MAC"), WiFi.macAddress()); http.addHeader(F("x-ESP8266-AP-MAC"), WiFi.softAPmacAddress()); diff --git a/libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.h b/libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.h index 0413f4656..ec532c290 100644 --- a/libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.h +++ b/libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.h @@ -64,6 +64,7 @@ class ESP8266HTTPUpdate { public: ESP8266HTTPUpdate(void); + ESP8266HTTPUpdate(int httpClientTimeout); ~ESP8266HTTPUpdate(void); void rebootOnUpdate(bool reboot) @@ -103,6 +104,8 @@ protected: int _lastError; bool _rebootOnUpdate = true; +private: + int _httpClientTimeout; }; #if !defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_HTTPUPDATE)