libidav/resource.c

changeset 134
4bccc18820e8
parent 100
f4127c4d1018
child 135
664aeaec8d25
equal deleted inserted replaced
133:8c37028f5024 134:4bccc18820e8
103 free(path); 103 free(path);
104 104
105 return res; 105 return res;
106 } 106 }
107 107
108 void resource_free_properties(DavSession *sn, UcxMap *properties) {
109 UcxMapIterator i = ucx_map_iterator(properties);
110 char *property;
111 UCX_MAP_FOREACH(key, property, i) {
112 dav_session_free(sn, property);
113 }
114 ucx_map_free(properties);
115 }
116
108 void dav_resource_free(DavResource *res) { 117 void dav_resource_free(DavResource *res) {
109 DavSession *sn = res->session; 118 DavSession *sn = res->session;
110 119
111 dav_session_free(sn, res->name); 120 dav_session_free(sn, res->name);
112 dav_session_free(sn, res->path); 121 dav_session_free(sn, res->path);
113 if(res->href) { 122 if(res->href) {
114 dav_session_free(sn, res->href); 123 dav_session_free(sn, res->href);
115 } 124 }
116 125
117 DavResourceData *data = res->data; 126 DavResourceData *data = res->data;
118 UcxMapIterator i = ucx_map_iterator(data->properties); 127 resource_free_properties(sn, data->properties);
119 UcxKey key;
120 char *property;
121 UCX_MAP_FOREACH(key, property, i) {
122 dav_session_free(sn, property);
123 }
124 ucx_map_free(data->properties);
125 128
126 UCX_FOREACH(elm, data->set) { 129 UCX_FOREACH(elm, data->set) {
127 DavProperty *p = elm->data; 130 DavProperty *p = elm->data;
128 dav_session_free(sn, p->ns->name); 131 dav_session_free(sn, p->ns->name);
129 if(p->ns->prefix) { 132 if(p->ns->prefix) {
270 } 273 }
271 274
272 char* dav_get_property(DavResource *res, char *name) { 275 char* dav_get_property(DavResource *res, char *name) {
273 char *pns; 276 char *pns;
274 char *pname; 277 char *pname;
275 dav_get_property_namespace(res->session->context, name, &pns, &pname); 278 dav_get_property_namespace_str(res->session->context, name, &pns, &pname);
276 return dav_get_property_ns(res, pns, pname); 279 return dav_get_property_ns(res, pns, pname);
277 } 280 }
278 281
279 char* dav_get_property_ns(DavResource *res, char *ns, char *name) { 282 char* dav_get_property_ns(DavResource *res, char *ns, char *name) {
280 char *property = resource_get_property(res, ns, name); 283 char *property = resource_get_property(res, ns, name);
303 } 306 }
304 307
305 void dav_set_property(DavResource *res, char *name, char *value) { 308 void dav_set_property(DavResource *res, char *name, char *value) {
306 char *pns; 309 char *pns;
307 char *pname; 310 char *pname;
308 dav_get_property_namespace(res->session->context, name, &pns, &pname); 311 dav_get_property_namespace_str(res->session->context, name, &pns, &pname);
309 dav_set_property_ns(res, pns, pname, value); 312 dav_set_property_ns(res, pns, pname, value);
310 } 313 }
311 314
312 void dav_set_property_ns(DavResource *res, char *ns, char *name, char *value) { 315 void dav_set_property_ns(DavResource *res, char *ns, char *name, char *value) {
313 UcxAllocator *a = res->session->mp->allocator; 316 UcxAllocator *a = res->session->mp->allocator;
330 } 333 }
331 334
332 void dav_remove_property(DavResource *res, char *name) { 335 void dav_remove_property(DavResource *res, char *name) {
333 char *pns; 336 char *pns;
334 char *pname; 337 char *pname;
335 dav_get_property_namespace(res->session->context, name, &pns, &pname); 338 dav_get_property_namespace_str(res->session->context, name, &pns, &pname);
336 dav_remove_property_ns(res, pns, pname); 339 dav_remove_property_ns(res, pns, pname);
337 } 340 }
338 341
339 void dav_remove_property_ns(DavResource *res, char *ns, char *name) { 342 void dav_remove_property_ns(DavResource *res, char *ns, char *name) {
340 DavResourceData *data = res->data; 343 DavResourceData *data = res->data;

mercurial