Hi there,

While implementing a http client in C++, I stumbled upon to "bug" in
asiohiper and I would like to check here if the fix is correct:

It is said that when curl_multi_socket_action is called it will call
the CURLMOPT_SOCKETFUNCTION *if the status was updated*, this means,
if the status is not updated the socket should be rescheduled to wait
for the same type of event.

So is the following fix correct:

-> wait for and X event / save event // in CURLMOPT_SOCKETFUNCTION
-> event X notified
-> do curl_multi_socket_action (may call CURLMOPT_SOCKETFUNCTION)
-> check if current_event == saved event
--> then: poll for the same event
--> else: do nothing since CURLMOPT_SOCKETFUNCTION, will schedule an event.

Is this correct ? I checked in the sources, and I think I am but I
could have easily missed something...

To trigger the bug, one can simply modify the url to a complete google url like:
http://www.google.fr/ which do not trigger a redirection but a
complete page with a chunked response.

The code of this wrapper can be found here if someone is interested:
https://github.com/daedric/httpp/

Thanks a lot,
Cheers,
-- 
Thomas Sanchez
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to