libidav/resource.c

changeset 223
cbbdf207e67e
parent 222
7b73058d782e
child 225
a297c2e28fa1
--- a/libidav/resource.c	Fri Mar 18 19:54:36 2016 +0100
+++ b/libidav/resource.c	Sat Mar 19 12:34:32 2016 +0100
@@ -583,6 +583,7 @@
             ret = do_put_request(
                     sn->handle,
                     locktoken,
+                    FALSE,
                     enc,
                     (dav_read_func)aes_read,
                     0);
@@ -609,6 +610,7 @@
             ret = do_put_request(
                     sn->handle,
                     locktoken,
+                    FALSE,
                     data->content,
                     data->read,
                     data->length);
@@ -632,6 +634,8 @@
     }
     
     // store properties
+    int r = 0;
+    sn->error = DAV_OK;
     if(data->set || data->remove) {
         UcxBuffer *request = create_proppatch_request(data);
         UcxBuffer *response = ucx_buffer_new(NULL, 1024, UCX_BUFFER_AUTOEXTEND);
@@ -648,11 +652,14 @@
             data->remove = NULL;
         } else {
             dav_session_set_error(sn, ret, status);
-            return 1;
+            r = -1;
         }
+        
+        ucx_buffer_free(request);
+        ucx_buffer_free(response);
     }
-    sn->error = DAV_OK;
-    return 0;
+    
+    return r;
 }
 
 int dav_get_content(DavResource *res, void *stream, dav_write_func write_fnc) { 
@@ -757,17 +764,19 @@
     CURLcode ret = do_delete_request(handle, locktoken, response);
     long status = 0;
     curl_easy_getinfo (handle, CURLINFO_RESPONSE_CODE, &status);
+    int r = 0;
     if(ret == CURLE_OK && (status >= 200 && status < 300)) {
         res->session->error = DAV_OK;
         
         // TODO: parse response
         // TODO: free res
-        
-        return 0;
     } else {
         dav_session_set_error(res->session, ret, status);
-        return 1;
+        r = 1;
     }
+    
+    ucx_buffer_free(response);
+    return r;
 }
 
 static int create_ancestors(DavSession *sn, char *href, char *path) {
@@ -835,7 +844,7 @@
     if(res->iscollection) {
         code = do_mkcol_request(handle, locktoken);
     } else {
-        code = do_put_request(handle, locktoken, "", NULL, 0); 
+        code = do_put_request(handle, locktoken, TRUE, "", NULL, 0); 
     }
     long s = 0;
     curl_easy_getinfo(handle, CURLINFO_RESPONSE_CODE, &s);

mercurial