You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2010/03/16 13:39:07 UTC
svn commit: r923711 - in /subversion/trunk/subversion:
libsvn_ra_neon/session.c tests/libsvn_subr/dirent_uri-test.c
Author: rhuijben
Date: Tue Mar 16 12:39:06 2010
New Revision: 923711
URL: http://svn.apache.org/viewvc?rev=923711&view=rev
Log:
Perform some path->uri/dirent cleanup in libsvn_ra_neon.
* subversion/libsvn_ra_neon/session.c
(svn_ra_neon__open): Assert that the uri is canonical and remove some
cleanups that are better handled in svn_uri_canonicalize(). Also
fix a call to svn_path_local_style().
* subversion/tests/libsvn_subr/dirent_uri-test.c
(test_uri_is_canonical): Add a few more http targeted testcases.
Modified:
subversion/trunk/subversion/libsvn_ra_neon/session.c
subversion/trunk/subversion/tests/libsvn_subr/dirent_uri-test.c
Modified: subversion/trunk/subversion/libsvn_ra_neon/session.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_neon/session.c?rev=923711&r1=923710&r2=923711&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_neon/session.c (original)
+++ subversion/trunk/subversion/libsvn_ra_neon/session.c Tue Mar 16 12:39:06 2010
@@ -761,7 +761,6 @@ svn_ra_neon__open(svn_ra_session_t *sess
svn_boolean_t compression;
svn_config_t *cfg, *cfg_client;
const char *server_group;
- char *itr;
unsigned int neon_auth_types = 0;
const char *pkcs11_provider;
neonprogress_baton_t *neonprogress_baton =
@@ -770,6 +769,8 @@ svn_ra_neon__open(svn_ra_session_t *sess
const char *client_string = NULL;
svn_revnum_t ignored_revnum;
+ SVN_ERR_ASSERT(svn_uri_is_canonical(repos_URL, pool));
+
if (callbacks->get_client_string)
callbacks->get_client_string(callback_baton, &client_string, pool);
@@ -791,16 +792,7 @@ svn_ra_neon__open(svn_ra_session_t *sess
/* we want to know if the repository is actually somewhere else */
/* ### not yet: http_redirect_register(sess, ... ); */
- /* HACK! Neon uses strcmp when checking for https, but RFC 2396 says
- * we should be using case-insensitive comparisons when checking for
- * URI schemes. To allow our users to use WeIrd CasE HttPS we force
- * the scheme to lower case before we pass it on to Neon, otherwise we
- * would crash later on when we assume Neon has set up its https stuff
- * but it really didn't. */
- for (itr = uri->scheme; *itr; ++itr)
- *itr = tolower(*itr);
-
- is_ssl_session = (svn_cstring_casecmp(uri->scheme, "https") == 0);
+ is_ssl_session = (strcmp(uri->scheme, "https") == 0);
if (is_ssl_session)
{
if (ne_has_support(NE_FEATURE_SSL) == 0)
@@ -975,10 +967,10 @@ svn_ra_neon__open(svn_ra_session_t *sess
ca_cert = ne_ssl_cert_read(file);
if (ca_cert == NULL)
{
- return svn_error_createf
- (SVN_ERR_BAD_CONFIG_VALUE, NULL,
- _("Invalid config: unable to load certificate file '%s'"),
- svn_path_local_style(file, pool));
+ return svn_error_createf(
+ SVN_ERR_BAD_CONFIG_VALUE, NULL,
+ _("Invalid config: unable to load certificate file '%s'"),
+ svn_dirent_local_style(file, pool));
}
ne_ssl_trust_cert(sess, ca_cert);
ne_ssl_trust_cert(sess2, ca_cert);
Modified: subversion/trunk/subversion/tests/libsvn_subr/dirent_uri-test.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_subr/dirent_uri-test.c?rev=923711&r1=923710&r2=923711&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/libsvn_subr/dirent_uri-test.c (original)
+++ subversion/trunk/subversion/tests/libsvn_subr/dirent_uri-test.c Tue Mar 16 12:39:06 2010
@@ -1227,6 +1227,9 @@ test_uri_is_canonical(apr_pool_t *pool)
{ "http://hst/", FALSE },
{ "http://HST/", FALSE },
{ "http://HST/FOO/BaR", FALSE },
+ { "http://hst/foo/./bar", FALSE },
+ { "hTTp://hst/foo/bar", FALSE },
+ { "http://hst/foo/bar/", FALSE },
{ "svn+ssh://jens@10.0.1.1", TRUE },
{ "svn+ssh://j.raNDom@HST/BaR", FALSE },
{ "svn+SSH://j.random:jRaY@HST/BaR", FALSE },