Index: props.c =================================================================== --- props.c (revision 4171) +++ props.c (working copy) @@ -356,15 +356,12 @@ svn_error_t * svn_ra_dav__get_props(apr_ ne_propfind_destroy(pc.dph); - if (rv != NE_OK) + if (rv != NE_OK + || status_code != 200) { const char *msg = apr_psprintf(pool, "PROPFIND of %s", url); return svn_ra_dav__convert_error(sess, msg, rv); } - - if (404 == status_code) - return svn_error_createf(SVN_ERR_RA_DAV_PROPS_NOT_FOUND, NULL, - "Failed to fetch props for '%s'", url); *results = pc.props; Index: util.c =================================================================== --- util.c (revision 4171) +++ util.c (working copy) @@ -317,22 +317,14 @@ svn_error_t *svn_ra_dav__parsed_request( code = ne_get_status(req)->code; ne_request_destroy(req); - if (rv != NE_OK) - { - msg = apr_psprintf(pool, "%s of %s", method, url); - err = svn_ra_dav__convert_error(ras->sess, msg, rv); - } - - if (err) /* Either from error-parser or from just above */ + if (err) /* If the error parser had a problem */ goto error; - if (code != 200) + if (code != 200 + || rv != NE_OK) { - /* Bad status, but error-parser didn't build an error. Return a - generic error instead.*/ - err = svn_error_createf(APR_EGENERAL, NULL, - "The %s status was %d, but expected 200.", - method, code); + msg = apr_psprintf(pool, "%s of %s", method, url); + err = svn_ra_dav__convert_error(ras->sess, msg, rv); goto error; } @@ -396,6 +388,7 @@ svn_ra_dav__request_dispatch(int *code, int rv; const ne_status *statstruct; const char *code_desc; + const char *msg; svn_error_t *err = SVN_NO_ERROR; /* attach a standard body parser to the request */ @@ -415,25 +408,17 @@ svn_ra_dav__request_dispatch(int *code, ne_request_destroy(request); ne_xml_destroy(error_parser); - /* first, check to see if neon itself got an error */ - if (rv != NE_OK) - { - const char *msg = apr_psprintf(pool, "%s of %s", method, url); - return svn_ra_dav__convert_error(session, msg, rv); - } - /* If the status code was one of the two that we expected, then go ahead and return now. IGNORE any marshalled error. */ - if (*code == okay_1 || *code == okay_2) + if (rv == NE_OK && (*code == okay_1 || *code == okay_2)) return SVN_NO_ERROR; /* next, check to see if a was discovered */ if (err) return err; - /* Bad http status, but error-parser didn't build an svn_error_t - for some reason. Return a generic error instead. */ - return svn_error_createf(SVN_ERR_RA_DAV_REQUEST_FAILED, NULL, - "%s of %s returned status code %d (%s)", - method, url, *code, code_desc); + /* We either have a neon error, or some other error + that we didn't expect. */ + msg = apr_psprintf(pool, "%s of %s", method, url); + return svn_ra_dav__convert_error(session, msg, rv); }