diff --git a/libraries/ESP8266WiFi/src/WiFiClient.cpp b/libraries/ESP8266WiFi/src/WiFiClient.cpp index 707e486cc..8f07b4d03 100644 --- a/libraries/ESP8266WiFi/src/WiFiClient.cpp +++ b/libraries/ESP8266WiFi/src/WiFiClient.cpp @@ -138,6 +138,34 @@ size_t ICACHE_FLASH_ATTR WiFiClient::write(const uint8_t *buf, size_t size) return _client->write(reinterpret_cast(buf), size); } +size_t ICACHE_FLASH_ATTR WiFiClient::write(Stream &src) +{ + uint8_t obuf[1460]; + size_t doneLen = 0; + size_t sentLen; + int i; + + while (src.available() > 1460) + { + for(i=0;i<1460;i++) obuf[i] = src.read(); + sentLen = write(obuf, 1460); + doneLen = doneLen + sentLen; + if(sentLen != 1460){ + DEBUGV("Sent: %u < 1460\r\n", sentLen); + return doneLen; + } + } + + uint16_t leftLen = src.available(); + for(i=0;i