cmpil...@apache.org wrote on Wed, May 11, 2011 at 15:20:46 -0000:
> Author: cmpilato
> Date: Wed May 11 15:20:46 2011
> New Revision: 1101918
> 
> URL: http://svn.apache.org/viewvc?rev=1101918&view=rev
> Log:
> Fix issue #3874 ("Unhandled serf_bucket_response_status errors").
> 
> * subversion/libsvn_ra_serf/update.c (handle_stream),
> * subversion/libsvn_ra_serf/locks.c (handle_lock),
> * subversion/libsvn_ra_serf/util.c (svn_ra_serf__handle_status_only,
>    svn_ra_serf__handle_multistatus_only, handle_response):
>     Don't ignore errorful status returns from serf_bucket_response_status().
> 
> Modified:
>     subversion/trunk/subversion/libsvn_ra_serf/locks.c
>     subversion/trunk/subversion/libsvn_ra_serf/update.c
>     subversion/trunk/subversion/libsvn_ra_serf/util.c
> 
> Modified: subversion/trunk/subversion/libsvn_ra_serf/locks.c
> URL: 
> http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/locks.c?rev=1101918&r1=1101917&r2=1101918&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_ra_serf/locks.c (original)
> +++ subversion/trunk/subversion/libsvn_ra_serf/locks.c Wed May 11 15:20:46 
> 2011
> @@ -360,9 +360,13 @@ handle_lock(serf_request_t *request,
>        const char *val;
>  
>        serf_status_line sl;
> -      apr_status_t rv;
> +      apr_status_t status;
>  
> -      rv = serf_bucket_response_status(response, &sl);
> +      status = serf_bucket_response_status(response, &sl);
> +      if (SERF_BUCKET_READ_ERROR(status))
> +        {
> +          return svn_error_wrap_apr(status, NULL);
> +        }
>  
>        ctx->status_code = sl.code;
>        ctx->reason = sl.reason;

When wrapping apr_status_t's returned by serf, shouldn't we decorate
them in some way so that code that interprets them knows to look them up
in serf.h:SERF_ERROR_* rather than in svn_error_codes.h ?

Not sure, perhaps a wrapper err->apr_err link that signals to
subr/error.c to call into serf to stringify the child link...?

Daniel
(AFAICT, the error-codes-in-use spaces don't intersect right now)

Reply via email to