I created two new files, trivial_auth.c and sasl_auth.c, both of which
export svn_ra_svn__auth. The contents of these files are surrounded
with #ifdefs, so only one of them will be compiled, depending on
whether or not SVN_HAVE_SASL is defined.
I haven't done anything on the server side yet, so all this does right
now is authenticate using the mechanisms that svnserve currently
supports (ANONYMOUS, EXTERNAL, CRAM-MD5). In theory, all the other
mechanisms should automagically work when I add full SASL support to
svnserve.
Please test/review this and report any problems.
[[[
Implement support for Cyrus SASL on the client side.
* configure.in
Define SVN_HAVE_SASL
* subversion/libsvn_ra_svn/sasl_auth.c: New file.
* subversion/libsvn_ra_svn/trivial_auth.c: New file. Contains
functions taken from client.c.
* subversion/libsvn_ra_svn/client.c
(ra_svn_session_baton_t): Moved to ra_svn.h and renamed to
svn_ra_svn__session_baton_t. Changed all occurances to reflect this.
(find_mech, read_success): Moved to trivial_auth.c.
(do_auth): Moved to trivial_auth.c and renamed to svn_ra_svn__auth.
(auth_response): Renamed to svn_ra_svn__auth_response.
(svn_ra_svn__init): Call svn_ra_svn__sasl_init.
(open_session): Call svn_ra_svn__sasl_new.
* subversion/libsvn_ra_svn/ra_svn.h
Conditionally #include <sasl/sasl.h>
(svn_ra_svn_conn_st): Add new member: sasl_conn.
(svn_ra_svn__auth,
svn_ra_svn__auth_response,
svn_ra_svn__sasl_init,
svn_ra_svn__sasl_new): New declarations.
]]]
Thanks,
Vlad
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Jun 15 13:40:05 2006