diff -r 0468df02e18f -r 6b4ce32d0c4e libidav/methods.c --- 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);