Bert Huijben wrote on Tue, Jul 09, 2013 at 20:02:48 +0200:
> 
> 
> > -----Original Message-----
> > From: 'Daniel Shahaf' [mailto:d...@daniel.shahaf.name]
> > Sent: dinsdag 9 juli 2013 18:39
> > To: dev@subversion.apache.org
> > Cc: comm...@subversion.apache.org
> > Subject: Re: svn commit: r1501049 - in /subversion/trunk/subversion:
> > include/svn_error_codes.h libsvn_ra_serf/util_error.c
> > 
> > Daniel Shahaf wrote on Tue, Jul 09, 2013 at 16:20:56 +0000:
> > > I accept that some API users may depend on
> > SVN_ERR_RA_SERF_WRAPPED_ERROR.  Do
> > > you think it is a problem to assign that new meaning to it in 1.8.x?  I
> reused
> > > it for the same reasons you re-used an existing error code in r1498851,
> if
> > you
> > > think a new error code is needed on trunk I'm happy to add one.
> > 
> > Looking at your comment:
> > 
> >                    The reason for the -1 is the re-use of a specific error
> code
> >                    that is automatically unwrapped in some ra_serf code,
> to avoid
> >                    handling codes like APR_EOF as non fatal)
> > 
> > Weere does ra_serf *unwrap* SVN_ERR_RA_SERF_WRAPPED_ERROR?
> > 
> > % grep 'SVN_ERR.*SERF' subversion/*rf/*.[hc]
> > subversion/libsvn_ra_serf/options.c:
> > SVN_ERR_ASSERT(SVN_RA_SERF__HAVE_HTTPV2_SUPPORT(session));
> > subversion/libsvn_ra_serf/options.c:
> > SVN_ERR_ASSERT(!SVN_RA_SERF__HAVE_HTTPV2_SUPPORT(session));
> > subversion/libsvn_ra_serf/serf.c:      SVN_ERR_ASSERT(!
> > SVN_RA_SERF__HAVE_HTTPV2_SUPPORT(session));
> > subversion/libsvn_ra_serf/update.c:    return
> > svn_error_create(SVN_ERR_RA_SERF_WRAPPED_ERROR, err, NULL);
> > subversion/libsvn_ra_serf/util.c:    return
> > svn_error_create(SVN_ERR_RA_SERF_SSL_CERT_UNTRUSTED, NULL, NULL);
> > subversion/libsvn_ra_serf/util.c:    err =
> > svn_error_create(SVN_ERR_RA_SERF_WRAPPED_ERROR, err, NULL);
> > subversion/libsvn_ra_serf/util.c:    err =
> > svn_error_create(SVN_ERR_RA_SERF_WRAPPED_ERROR, err, NULL);
> > subversion/libsvn_ra_serf/util.c:    err =
> > svn_error_create(SVN_ERR_RA_SERF_WRAPPED_ERROR, err, NULL);
> > subversion/libsvn_ra_serf/util_error.c:    err =
> > svn_error_create(SVN_ERR_RA_SERF_WRAPPED_ERROR, err, NULL);
> > % grep 'SVN_ERR.*SERF' subversion/*{ra,client} | wc -l
> 
> Slightly more context:
> I see 5 usages:
> 1:
>   /* Some errors would be handled by serf; make sure they really make
>      the update fail by wrapping it in a different error. */
>   if (!SERF_BUCKET_READ_ERROR(err->apr_err))
>     return svn_error_create(SVN_ERR_RA_SERF_WRAPPED_ERROR, err, NULL);
> 
> 2:
>   if (err && !SERF_BUCKET_READ_ERROR(err->apr_err))
>     err = svn_error_create(SVN_ERR_RA_SERF_WRAPPED_ERROR, err, NULL);
> 
> 3:
>   if (err && !SERF_BUCKET_READ_ERROR(err->apr_err))
>     err = svn_error_create(SVN_ERR_RA_SERF_WRAPPED_ERROR, err, NULL);
> 
> 4:
> if (err && !SERF_BUCKET_READ_ERROR(err->apr_err))
>     err = svn_error_create(SVN_ERR_RA_SERF_WRAPPED_ERROR, err, NULL);
> 
> 5:
>       if (serf_err_msg)
>         {
>           err = svn_error_create(SVN_ERR_RA_SERF_WRAPPED_ERROR, err, NULL);
>           err_msg = serf_err_msg;
>         }
> 
> Which one is not specifically mapping specific error types?
> 

I don't understand the question.  All 5 uses you paste above use
SVN_ERR_RA_SERF_WRAPPED_ERROR in exactly the same manner: as a wrapper
error code that is propagated directly to libsvn_ra's caller.

What problem do you see in usage 5?

> Note that all of these cases handle specific APR error codes as specific for
> SERF.
> (except the last one of course)
> 
>       Bert
> 

Reply via email to