Author: ivan
Date: Mon Jun 14 05:00:51 2010
New Revision: 954363

URL: http://svn.apache.org/viewvc?rev=954363&view=rev
Log:
Set Depth header to "0" in the discover locks PROPFIND request. By default 
Depth is "infinity".

* subversion/libsvn_ra_serf/locks.c
  (setup_getlock_headers): New function. Setups Depth to "0".
  (svn_ra_serf__get_lock): Set setup headers delegate. Don't ignore 403 
   error, it was needed to handle invalid request which is fixed now.

Modified:
    subversion/trunk/subversion/libsvn_ra_serf/locks.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=954363&r1=954362&r2=954363&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/locks.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/locks.c Mon Jun 14 05:00:51 2010
@@ -451,6 +451,16 @@ create_getlock_body(void *baton,
   return buckets;
 }
 
+static apr_status_t
+setup_getlock_headers(serf_bucket_t *headers,
+                      void *baton,
+                      apr_pool_t *pool)
+{
+  serf_bucket_headers_set(headers, "Depth", "0");
+
+  return APR_SUCCESS;
+}
+
 static serf_bucket_t*
 create_lock_body(void *baton,
                  serf_bucket_alloc_t *alloc,
@@ -529,23 +539,14 @@ svn_ra_serf__get_lock(svn_ra_session_t *
   handler->body_delegate = create_getlock_body;
   handler->body_delegate_baton = lock_ctx;
 
+  handler->header_delegate = setup_getlock_headers;
+  handler->header_delegate_baton = lock_ctx;
+
   handler->response_handler = handle_lock;
   handler->response_baton = parser_ctx;
 
   svn_ra_serf__request_create(handler);
   err = svn_ra_serf__context_run_wait(&lock_ctx->done, session, pool);
-  if (err)
-    {
-      /* A 403 forbidden error indicates there's no lock, which we can ignore
-         here.
-
-         ### BH: Is this assumption really ok or are we ignoring real errors? 
*/
-      if (lock_ctx->status_code == 403)
-        {
-          svn_error_clear(err);
-          err = NULL;
-        }
-    }
 
   if (status_code == 404)
     {


Reply via email to