libidav/methods.c

changeset 62
3b813c57c106
parent 60
cdca2eef48ee
child 66
f8c1f685e08e
equal deleted inserted replaced
60:cdca2eef48ee 62:3b813c57c106
230 if(!root) { 230 if(!root) {
231 printf("method.c: TODO: remove\n"); 231 printf("method.c: TODO: remove\n");
232 root = dav_resource_new_href(sn, util_url_path(url)); // TODO: remove 232 root = dav_resource_new_href(sn, util_url_path(url)); // TODO: remove
233 } 233 }
234 234
235 //printf("%.*s\n\n", response->size, response->space);
235 xmlDoc *doc = xmlReadMemory(response->space, response->size, url, NULL, 0); 236 xmlDoc *doc = xmlReadMemory(response->space, response->size, url, NULL, 0);
236 if(!doc) { 237 if(!doc) {
237 // TODO: free stuff 238 // TODO: free stuff
238 sn->error = DAV_ERROR; 239 sn->error = DAV_ERROR;
239 return NULL; 240 return NULL;
527 } 528 }
528 s = S("</D:prop>\n</D:set>\n"); 529 s = S("</D:prop>\n</D:set>\n");
529 ucx_buffer_write(s.ptr, 1, s.length, buf); 530 ucx_buffer_write(s.ptr, 1, s.length, buf);
530 } 531 }
531 if(data->remove) { 532 if(data->remove) {
532 s = S("<D:set>\n<D:prop>\n"); 533 s = S("<D:remove>\n<D:prop>\n");
533 ucx_buffer_write(s.ptr, 1, s.length, buf); 534 ucx_buffer_write(s.ptr, 1, s.length, buf);
534 UCX_FOREACH(elm, data->set) { 535 UCX_FOREACH(elm, data->remove) {
535 DavProperty *property = elm->data; 536 DavProperty *property = elm->data;
536 char *prefix = ucx_map_cstr_get(namespaces, property->ns->name); 537 char *prefix = ucx_map_cstr_get(namespaces, property->ns->name);
537 538
538 s = S("<"); 539 s = S("<");
539 ucx_buffer_write(s.ptr, 1, s.length, buf); 540 ucx_buffer_write(s.ptr, 1, s.length, buf);
541 ucx_buffer_write(s.ptr, 1, s.length, buf); 542 ucx_buffer_write(s.ptr, 1, s.length, buf);
542 s = S(":"); 543 s = S(":");
543 ucx_buffer_write(s.ptr, 1, s.length, buf); 544 ucx_buffer_write(s.ptr, 1, s.length, buf);
544 s = sstr(property->name); 545 s = sstr(property->name);
545 ucx_buffer_write(s.ptr, 1, s.length, buf); 546 ucx_buffer_write(s.ptr, 1, s.length, buf);
546 s = S(">"); 547 s = S(" />\n");
547 ucx_buffer_write(s.ptr, 1, s.length, buf); 548 ucx_buffer_write(s.ptr, 1, s.length, buf);
548 s = sstr(property->value); 549 }
549 ucx_buffer_write(s.ptr, 1, s.length, buf); 550 s = S("</D:prop>\n</D:remove>\n");
550 s = S("</");
551 ucx_buffer_write(s.ptr, 1, s.length, buf);
552 s = sstr(prefix);
553 ucx_buffer_write(s.ptr, 1, s.length, buf);
554 s = S(":");
555 ucx_buffer_write(s.ptr, 1, s.length, buf);
556 s = sstr(property->name);
557 ucx_buffer_write(s.ptr, 1, s.length, buf);
558 s = S(">\n");
559 ucx_buffer_write(s.ptr, 1, s.length, buf);
560 }
561 s = S("</D:prop>\n</D:set>\n");
562 ucx_buffer_write(s.ptr, 1, s.length, buf); 551 ucx_buffer_write(s.ptr, 1, s.length, buf);
563 } 552 }
564 553
565 s = S("</D:propertyupdate>\n"); 554 s = S("</D:propertyupdate>\n");
566 ucx_buffer_write(s.ptr, 1, s.length, buf); 555 ucx_buffer_write(s.ptr, 1, s.length, buf);

mercurial