As suggested in many mails on this mailing list, I have tried to solve this using CURLOPT_RESOLVE. I have found two problems:

Let me suggeset yet another way with existing functionality:

Use the share interface, and tell each easy handle that uses those host names to use its own share object with its own DNS cache. That way, the CURLOPT_RESOLVE setting would (should!) only affect that particular DNS cache.


Thank you for the suggestion. Using the share interface solves the DNS problem, but I think that the connection cache problem remains unsolved because all easy handles in a multi handle use the same connection cache. Because libcurl looks at the hostname when reusing connections (not at the IP address), an existing connection to a "wrong" host may get reused.

What about adding the connection cache to the share object? The SSL session IDs are already part of it, so adding the connection cache seems reasonable.


The drawback is of course that the handles now use one DNS cache each and don't benefit from the previous resolves from the other handles involved.

For me, that's OK. Of course, a CURLOPT_RESOLVE that only affects one single easy handle would be better :-)

Regards,
Michael


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

Reply via email to