libidav/davqlexec.c

changeset 505
481802342fdf
parent 478
baa63fef5c5c
child 538
a7402e35ad87
--- a/libidav/davqlexec.c	Mon Feb 04 14:11:57 2019 +0100
+++ b/libidav/davqlexec.c	Mon Feb 04 17:17:48 2019 +0100
@@ -311,49 +311,57 @@
     // add basic properties
     char *value;
     
-    UcxKey cl_key = dav_property_key("DAV:", "getcontentlength");
+    sstr_t cl_keystr = dav_property_key("DAV:", "getcontentlength");
+    UcxKey cl_key = ucx_key(cl_keystr.ptr, cl_keystr.length);
     value = ucx_map_get(data->properties, cl_key);
     if(value) {
         ucx_map_put(new_properties, cl_key, value);
     }
     
-    UcxKey cd_key = dav_property_key("DAV:", "creationdate");
+    sstr_t cd_keystr = dav_property_key("DAV:", "creationdate");
+    UcxKey cd_key = ucx_key(cd_keystr.ptr, cd_keystr.length);
     value = ucx_map_get(data->properties, cd_key);
     if(value) {
         ucx_map_put(new_properties, cd_key, value);
     }
     
-    UcxKey lm_key = dav_property_key("DAV:", "getlastmodified");
+    sstr_t lm_keystr = dav_property_key("DAV:", "getlastmodified");
+    UcxKey lm_key = ucx_key(lm_keystr.ptr, lm_keystr.length);
     value = ucx_map_get(data->properties, lm_key);
     if(value) {
         ucx_map_put(new_properties, lm_key, value);
     }
     
-    UcxKey ct_key = dav_property_key("DAV:", "getcontenttype");
+    sstr_t ct_keystr = dav_property_key("DAV:", "getcontenttype");
+    UcxKey ct_key = ucx_key(ct_keystr.ptr, ct_keystr.length);
     value = ucx_map_get(data->properties, ct_key);
     if(value) {
         ucx_map_put(new_properties, ct_key, value);
     }
     
-    UcxKey rt_key = dav_property_key("DAV:", "resourcetype");
+    sstr_t rt_keystr = dav_property_key("DAV:", "resourcetype");
+    UcxKey rt_key = ucx_key(rt_keystr.ptr, rt_keystr.length);
     value = ucx_map_get(data->properties, rt_key);
     if(value) {
         ucx_map_put(new_properties, rt_key, value);
     }
     
-    UcxKey cn_key = dav_property_key(DAV_NS, "crypto-name");
+    sstr_t cn_keystr = dav_property_key(DAV_NS, "crypto-name");
+    UcxKey cn_key = ucx_key(cn_keystr.ptr, cn_keystr.length);
     value = ucx_map_get(data->properties, cn_key);
     if(value) {
         ucx_map_put(new_properties, cn_key, value);
     }
     
-    UcxKey ck_key = dav_property_key(DAV_NS, "crypto-key");
+    sstr_t ck_keystr = dav_property_key(DAV_NS, "crypto-key");
+    UcxKey ck_key = ucx_key(ck_keystr.ptr, ck_keystr.length);
     value = ucx_map_get(data->properties, ck_key);
     if(value) {
         ucx_map_put(new_properties, ck_key, value);
     }
     
-    UcxKey ch_key = dav_property_key(DAV_NS, "crypto-hash");
+    sstr_t ch_keystr = dav_property_key(DAV_NS, "crypto-hash");
+    UcxKey ch_key = ucx_key(ch_keystr.ptr, ch_keystr.length);
     value = ucx_map_get(data->properties, ch_key);
     if(value) {
         ucx_map_put(new_properties, ch_key, value);
@@ -395,9 +403,9 @@
                 node->contentlength = str.length;
             }
             if(node) {
-                UcxKey key = dav_property_key(field->ns, field->name);
-                ucx_map_put(new_properties, key, node);
-                free(key.data);
+                sstr_t key = dav_property_key(field->ns, field->name);
+                ucx_map_sstr_put(new_properties, key, node);
+                free(key.ptr);
             }
         } else {
             // TODO: error
@@ -418,14 +426,14 @@
     resource_free_properties(sn, data->properties);
     data->properties = new_properties;
     
-    free(cl_key.data);
-    free(cd_key.data);
-    free(lm_key.data);
-    free(ct_key.data);
-    free(rt_key.data);
-    free(cn_key.data);
-    free(ck_key.data);
-    free(ch_key.data);
+    free(cl_keystr.ptr);
+    free(cd_keystr.ptr);
+    free(lm_keystr.ptr);
+    free(ct_keystr.ptr);
+    free(rt_keystr.ptr);
+    free(cn_keystr.ptr);
+    free(ck_keystr.ptr);
+    free(ch_keystr.ptr);
     
     return 0;
 }
@@ -534,7 +542,8 @@
                 if(ns && name) {
                     DavOrderCriterion *cr = ucx_mempool_malloc(mp, sizeof(DavOrderCriterion));
                     cr->type = 1;
-                    cr->column.property = dav_property_key_a(mp->allocator, ns, name);
+                    sstr_t keystr = dav_property_key_a(mp->allocator, ns, name);
+                    cr->column.property = ucx_key(keystr.ptr, keystr.length);
                     cr->descending = oc->descending;
                     ordercr = ucx_list_append_a(mp->allocator, ordercr, cr);
                 } else {

mercurial