libidav/resource.c

changeset 42
6518b035a9df
parent 41
1c598ee0d3d9
child 43
03076907b58a
--- a/libidav/resource.c	Tue Mar 18 11:48:22 2014 +0100
+++ b/libidav/resource.c	Tue Mar 18 13:59:02 2014 +0100
@@ -50,6 +50,13 @@
     return res;
 }
 
+DavResource* dav_resource_new_child(DavSession *sn, DavResource *parent, char *name) {
+    char *path = util_concat_path(parent->path, name);
+    DavResource *res = dav_resource_new(sn, path);
+    free(path);
+    return res;
+}
+
 
 DavResource* dav_resource_new_href(DavSession *sn, char *href) {  
     DavResource *res = ucx_mempool_calloc(sn->mp, 1, sizeof(DavResource));
@@ -395,8 +402,13 @@
 }
 
 DavResource* dav_create_child(DavResource *parent, char *name) {
-    // TODO
-    return NULL;
+    DavResource *res = dav_resource_new_child(parent->session, parent, name);
+    if(dav_create(res)) {
+        // TODO: free resource
+        return NULL;
+    } else {
+        return res;
+    }
 }
 
 int dav_delete(DavResource *res) {

mercurial