1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-19 23:22:16 +03:00

simplifying internal code using stream::send api (#7995)

This commit is contained in:
david gauchard 2021-05-15 18:13:05 +02:00 committed by GitHub
parent 4462fea2a6
commit 6da2bfb664
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -333,28 +333,12 @@ size_t WiFiClientSecureCtx::write_P(PGM_P buf, size_t size) {
return _write((const uint8_t *)buf, size, true); return _write((const uint8_t *)buf, size, true);
} }
// We have to manually read and send individual chunks.
size_t WiFiClientSecureCtx::write(Stream& stream) { size_t WiFiClientSecureCtx::write(Stream& stream) {
size_t totalSent = 0;
size_t countRead;
size_t countSent;
if (!connected() || !_handshake_done) { if (!connected() || !_handshake_done) {
DEBUG_BSSL("write: Connect/handshake not completed yet\n"); DEBUG_BSSL("write: Connect/handshake not completed yet\n");
return 0; return 0;
} }
return stream.sendAll(this);
do {
uint8_t temp[256]; // Temporary chunk size same as ClientContext
countSent = 0;
countRead = stream.readBytes(temp, sizeof(temp));
if (countRead) {
countSent = _write((const uint8_t*)temp, countRead, true);
totalSent += countSent;
}
yield(); // Feed the WDT
} while ((countSent == countRead) && (countSent > 0));
return totalSent;
} }
int WiFiClientSecureCtx::read(uint8_t *buf, size_t size) { int WiFiClientSecureCtx::read(uint8_t *buf, size_t size) {