From: Joe Mason
From: [email protected] [[email protected]] on behalf of Ellié Computing Open Source Program [[email protected]] So, I was thinking of an option such as “CULROPT_AUTHENTICATION_CONTEXT_GENERATION” (of course naming here is just a vague idea), it would be 0 by default. It would be tested by the connection reuse algorithm (can reuse only if values in ‘about-to-be-connected’ and reusable connection are equal). The user code of libcurl would increment the value each time it knows the user did special things about authentication information that libcurl cannot be aware of.

Is there another way to do that? or should I propose a patch?

Would the auth callback interface proposed at http://curl.haxx.se/mail/lib-2012-07/0094.html be useful for this? Currently (in the >proposed patch) it's only called for HTTP auth, but it could also be called for SSH key failures.
How would this callback work when the download takes place in a worker-thread?

These options seems unrelated to me. The problem I have is in particular when credentials change after a successful first connection, that is false reuse, not problem connecting (the problem is there, it should refuse the new request, but libcurl accepts it).

I suppose that's the opposite problem to what you're having - libcurl is informing the user that the auth parameters which are >supplied to libcurl must be updated. Your problem is that libcurl does not know about the auth parameters. But any solution should >not conflict with this interface, and it would be good to have a similar design to avoid fragmentation.
I don't see any possible conflict, the option would only prevent reuse where the developer wants to avoid it.

See also the recent discussion on pipelining improvements. I'm starting to think that it may be useful to expose the concept of >connections to the embedder and allow them to map curl handles to connections manually is a good idea after al, so we wouldn't >have to add a new ad-hoc option every time we find a new criteria for whether or not a connection can be reused.
this option is a bit of the kind "one to rule them all"... because it indeed cover all the cases where the developer knows connection reuse is unpractical, its name might be generalized to 'CULROPT_REUSE_GENERATION'... by the way, when the user increments the value for each request it actually does the same as FRESH_CONNECT, letting libcurl unused handles.

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

Reply via email to