144 if(webdav_is_initialized) { |
144 if(webdav_is_initialized) { |
145 return REQ_NOACTION; |
145 return REQ_NOACTION; |
146 } |
146 } |
147 webdav_is_initialized = TRUE; |
147 webdav_is_initialized = TRUE; |
148 |
148 |
149 webdav_type_map = cxHashMapCreate(cxDefaultAllocator, 8); |
149 webdav_type_map = cxHashMapCreate(cxDefaultAllocator, CX_STORE_POINTERS, 8); |
150 if(!webdav_type_map) { |
150 if(!webdav_type_map) { |
151 return REQ_ABORTED; |
151 return REQ_ABORTED; |
152 } |
152 } |
153 |
153 |
154 method_handler_map = cxHashMapCreate(cxDefaultAllocator, 64); |
154 method_handler_map = cxHashMapCreate(cxDefaultAllocator, CX_STORE_POINTERS, 64); |
155 if(!method_handler_map) { |
155 if(!method_handler_map) { |
156 return REQ_ABORTED; |
156 return REQ_ABORTED; |
157 } |
157 } |
158 |
158 |
159 if(init_default_backend()) { |
159 if(init_default_backend()) { |
939 |
939 |
940 |
940 |
941 |
941 |
942 /* ------------------------------ Utils ------------------------------ */ |
942 /* ------------------------------ Utils ------------------------------ */ |
943 |
943 |
944 CxHashKey webdav_property_key_a(CxAllocator *a, const char *ns, const char *name) { |
944 CxHashKey webdav_property_key_a(const CxAllocator *a, const char *ns, const char *name) { |
945 CxHashKey key; |
945 CxHashKey key; |
946 cxmutstr data = cx_asprintf("%s\n%s", name, ns); |
946 cxmutstr data = cx_asprintf("%s\n%s", name, ns); |
947 if(data.ptr) { |
947 if(data.ptr) { |
948 key.data.str = data.ptr; |
948 key.data = data.ptr; |
949 key.len = data.length; |
949 key.len = data.length; |
950 cx_hash_murmur(&key); |
950 cx_hash_murmur(&key); |
951 } else { |
951 } else { |
952 key.data.str = NULL; |
952 key.data = NULL; |
953 key.len = 0; |
953 key.len = 0; |
954 key.hash = 0; |
954 key.hash = 0; |
955 } |
955 } |
956 return key; |
956 return key; |
957 } |
957 } |