src/server/webdav/requestparser.c

branch
webdav
changeset 373
f78a585e1a2f
parent 239
d5031c30022c
child 415
d938228c382e
--- a/src/server/webdav/requestparser.c	Thu Aug 11 20:51:39 2022 +0200
+++ b/src/server/webdav/requestparser.c	Sat Aug 13 15:56:51 2022 +0200
@@ -35,6 +35,7 @@
 #include <ucx/map.h>
 
 #include "requestparser.h"
+#include "webdav.h"
 
 #define xstreq(a, b) !strcmp((const char*)a, (const char*)b)
 
@@ -59,15 +60,6 @@
     return prop;
 }
 
-static UcxKey propkey(const char *ns, const char *name) {
-    UcxKey key;
-    sstr_t data = ucx_sprintf("%s\n%s", name, ns);
-    key.data = data.ptr;
-    key.len = data.length;
-    key.hash = ucx_hash(data.ptr, data.length);
-    return key;
-}
-
 static int parse_prop(
         Session *sn,
         xmlNode *node,
@@ -88,7 +80,7 @@
         const char* name = (const char*)pnode->name;
         
         // check for prop duplicates
-        UcxKey k = propkey((const char*)ns, (const char*)name);
+        UcxKey k = webdav_property_key((const char*)ns, (const char*)name);
         if(!k.data) {
             *error = proppatch ? PROPPATCH_PARSER_OOM : PROPFIND_PARSER_OOM;
             return 1;
@@ -119,7 +111,7 @@
             *error = PROPPATCH_PARSER_DUPLICATE;
         }
         
-        free(k.data);
+        free((void*)k.data);
         if(*error) {
             return 1;
         }

mercurial