Ivan Zhakov <i...@visualsvn.com> writes: > Otherwise, here are my ideas at the moment: > 1. Add svn_client_ctx2_t with svn_client_context_create3() that's > accept AUTH_BATON as parameter. This will require revv all > svn_client_*() functions to create new svn_client_ctx2_t() on every > invocation of deprecated function. > > 2. Add svn_ra_set_auth_baton() function to change AUTH_BATON in > existing RA session. But in this case RA session implementation should > re-authenticate after every reuse because new AUTH_BATON may have > different credentials. > > 3. Revert r1704048 and wait until next hackathon for better ideas :)
As a random idea: 4. Make each svn_auth_baton_t have a unique ID generated upon creation with svn_auth_open(). Place this ID alongside with the baton in the RA session pool. Open a new RA session in case the baton's ID does not match the ID within the cached session — i.e., do not try to reuse the session if the auth baton IDs do not match. Regards, Evgeny Kotkov