# HG changeset patch # User Olaf Wintermann # Date 1395147542 -3600 # Node ID 6518b035a9df4dd6d7ae5f37085a1b8492433921 # Parent 1c598ee0d3d9e8961ebc2a72729eb96ac0d2da22 added some api functions diff -r 1c598ee0d3d9 -r 6518b035a9df libidav/resource.c --- 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) { diff -r 1c598ee0d3d9 -r 6518b035a9df libidav/webdav.h --- a/libidav/webdav.h Tue Mar 18 11:48:22 2014 +0100 +++ b/libidav/webdav.h Tue Mar 18 13:59:02 2014 +0100 @@ -181,6 +181,7 @@ /* ------------------------ resource functions ------------------------ */ DavResource* dav_resource_new(DavSession *sn, char *path); +DavResource* dav_resource_new_child(DavSession *sn, DavResource *parent, char *name); DavResource* dav_resource_new_href(DavSession *sn, char *href); DavResource* dav_create_child(DavResource *parent, char *name);