Make SASL authentication use callbacks for credentials, instead of fetching credentials in advance for the mechanisms we *think* are going to need them.
Make SASL authentication use callbacks for credentials, instead of fetching
credentials in advance for the mechanisms we *think* are going to need them.

* subversion/libsvn_ra_svn/sasl_auth.c
  (interactions): Remove.
  (sasl_init_cb): Pass NULL instead of 'interactions' to sasl_client_init.
  (cred_baton_t): New baton type.
  (get_credentials, get_username_cb, get_password_cb): New functions.
  (new_sasl_ctx): Take an additional callbacks parameter, pass it to
   sasl_client_new().
  (handle_interact): Remove.
  (try_auth): Remove the calls to handle_interact() and the do..while loops
   around the calls to sasl_client_start() and sasl_client_step().
  (svn_ra_svn__do_auth): Remove the calls to svn_auth_first_credentials() and
   svn_auth_next_credentials(), which are now handled by get_credentials().
   Instead, use and initialize a cred_baton_t and an array of sasl_callback_t's
   and pass the array to new_sasl_ctx(). Adjust the error-handling logic to
   take these changes into account.

jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion