dav/webdav.c

changeset 27
e584c351b402
parent 26
146171b57e69
child 29
938957a4eea7
--- a/dav/webdav.c	Tue Aug 20 11:34:44 2013 +0200
+++ b/dav/webdav.c	Wed Aug 21 13:08:22 2013 +0200
@@ -237,7 +237,7 @@
     curl_easy_getinfo (handle, CURLINFO_RESPONSE_CODE, &status);
     if(ret == CURLE_OK && status == 207) {
         //printf("response\n%s\n", rpbuf->space); 
-        resource = parse_propfind_response(sn, NULL, rpbuf);
+        resource = parse_propfind_response(sn, NULL, rpbuf, NULL, 0);
         sn->error = DAV_OK;
     } else  {
         session_set_error(sn, ret, status);
@@ -245,7 +245,7 @@
     return resource;
 }
 
-DavResource* dav_propfind(DavSession *sn, DavResource *root, UcxBuffer *rqbuf, char *path) {
+DavResource* dav_propfind(DavSession *sn, DavResource *root, UcxBuffer *rqbuf, char *path, DavQOp *cond, size_t len) {
     char *url = util_concat_path(sn->base_url, path);  
     CURL *handle = sn->handle;
     curl_easy_setopt(handle, CURLOPT_URL, url);
@@ -258,7 +258,7 @@
     curl_easy_getinfo (handle, CURLINFO_RESPONSE_CODE, &status);
     if(ret == CURLE_OK && status == 207) {
         //printf("response\n%s\n", rpbuf->space); 
-        resource = parse_propfind_response(sn, resource, rpbuf);
+        resource = parse_propfind_response(sn, resource, rpbuf, cond, len);
         sn->error = DAV_OK;
     } else  {
         session_set_error(sn, ret, status);
@@ -300,7 +300,7 @@
     //fwrite(rqbuf->space, 1, rqbuf->size, stdout);
     //printf("\n");
     
-    DavResource *resource = dav_propfind(sn, NULL, rqbuf, path);
+    DavResource *resource = dav_propfind(sn, NULL, rqbuf, path, query->condition, query->condlen);
     free(path);
     int error = 0;
     if(resource && depth == -1) {
@@ -310,7 +310,7 @@
             DavResource *sr = stack->data; // get first element from the stack
             stack = ucx_list_remove(stack, stack); // remove first element
             // do propfind request for sr
-            sr = dav_propfind(sn, sr, rqbuf, sr->path);
+            sr = dav_propfind(sn, sr, rqbuf, sr->path, query->condition, query->condlen);
             if(!sr) {
                 error = 1;
                 printf("subrequest failed\n");
@@ -507,7 +507,7 @@
         while(node) {
             if(node->type == XML_ELEMENT_NODE) {
                 if(xstreq(node->name, "response")) {
-                    parse_response_tag(res, node);
+                    parse_response_tag(res, node, NULL, 0);
                 }
             }
             node = node->next;
@@ -798,7 +798,7 @@
         while(node) {
             if(node->type == XML_ELEMENT_NODE) {
                 if(xstreq(node->name, "response")) {
-                    parse_response_tag(res, node);
+                    parse_response_tag(res, node, NULL, 0);
                 }
             }
             node = node->next;

mercurial