diff -r bf3695fee719 -r 481802342fdf libidav/davqlexec.c --- 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 {