mirror of
https://github.com/esp8266/Arduino.git
synced 2025-07-11 15:22:13 +03:00
fixes for WiFiClient::write(Stream) (#7987)
fixes for WiFiClient::write(Stream) and Stream transfers - remove deprecated WiFiClient::write(Stream,size) - fix and deprecate WiFiClient::write(Stream) to use Stream::sendAll instead of ::sendAvailable - update ESP8266WebServer::streamFile to use file.sendAll(client) instead of client.write(file) - remove stream dependence in ClientContext - Stream::send(): honor timeout in all case, avoid short transfer when output is temporarily full - example WiFiEcho: show sendAll and sendAvailable
This commit is contained in:
@ -104,10 +104,7 @@ size_t Stream::SendGenericPeekBuffer(Print* to, const ssize_t len, const int rea
|
||||
{
|
||||
peekConsume(w);
|
||||
written += w;
|
||||
if (maxLen)
|
||||
{
|
||||
timedOut.reset();
|
||||
}
|
||||
timedOut.reset(); // something has been written
|
||||
}
|
||||
if (foundChar)
|
||||
{
|
||||
@ -116,12 +113,6 @@ size_t Stream::SendGenericPeekBuffer(Print* to, const ssize_t len, const int rea
|
||||
}
|
||||
}
|
||||
|
||||
if (!w && !maxLen && readUntilChar < 0)
|
||||
{
|
||||
// nothing has been transferred and no specific condition is requested
|
||||
break;
|
||||
}
|
||||
|
||||
if (timedOut)
|
||||
{
|
||||
// either (maxLen>0) nothing has been transferred for too long
|
||||
@ -195,16 +186,7 @@ size_t Stream::SendGenericRegularUntil(Print* to, const ssize_t len, const int r
|
||||
break;
|
||||
}
|
||||
written += 1;
|
||||
if (maxLen)
|
||||
{
|
||||
timedOut.reset();
|
||||
}
|
||||
}
|
||||
|
||||
if (!w && !maxLen && readUntilChar < 0)
|
||||
{
|
||||
// nothing has been transferred and no specific condition is requested
|
||||
break;
|
||||
timedOut.reset(); // something has been written
|
||||
}
|
||||
|
||||
if (timedOut)
|
||||
@ -288,16 +270,7 @@ size_t Stream::SendGenericRegular(Print* to, const ssize_t len, const esp8266::p
|
||||
setReport(Report::WriteError);
|
||||
break;
|
||||
}
|
||||
if (maxLen && w)
|
||||
{
|
||||
timedOut.reset();
|
||||
}
|
||||
}
|
||||
|
||||
if (!w && !maxLen)
|
||||
{
|
||||
// nothing has been transferred and no specific condition is requested
|
||||
break;
|
||||
timedOut.reset(); // something has been written
|
||||
}
|
||||
|
||||
if (timedOut)
|
||||
|
Reference in New Issue
Block a user