Author: danielsh
Date: Tue Jul  9 02:37:50 2013
New Revision: 1501049

URL: http://svn.apache.org/r1501049
Log:
ra_serf: Do not return a serf apr_status_t.

For me, this manifested as the following error chain (with the patch already
applied; before the patch, 120171 was the only code in the chain):

    % $svn info https://svn-us.apache.org/repos/asf
    subversion/svn/info-cmd.c:663,
    subversion/libsvn_client/info.c:300,
    subversion/libsvn_client/ra.c:516,
    subversion/libsvn_client/ra.c:393,
    subversion/libsvn_ra/ra_loader.c:482: 
(apr_err=SVN_ERR_RA_SERF_WRAPPED_ERROR)
    svn: E230003: Unable to connect to a repository at URL 
'https://svn-us.apache.org/repos/asf'
    subversion/libsvn_ra_serf/serf.c:506,
    subversion/libsvn_ra_serf/options.c:508,
    subversion/libsvn_ra_serf/util.c:817,
    subversion/libsvn_ra_serf/util.c:784: 
(apr_err=SVN_ERR_RA_SERF_WRAPPED_ERROR)
    svn: E230003: Error running context: An error occurred during SSL 
communication
    subversion/libsvn_ra_serf/util.c:784: (apr_err=120171)
    svn: E120171: APR does not understand this error code

In that, 120171 is SERF_ERROR_SSL_COMM_FAILED, which is not a useful value for
svn_error_t->apr_err (API users can't do anything with it).


* subversion/include/svn_error_codes.h
  (SVN_ERR_RA_SERF_WRAPPED_ERROR): Warn about non-standard semantics to be
    expected in presence of this error code.

* subversion/libsvn_ra_serf/util_error.c
  (svn_ra_serf__wrap_err): Wrap the serf error code by a Subversion one.

Modified:
    subversion/trunk/subversion/include/svn_error_codes.h
    subversion/trunk/subversion/libsvn_ra_serf/util_error.c

Modified: subversion/trunk/subversion/include/svn_error_codes.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_error_codes.h?rev=1501049&r1=1501048&r2=1501049&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_error_codes.h (original)
+++ subversion/trunk/subversion/include/svn_error_codes.h Tue Jul  9 02:37:50 
2013
@@ -1512,7 +1512,10 @@ SVN_ERROR_START
              SVN_ERR_RA_SERF_CATEGORY_START + 2,
              "Initialization of the GSSAPI context failed")
 
-  /** @since New in 1.7. */
+  /** @since New in 1.7.
+   * @note When @c svn_error_t.apr_err is set to this,
+   * @c svn_error_t.child->apr_err is a serf error code, not a Subversion
+   * one! */
   SVN_ERRDEF(SVN_ERR_RA_SERF_WRAPPED_ERROR,
              SVN_ERR_RA_SERF_CATEGORY_START + 3,
              "While handling serf response:")

Modified: subversion/trunk/subversion/libsvn_ra_serf/util_error.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/util_error.c?rev=1501049&r1=1501048&r2=1501049&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/util_error.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/util_error.c Tue Jul  9 02:37:50 
2013
@@ -61,6 +61,7 @@ svn_ra_serf__wrap_err(apr_status_t statu
 
       if (serf_err_msg)
         {
+          err = svn_error_create(SVN_ERR_RA_SERF_WRAPPED_ERROR, err, NULL);
           err_msg = serf_err_msg;
         }
       else


Reply via email to