aboutsummaryrefslogtreecommitdiff
path: root/subversion/libsvn_ra_serf/multistatus.c
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/libsvn_ra_serf/multistatus.c')
-rw-r--r--subversion/libsvn_ra_serf/multistatus.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/subversion/libsvn_ra_serf/multistatus.c b/subversion/libsvn_ra_serf/multistatus.c
index 9c269c39bedd..00642401e893 100644
--- a/subversion/libsvn_ra_serf/multistatus.c
+++ b/subversion/libsvn_ra_serf/multistatus.c
@@ -707,7 +707,16 @@ svn_ra_serf__handle_server_error(svn_ra_serf__server_error_t *server_error,
clear the error and return - allowing serf to wait for more data.
*/
if (!err || SERF_BUCKET_READ_ERROR(err->apr_err))
- return svn_error_trace(err);
+ {
+ /* Perhaps we already parsed some server generated message. Let's pass
+ all information we can get.*/
+ if (err)
+ err = svn_error_compose_create(
+ svn_ra_serf__server_error_create(handler, scratch_pool),
+ err);
+
+ return svn_error_trace(err);
+ }
if (!APR_STATUS_IS_EOF(err->apr_err))
{