src/server/webdav/requestparser.c

changeset 490
d218607f5a7e
parent 415
d938228c382e
equal deleted inserted replaced
489:921f83a8943f 490:d218607f5a7e
82 const char* ns = (const char*)pnode->ns->href; 82 const char* ns = (const char*)pnode->ns->href;
83 const char* name = (const char*)pnode->name; 83 const char* name = (const char*)pnode->name;
84 84
85 // check for prop duplicates 85 // check for prop duplicates
86 CxHashKey k = webdav_property_key((const char*)ns, (const char*)name); 86 CxHashKey k = webdav_property_key((const char*)ns, (const char*)name);
87 if(!k.data.bytes) { 87 if(!k.data) {
88 *error = proppatch ? PROPPATCH_PARSER_OOM : PROPFIND_PARSER_OOM; 88 *error = proppatch ? PROPPATCH_PARSER_OOM : PROPFIND_PARSER_OOM;
89 return 1; 89 return 1;
90 } 90 }
91 void *c = cxMapGet(propmap, k); 91 void *c = cxMapGet(propmap, k);
92 if(!c) { 92 if(!c) {
112 } 112 }
113 } else if(proppatch) { 113 } else if(proppatch) {
114 *error = PROPPATCH_PARSER_DUPLICATE; 114 *error = PROPPATCH_PARSER_DUPLICATE;
115 } 115 }
116 116
117 free((void*)k.data.str); 117 free((void*)k.data);
118 if(*error) { 118 if(*error) {
119 return 1; 119 return 1;
120 } 120 }
121 } 121 }
122 return 0; 122 return 0;
158 xmlFreeDoc(doc); 158 xmlFreeDoc(doc);
159 return NULL; 159 return NULL;
160 } 160 }
161 161
162 CxAllocator *a = pool_allocator(sn->pool); 162 CxAllocator *a = pool_allocator(sn->pool);
163 CxMap *propmap = cxHashMapCreate(a, 32); // value: intptr_t 163 CxMap *propmap = cxHashMapCreate(a, CX_STORE_POINTERS, 32); // value: intptr_t
164 if(!propmap) { 164 if(!propmap) {
165 *error = PROPFIND_PARSER_OOM; 165 *error = PROPFIND_PARSER_OOM;
166 xmlFreeDoc(doc); 166 xmlFreeDoc(doc);
167 return NULL; 167 return NULL;
168 } 168 }
300 *error = 0; 300 *error = 0;
301 301
302 CxAllocator *a = pool_allocator(sn->pool); 302 CxAllocator *a = pool_allocator(sn->pool);
303 // map for duplicate checking 303 // map for duplicate checking
304 // value type: intptr_t 304 // value type: intptr_t
305 CxMap *propmap = cxHashMapCreate(a, 32); 305 CxMap *propmap = cxHashMapCreate(a, CX_STORE_POINTERS, 32);
306 if(!propmap) { 306 if(!propmap) {
307 *error = PROPPATCH_PARSER_OOM; 307 *error = PROPPATCH_PARSER_OOM;
308 xmlFreeDoc(doc); 308 xmlFreeDoc(doc);
309 return NULL; 309 return NULL;
310 } 310 }

mercurial