libidav/methods.c

changeset 74
da079dc0724c
parent 66
f8c1f685e08e
child 75
56962faf2b42
--- a/libidav/methods.c	Thu Jan 29 11:43:41 2015 +0100
+++ b/libidav/methods.c	Sun Feb 08 16:36:32 2015 +0100
@@ -63,7 +63,9 @@
     curl_easy_setopt(handle, CURLOPT_WRITEDATA, response);
     
     ucx_buffer_seek(request, 0, SEEK_SET);
-    return curl_easy_perform(handle);
+    CURLcode ret = curl_easy_perform(handle);
+    curl_slist_free_all(headers);
+    return ret;
 }
 
 UcxBuffer* create_allprop_propfind_request() {
@@ -188,6 +190,7 @@
     s = S("</D:prop>\n</D:propfind>\n");
     ucx_buffer_write(s.ptr, 1, s.length, buf);
     
+    ucx_map_free(namespaces);
     return buf;
 }
 
@@ -248,9 +251,9 @@
                 parse_response_tag(root, node, cond, len);
             }
         }
-        
         node = node->next;
     }
+    xmlFreeDoc(doc);
     
     return root;
 }
@@ -395,6 +398,7 @@
             resource_add_property(res, (char*)prop->ns->href, (char*)prop->name, text);
         }
     }
+    ucx_list_free(properties);
     
     set_davprops(res);
     if(res != resource) {
@@ -450,7 +454,9 @@
     curl_easy_setopt(handle, CURLOPT_WRITEDATA, response);
     
     ucx_buffer_seek(request, 0, SEEK_SET);
-    return curl_easy_perform(handle);
+    CURLcode ret = curl_easy_perform(handle);
+    curl_slist_free_all(headers);
+    return ret;
 }
 
 UcxBuffer* create_proppatch_request(DavResourceData *data) {
@@ -619,7 +625,6 @@
         read_func = (dav_read_func)ucx_buffer_read;
         curl_easy_setopt(handle, CURLOPT_INFILESIZE_LARGE, (curl_off_t)length);
     } else if(length == 0) {
-        struct curl_slist *headers = NULL;
         headers = curl_slist_append(headers, "Transfer-Encoding: chunked");
         curl_easy_setopt(handle, CURLOPT_INFILESIZE_LARGE, (curl_off_t)1);
         curl_easy_setopt(handle, CURLOPT_HTTPHEADER, headers);
@@ -634,6 +639,7 @@
     curl_easy_setopt(handle, CURLOPT_WRITEDATA, NULL);
     
     CURLcode ret = curl_easy_perform(handle);
+    curl_slist_free_all(headers);
     if(buf) {
         ucx_buffer_free(buf);
     }

mercurial