--- a/libidav/webdav.c Sun Jun 15 16:07:11 2014 +0200 +++ b/libidav/webdav.c Sun Jun 15 20:12:48 2014 +0200 @@ -160,9 +160,8 @@ DavResource* dav_get(DavSession *sn, char *path, char *properties) { CURL *handle = sn->handle; - char *href = dav_session_get_href(sn, path); - util_set_url(sn, href); - dav_session_free(sn, href); + DavResource *resource = dav_resource_new(sn, path); + util_set_url(sn, dav_resource_get_href(resource)); UcxList *proplist = NULL; if(properties) { @@ -174,16 +173,16 @@ //fwrite(rqbuf->space, 1, rqbuf->size, stdout); //printf("\n"); - DavResource *resource = NULL; CURLcode ret = do_propfind_request(handle, rqbuf, rpbuf); int status = 0; 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, NULL, 0); + //printf("response\n%s\n", rpbuf->space); + resource = parse_propfind_response(sn, resource, rpbuf, NULL, 0); sn->error = DAV_OK; } else { dav_session_set_error(sn, ret, status); + dav_resource_free(resource); } ucx_buffer_free(rqbuf);