linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #05910
[Bug 668548] Re: BufferedSocket::setDataMode -> infinite loop
To quote the HTTP specification:
All HTTP/1.1 applications that receive entities MUST accept the
"chunked" transfer-coding (section 3.6), thus allowing this mechanism
to be used for messages when the message length cannot be determined
in advance.
Notably the patch also adds simple support for the POST request method.
Changes in HttpDownload class were made to eliminate the unnecessary
requirement of the completion function to have access to the original
HttpDownload instance, in other words to have access to it outside of
what was passed to the callback function, which in my opinion is
counter-intuitive and restricting.
Also, as to changes pertaining the signaling of downloaded file type,
if getMimeType() is not desired alternatively a listener that supplies
the mime type could be used the old assumption, done with the listeners,
of only downloading two kinds of files feels restrictive.
--
You received this bug notification because you are a member of
Dcplusplus-team, which is subscribed to DC++.
https://bugs.launchpad.net/bugs/668548
Title:
BufferedSocket::setDataMode -> infinite loop
Status in DC++:
New
Bug description:
if you call BufferedSocket::setDataMode with value that will be < left
(ie. what is actually read from socket at once) it will go to an
infinite loop, because when dataBytes have been read high will always
end up 0 even if left > 0.
What you, probably, want to do is break after firing ModeChange...
(line 267).
Granted with dcpp's current usage this doesn't never happen afaik... I
stumbled on to this while adding support for chunked transfer encoding
(where the chunk size is often less than the read buffer) to
HttpConnection (to fix another would be bug, if server never sent
Content-Length thus resulting setDataMode being called with -1, and
http connection never properly completing).
To manage notifications about this bug go to:
https://bugs.launchpad.net/dcplusplus/+bug/668548/+subscriptions
References