You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by cm...@apache.org on 2011/01/21 15:43:38 UTC
svn commit: r1061826 - in /subversion/branches/uris-as-urls/subversion:
mod_authz_svn/mod_authz_svn.c svnsync/main.c
Author: cmpilato
Date: Fri Jan 21 14:43:37 2011
New Revision: 1061826
URL: http://svn.apache.org/viewvc?rev=1061826&view=rev
Log:
On the 'uris-as-urls' branch, review and correct some use of the
svn_uri_* APIs. (One step of many similar ones.)
* subversion/mod_authz_svn/mod_authz_svn.c
(canonicalize_uri): New helper function.
(create_authz_svn_dir_config, req_check_access): Use
canonicalize_uri() instead of the svn_uri_* libraries.
* subversion/svnsync/main.c
(do_initialize): Review, correct (as needed), and rename uses of the
svn_uri_* API.
Modified:
subversion/branches/uris-as-urls/subversion/mod_authz_svn/mod_authz_svn.c
subversion/branches/uris-as-urls/subversion/svnsync/main.c
Modified: subversion/branches/uris-as-urls/subversion/mod_authz_svn/mod_authz_svn.c
URL: http://svn.apache.org/viewvc/subversion/branches/uris-as-urls/subversion/mod_authz_svn/mod_authz_svn.c?rev=1061826&r1=1061825&r2=1061826&view=diff
==============================================================================
--- subversion/branches/uris-as-urls/subversion/mod_authz_svn/mod_authz_svn.c (original)
+++ subversion/branches/uris-as-urls/subversion/mod_authz_svn/mod_authz_svn.c Fri Jan 21 14:43:37 2011
@@ -61,6 +61,17 @@ typedef struct authz_svn_config_rec {
* Configuration
*/
+/*
+ * Return a canonicalized version of URI (which is a
+ * schema/hostname-less URI), allocated from POOL.
+ */
+static const char *
+uri_canonicalize(const char *uri, apr_pool_t *pool)
+{
+ return apr_pstrcat(pool, (uri[0] == '/') ? "/" : "",
+ svn_relpath_canonicalize(uri, pool), NULL);
+}
+
/* Implements the #create_dir_config method of Apache's #module vtable. */
static void *
create_authz_svn_dir_config(apr_pool_t *p, char *d)
@@ -69,7 +80,7 @@ create_authz_svn_dir_config(apr_pool_t *
conf->base_path = d;
if (d)
- conf->base_path = svn_uri_canonicalize(d, p);
+ conf->base_path = uri_canonicalize(d, p);
/* By default keep the fortress secure */
conf->authoritative = 1;
@@ -275,7 +286,6 @@ req_check_access(request_rec *r,
svn_authz_t *access_conf = NULL;
svn_error_t *svn_err;
char errbuf[256];
- const char *canonicalized_uri;
const char *username_to_authorize = get_username_to_authorize(r, conf);
switch (r->method_number)
@@ -315,8 +325,7 @@ req_check_access(request_rec *r,
break;
}
- canonicalized_uri = svn_uri_canonicalize(r->uri, r->pool);
- if (strcmp(canonicalized_uri, conf->base_path) == 0)
+ if (strcmp(uri_canonicalize(r->uri, r->pool), conf->base_path) == 0)
{
/* Do no access control when conf->base_path(as configured in <Location>)
* and given uri are same. The reason for such relaxation of access
Modified: subversion/branches/uris-as-urls/subversion/svnsync/main.c
URL: http://svn.apache.org/viewvc/subversion/branches/uris-as-urls/subversion/svnsync/main.c?rev=1061826&r1=1061825&r2=1061826&view=diff
==============================================================================
--- subversion/branches/uris-as-urls/subversion/svnsync/main.c (original)
+++ subversion/branches/uris-as-urls/subversion/svnsync/main.c Fri Jan 21 14:43:37 2011
@@ -738,7 +738,7 @@ do_initialize(svn_ra_session_t *to_sessi
/* If we're doing a partial replay, we have to check first if the server
supports this. */
- if (svn_uri_is_child(root_url, baton->from_url, pool))
+ if (svn_url_is_child(root_url, baton->from_url, pool))
{
svn_boolean_t server_supports_partial_replay;
svn_error_t *err = svn_ra_has_capability(from_session,