Hi friends.

A few more days have passed so I thought it could be apporpriate to let you know how thing go in my end.

First, my work is now visible here: https://github.com/bagder/curl/tree/multi-always. I've experimented a bit with how to do this with git so it may still move around a bit, so if you check this out please have that in mind. There's some 6 commits right now that makes the branch different from master.

Reminder of my goal here: my task is to make curl_easy_perform() a wrapper function around curl_multi* and make everything internally be multi interface only. Remove all code that need to behave differently depending on which interface that was used.

Status: My first problems were simply just bugs in the multi interface code that made it behave slightly different than the easy interface and therefore a bunch of test cases failed. This of couse had the upside that I fixed some actual bugs for multi interface users.

I've then had some problems to figure out how to handle curl_easy_recv() and curl_easy_getinfo's CURLINFO_LASTSOCKET since they need to get hold of the "last" connection and now when the old connection is always kept in a multi handle the easy handle is further away from them. After merging Linus' connection cache work I think I managed to cram in a solution that is decent.

As of this moment all tests run fine up until test 808. Test 808 does POP3 LIST and it fails miserably. It looks like a plain bug in the multi interface's way of handling POP3 so this is probably a problem in master too if we'd try this operation. I'm trying to figure out the best way forward...

--

 / daniel.haxx.se
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to