--- 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;