libidav/webdav.c

changeset 134
4bccc18820e8
parent 128
649eb328674a
child 135
664aeaec8d25
--- a/libidav/webdav.c	Sat Jun 06 10:46:29 2015 +0200
+++ b/libidav/webdav.c	Tue Jul 07 20:47:02 2015 +0200
@@ -208,12 +208,14 @@
     return ucx_map_sstr_get(context->namespaces, prefix);
 }
 
-void dav_get_property_namespace(
+void dav_get_property_namespace_str(
         DavContext *ctx,
         char *prefixed_name,
         char **ns,
         char **name)
 {
+    // TODO: rewrite using dav_get_property_ns
+    
     char *pname = strchr(prefixed_name, ':');
     char *pns = "DAV:";
     if(pname) {
@@ -234,6 +236,31 @@
     *name = pname;
 }
 
+DavNamespace* dav_get_property_namespace(
+        DavContext *ctx,
+        char *prefixed_name,
+        char **name)
+{
+    char *pname = strchr(prefixed_name, ':');
+    if(pname) {
+        DavNamespace *ns = dav_get_namespace_s(
+                ctx,
+                sstrn(prefixed_name, pname-prefixed_name));
+        if(ns) {
+            *name = pname +1;
+            return ns;
+        } else {
+            *name = NULL;
+            return NULL;
+        }
+    } else {
+        *name = prefixed_name;
+        return dav_get_namespace_s(ctx, S("D"));
+    }
+}
+
+// TODO: add sstr_t version of dav_get_property_ns
+
 
 DavResource* dav_get(DavSession *sn, char *path, char *properties) {  
     CURL *handle = sn->handle;

mercurial