diff --git a/libraries/ArduinoOTA/ArduinoOTA.cpp b/libraries/ArduinoOTA/ArduinoOTA.cpp index 0bc92989a1..57fcd6fad7 100644 --- a/libraries/ArduinoOTA/ArduinoOTA.cpp +++ b/libraries/ArduinoOTA/ArduinoOTA.cpp @@ -303,7 +303,7 @@ void ArduinoOTAClass::_runUpdate() { client.setNoDelay(true); uint32_t written, total = 0; - while (!Update.isFinished() && client.connected()) { + while (!Update.isFinished() && (client.connected() || client.available())) { int waited = 1000; while (!client.available() && waited--) delay(1); diff --git a/libraries/ESP8266WebServer/src/ESP8266WebServer-impl.h b/libraries/ESP8266WebServer/src/ESP8266WebServer-impl.h index 1efcf92e5e..9360f7deac 100644 --- a/libraries/ESP8266WebServer/src/ESP8266WebServer-impl.h +++ b/libraries/ESP8266WebServer/src/ESP8266WebServer-impl.h @@ -319,7 +319,7 @@ void ESP8266WebServerTemplate::handleClient() { bool keepCurrentClient = false; bool callYield = false; - if (_currentClient.connected()) { + if (_currentClient.connected() || _currentClient.available()) { switch (_currentStatus) { case HC_NONE: // No-op to avoid C++ compiler warning