subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cmpil...@apache.org
Subject svn commit: r1066917 - /subversion/trunk/subversion/libsvn_ra_serf/util.c
Date Thu, 03 Feb 2011 19:30:08 GMT
Author: cmpilato
Date: Thu Feb  3 19:30:08 2011
New Revision: 1066917

URL: http://svn.apache.org/viewvc?rev=1066917&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.  (Similar to r1066898, which made this change in libsvn_ra_neon.)

* subversion/libsvn_ra_serf/util.c
  (svn_ra_serf__discover_vcc): Tolerate SVN_ERR_RA_DAV_FORBIDDEN, too,
    in our upward crawl towards a readable parent.  But reset the Serf
    connection before reusing it!

Modified:
    subversion/trunk/subversion/libsvn_ra_serf/util.c

Modified: subversion/trunk/subversion/libsvn_ra_serf/util.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/util.c?rev=1066917&r1=1066916&r2=1066917&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/util.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/util.c Thu Feb  3 19:30:08 2011
@@ -1792,7 +1792,8 @@ svn_ra_serf__discover_vcc(const char **v
         }
       else
         {
-          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 */
             }
@@ -1803,6 +1804,13 @@ svn_ra_serf__discover_vcc(const char **v
 
               /* Okay, strip off a component from PATH. */
               path = svn_urlpath__dirname(path, pool);
+
+#if SERF_VERSION_AT_LEAST(0, 4, 0)
+              /* An error occurred on conns. serf 0.4.0 remembers that
+                 the connection had a problem. We need to reset it, in
+                 order to use it again.  */
+              serf_connection_reset(conn->conn);
+#endif
             }
         }
     }



Mime
View raw message