subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cmpil...@apache.org
Subject svn commit: r1066898 - /subversion/trunk/subversion/libsvn_ra_neon/props.c
Date Thu, 03 Feb 2011 17:58:34 GMT
Author: cmpilato
Date: Thu Feb  3 17:58:33 2011
New Revision: 1066898

URL: http://svn.apache.org/viewvc?rev=1066898&view=rev
Log:
When crawling up parent URLs trying to find repos-global information
(such as the WebDAV VCC), tolerate 403 Forbidden responses.  It might
be that some parent directory of the unreadable thing is itself
readable, which gives us a better chance at finding the information we
need.

NOTE: We could stand to make this same change in ra_serf, but the
naive approach causes all sorts of badness to occur there.

* subversion/libsvn_ra_neon/props.c
  (svn_ra_neon__search_for_starting_props): Tolerate
    SVN_ERR_RA_DAV_FORBIDDEN, too, in our upward crawl towards a
    readable parent.

Modified:
    subversion/trunk/subversion/libsvn_ra_neon/props.c

Modified: subversion/trunk/subversion/libsvn_ra_neon/props.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_neon/props.c?rev=1066898&r1=1066897&r2=1066898&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_neon/props.c (original)
+++ subversion/trunk/subversion/libsvn_ra_neon/props.c Thu Feb  3 17:58:33 2011
@@ -710,18 +710,19 @@ svn_ra_neon__search_for_starting_props(s
   ne_uri_free(&parsed_url);
 
   /* Try to get the starting_props from the public url.  If the
-     resource no longer exists in HEAD, we'll get a failure.  That's
-     fine: just keep removing components and trying to get the
-     starting_props from parent directories. */
+     resource no longer exists in HEAD or is forbidden, we'll get a
+     failure.  That's fine: just keep removing components and trying
+     to get the starting_props from parent directories. */
   while (! svn_path_is_empty(path_s->data))
     {
       svn_pool_clear(iterpool);
       err = svn_ra_neon__get_starting_props(rsrc, sess, path_s->data,
                                             NULL, iterpool);
       if (! err)
-        break;   /* found an existing parent! */
+        break;   /* found an existing, readable parent! */
 
-      if (err->apr_err != SVN_ERR_FS_NOT_FOUND)
+      if ((err->apr_err != SVN_ERR_FS_NOT_FOUND) &&
+          (err->apr_err != SVN_ERR_RA_DAV_FORBIDDEN))
         return err;  /* found a _real_ error */
 
       /* else... lop off the basename and try again. */



Mime
View raw message