Initial chunked transfer encoding.

Important for convert-to on larger documents and/or with newer curls.

Change-Id: Id18be6d22741a3af7cee39a069c509e4f662977b
This commit is contained in:
Michael Meeks
2019-05-22 03:21:50 +01:00
parent cbbe43fcff
commit 9d723cb230
5 changed files with 184 additions and 19 deletions

View File

@ -692,7 +692,7 @@ protected:
LOG_TRC("Incoming client websocket upgrade response: " << std::string(&socket->getInBuffer()[0], socket->getInBuffer().size()));
bool bOk = false;
size_t responseSize = 0;
StreamSocket::MessageMap map;
try
{
@ -708,7 +708,7 @@ protected:
marker.begin(), marker.end());
if (itBody != socket->getInBuffer().end())
responseSize = itBody - socket->getInBuffer().begin() + marker.size();
map._headerSize = itBody - socket->getInBuffer().begin() + marker.size();
}
if (response.getStatus() == Poco::Net::HTTPResponse::HTTP_SWITCHING_PROTOCOLS &&
@ -737,7 +737,7 @@ protected:
LOG_DBG("handleClientUpgrade exception caught.");
}
if (!bOk || responseSize == 0)
if (!bOk || map._headerSize == 0)
{
LOG_ERR("Bad websocker server response.");
@ -746,7 +746,7 @@ protected:
}
setWebSocket();
socket->eraseFirstInputBytes(responseSize);
socket->eraseFirstInputBytes(map);
}
#endif