summaryrefslogtreecommitdiff
path: root/subversion/svnserve/cyrus_auth.c
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/svnserve/cyrus_auth.c')
-rw-r--r--subversion/svnserve/cyrus_auth.c40
1 files changed, 18 insertions, 22 deletions
diff --git a/subversion/svnserve/cyrus_auth.c b/subversion/svnserve/cyrus_auth.c
index 8b4dda9..2d75047 100644
--- a/subversion/svnserve/cyrus_auth.c
+++ b/subversion/svnserve/cyrus_auth.c
@@ -38,6 +38,7 @@
#include "private/svn_atomic.h"
#include "private/ra_svn_sasl.h"
+#include "private/svn_ra_svn_private.h"
#include "server.h"
@@ -61,7 +62,7 @@ static int canonicalize_username(sasl_conn_t *conn,
char *out, /* the output buffer */
unsigned out_max, unsigned *out_len)
{
- int realm_len = strlen(user_realm);
+ size_t realm_len = strlen(user_realm);
char *pos;
*out_len = inlen;
@@ -98,19 +99,14 @@ static int canonicalize_username(sasl_conn_t *conn,
static sasl_callback_t callbacks[] =
{
- { SASL_CB_CANON_USER, canonicalize_username, NULL },
+ { SASL_CB_CANON_USER, (int (*)(void))canonicalize_username, NULL },
{ SASL_CB_LIST_END, NULL, NULL }
};
static svn_error_t *initialize(void *baton, apr_pool_t *pool)
{
int result;
- apr_status_t status;
-
- status = svn_ra_svn__sasl_common_init(pool);
- if (status)
- return svn_error_wrap_apr(status,
- _("Could not initialize the SASL library"));
+ SVN_ERR(svn_ra_svn__sasl_common_init(pool));
/* The second parameter tells SASL to look for a configuration file
named subversion.conf. */
@@ -138,8 +134,8 @@ static svn_error_t *
fail_auth(svn_ra_svn_conn_t *conn, apr_pool_t *pool, sasl_conn_t *sasl_ctx)
{
const char *msg = sasl_errdetail(sasl_ctx);
- SVN_ERR(svn_ra_svn_write_tuple(conn, pool, "w(c)", "failure", msg));
- return svn_ra_svn_flush(conn, pool);
+ SVN_ERR(svn_ra_svn__write_tuple(conn, pool, "w(c)", "failure", msg));
+ return svn_ra_svn__flush(conn, pool);
}
/* Like svn_ra_svn_write_cmd_failure, but also clears the given error
@@ -147,7 +143,7 @@ fail_auth(svn_ra_svn_conn_t *conn, apr_pool_t *pool, sasl_conn_t *sasl_ctx)
static svn_error_t *
write_failure(svn_ra_svn_conn_t *conn, apr_pool_t *pool, svn_error_t **err_p)
{
- svn_error_t *write_err = svn_ra_svn_write_cmd_failure(conn, pool, *err_p);
+ svn_error_t *write_err = svn_ra_svn__write_cmd_failure(conn, pool, *err_p);
svn_error_clear(*err_p);
*err_p = SVN_NO_ERROR;
return write_err;
@@ -160,7 +156,7 @@ fail_cmd(svn_ra_svn_conn_t *conn, apr_pool_t *pool, sasl_conn_t *sasl_ctx)
svn_error_t *err = svn_error_create(SVN_ERR_RA_NOT_AUTHORIZED, NULL,
sasl_errdetail(sasl_ctx));
SVN_ERR(write_failure(conn, pool, &err));
- return svn_ra_svn_flush(conn, pool);
+ return svn_ra_svn__flush(conn, pool);
}
static svn_error_t *try_auth(svn_ra_svn_conn_t *conn,
@@ -178,7 +174,7 @@ static svn_error_t *try_auth(svn_ra_svn_conn_t *conn,
*success = FALSE;
/* Read the client's chosen mech and the initial token. */
- SVN_ERR(svn_ra_svn_read_tuple(conn, pool, "w(?s)", &mech, &in));
+ SVN_ERR(svn_ra_svn__read_tuple(conn, pool, "w(?s)", &mech, &in));
if (strcmp(mech, "EXTERNAL") == 0 && !in)
in = svn_string_create(b->tunnel_user, pool);
@@ -204,10 +200,10 @@ static svn_error_t *try_auth(svn_ra_svn_conn_t *conn,
if (use_base64)
arg = svn_base64_encode_string2(arg, TRUE, pool);
- SVN_ERR(svn_ra_svn_write_tuple(conn, pool, "w(s)", "step", arg));
+ SVN_ERR(svn_ra_svn__write_tuple(conn, pool, "w(s)", "step", arg));
/* Read and decode the client response. */
- SVN_ERR(svn_ra_svn_read_item(conn, pool, &item));
+ SVN_ERR(svn_ra_svn__read_item(conn, pool, &item));
if (item->kind != SVN_RA_SVN_STRING)
return SVN_NO_ERROR;
@@ -228,7 +224,7 @@ static svn_error_t *try_auth(svn_ra_svn_conn_t *conn,
arg = NULL;
*success = TRUE;
- SVN_ERR(svn_ra_svn_write_tuple(conn, pool, "w(?s)", "success", arg));
+ SVN_ERR(svn_ra_svn__write_tuple(conn, pool, "w(?s)", "success", arg));
return SVN_NO_ERROR;
}
@@ -263,7 +259,7 @@ svn_error_t *cyrus_auth_request(svn_ra_svn_conn_t *conn,
{
svn_error_t *err = svn_error_wrap_apr(apr_err, _("Can't get hostname"));
SVN_ERR(write_failure(conn, pool, &err));
- return svn_ra_svn_flush(conn, pool);
+ return svn_ra_svn__flush(conn, pool);
}
/* Create a SASL context. SASL_SUCCESS_DATA tells SASL that the protocol
@@ -278,7 +274,7 @@ svn_error_t *cyrus_auth_request(svn_ra_svn_conn_t *conn,
svn_error_t *err = svn_error_create(SVN_ERR_RA_NOT_AUTHORIZED, NULL,
sasl_errstring(result, NULL, NULL));
SVN_ERR(write_failure(conn, pool, &err));
- return svn_ra_svn_flush(conn, pool);
+ return svn_ra_svn__flush(conn, pool);
}
/* Make sure the context is always destroyed. */
@@ -329,12 +325,12 @@ svn_error_t *cyrus_auth_request(svn_ra_svn_conn_t *conn,
_("Could not obtain the list"
" of SASL mechanisms"));
SVN_ERR(write_failure(conn, pool, &err));
- return svn_ra_svn_flush(conn, pool);
+ return svn_ra_svn__flush(conn, pool);
}
/* Send the list of mechanisms and the realm to the client. */
- SVN_ERR(svn_ra_svn_write_cmd_response(conn, pool, "(w)c",
- mechlist, b->realm));
+ SVN_ERR(svn_ra_svn__write_cmd_response(conn, pool, "(w)c",
+ mechlist, b->realm));
/* The main authentication loop. */
subpool = svn_pool_create(pool);
@@ -371,7 +367,7 @@ svn_error_t *cyrus_auth_request(svn_ra_svn_conn_t *conn,
_("Couldn't obtain the authenticated"
" username"));
SVN_ERR(write_failure(conn, pool, &err));
- return svn_ra_svn_flush(conn, pool);
+ return svn_ra_svn__flush(conn, pool);
}
}