A potentially serious bug in KIO/kio_http and a possible patch ??

Dawit A adawit at kde.org
Sat Jul 17 17:36:32 BST 2010


*sigh* Here is the correct patch...

On Saturday, July 17, 2010 02:07:24 Dawit A wrote:
> Hi,
> 
> The attached patch makes it possible for HTTPProtocol::readBuffered
> function to behaves differently when called from readLimited. This patch
> is intended to address the issue of the Gmail chat functionality no longer
> working in kdewebkit based browsers.
> 
> Though the patch fully addresses the aforementioned bug, it really does not
> fix the actual cause of this bug. So what is the actual cause ?  Well when
> you log in to Gmail, a check is preformed to see if the chat functionality
> is enabled or not.  This is done through a simple GET request that returns
> a 20 byte response. At that point kio_http has read the header and few
> bytes of the content as well, 3 bytes to be exact. kio_http stores these
> few bytes of data that are not part of the header in a buffer.
> 
> It then attempts to read the content and that is where the fun starts...
> Because kio_http has received the actual size of the content it is supposed
> to read, it will use readLimited to get the content. readLimited in turn
> calls readBuffered which, as a result of a fix for bug 180631, always
> sends whatever data was read ahead while retrieving the header above. This
> means the 3 bytes above will be sent to the client first in our case.
> After that kio_http retrieves and attempts to send the remaining 17 bytes.
> However, this last portion never ever makes it to the client application.
> It seems to disappear into the ether! Actually it never gets past
> KIO::Connection::send and at this point I cannot figure out why!
> 
> So why this patch then ?  Simple. If you followed what I attempted to
> explain above, you would see that it is very inefficient for kio_http to
> split a 20 byte data especially when it already knows the final size of
> the content it is supposed to retrieve from the server ; so addressing
> that through this patch should be no brainer. The fact that the Gmail chat
> issue gets fixed as a result is only a bonus at this point.
> 
> And hence my request...
> 
> #1. Can someone using KHTML verify whether or not the Gmail chat
> functionality works for them ? I cannot get Gmail to work with KHTML here
> ; so I am unable to do this myself.
> 
> #2. Can someone tell me if there is a scenario where sending two MSG_DATA
> requests in rapid succession might result in one of them being dropped ?
> 
> #3. Any objections, concerns, suggestions etc about the patch are welcome.
> 
> Regards,
> Dawit A.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: kio_http.patch
Type: text/x-patch
Size: 1891 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20100717/d9093c0b/attachment.bin>


More information about the kde-core-devel mailing list