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 } } }