On 19 September 2015 at 19:49, Evgeny Kotkov <evgeny.kot...@visualsvn.com> wrote: > 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. > I've tried this idea and it seems to solve problem with AUTH_BATON, but then I got similar problem with OPEN_TUNNEL_FUNC callbacks: JavaHL implementation is not ready that tunnel created but JavaHL implemented callback assumes that created tunnel will not be used after svn_client_*() call complete.
Given all these problems I'm inclined to revert r1704048 and continue fixing this problems in branch to keep trunk in stable state. It's very unlikely that I will be able to solve these problems in next few weeks. -- Ivan Zhakov