libidav/methods.c

changeset 236
6b4ce32d0c4e
parent 231
f3119e749549
child 315
7db4dbf4e6f9
--- a/libidav/methods.c	Wed Mar 23 13:46:39 2016 +0100
+++ b/libidav/methods.c	Wed Mar 23 19:03:48 2016 +0100
@@ -1038,7 +1038,7 @@
 }
 
 
-CURLcode do_copy_move_request(CURL *handle, char *dest, _Bool copy, _Bool override) { 
+CURLcode do_copy_move_request(CURL *handle, char *dest, char *lock, DavBool copy, DavBool override) { 
     if(copy) {
         curl_easy_setopt(handle, CURLOPT_CUSTOMREQUEST, "COPY");
     } else {
@@ -1051,6 +1051,13 @@
     curl_easy_setopt(handle, CURLOPT_WRITEDATA, NULL);
     
     struct curl_slist *headers = NULL;
+    if(lock) {
+        char *url = NULL;
+        curl_easy_getinfo(handle, CURLINFO_EFFECTIVE_URL, &url);
+        char *ltheader = ucx_sprintf("If: <%s> (<%s>)", url, lock).ptr;
+        headers = curl_slist_append(headers, ltheader);
+        free(ltheader);
+    }
     //sstr_t deststr = ucx_sprintf("Destination: %s", dest);
     sstr_t deststr = sstrcat(2, S("Destination: "), sstr(dest));
     headers = curl_slist_append(headers, deststr.ptr);

mercurial