[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/4.5/kdelibs/kioslave/http
From: Dawit Alemayehu <adawit () kde ! org>
Date: 2010-07-19 5:21:09
Message-ID: 20100719052109.3C696AC76B () svn ! kde ! org
[Download RAW message or body]
SVN commit 1151495 by adawit:
Backport of r1151494 to make Gmail chat work again in kdewebkit based browsers.
M +8 -4 http.cpp
M +1 -1 http.h
--- branches/KDE/4.5/kdelibs/kioslave/http/http.cpp #1151494:1151495
@@ -1975,7 +1975,7 @@
}
}
-size_t HTTPProtocol::readBuffered(char *buf, size_t size)
+size_t HTTPProtocol::readBuffered(char *buf, size_t size, bool unlimited)
{
size_t bytesRead = 0;
if (!m_unreadBuf.isEmpty()) {
@@ -1987,8 +1987,11 @@
}
m_unreadBuf.truncate(bufSize - bytesRead);
- // if we have an unread buffer, return here, since we may already have enough data to
- // complete the response, so we don't want to wait for more.
+ // If we have an unread buffer and the size of the content returned by the
+ // server is unknown, e.g. chuncked transfer, return the bytes read here since
+ // we may already have enough data to complete the response and don't want to
+ // for more. See BR# 180631.
+ if (unlimited)
return bytesRead;
}
if (bytesRead < size) {
@@ -4057,7 +4060,7 @@
else
bytesToReceive = m_iBytesLeft;
- int bytesReceived = readBuffered(m_receiveBuf.data(), bytesToReceive);
+ const int bytesReceived = readBuffered(m_receiveBuf.data(), bytesToReceive /*, false*/);
if (bytesReceived <= 0)
return -1; // Error: connection lost
@@ -4148,6 +4151,7 @@
m_mimeTypeBuffer.resize(0);
}
+ kDebug(7013) << "Sending data of size" << d.size();
data( d );
if (m_request.cacheTag.ioMode == WriteToCache) {
cacheFileWritePayload(d);
--- branches/KDE/4.5/kdelibs/kioslave/http/http.h #1151494:1151495
@@ -501,7 +501,7 @@
QByteArray m_unreadBuf;
void clearUnreadBuffer();
void unread(char *buf, size_t size);
- size_t readBuffered(char *buf, size_t size);
+ size_t readBuffered(char *buf, size_t size, bool unlimited = true);
bool readDelimitedText(char *buf, int *idx, int end, int numNewlines);
};
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic