src/server/webdav/webdav.c

branch
webdav
changeset 216
ce2866ec97f6
parent 215
68e824ba4a4f
child 217
8ed14d76db42
equal deleted inserted replaced
215:68e824ba4a4f 216:ce2866ec97f6
308 // which will be passed to the next backend 308 // which will be passed to the next backend
309 if(davList->propfind_init(pReq, path, &newProp)) { 309 if(davList->propfind_init(pReq, path, &newProp)) {
310 return REQ_ABORTED; 310 return REQ_ABORTED;
311 } 311 }
312 312
313 newPropCount = webdav_plist_count(newProp); 313 newPropCount = webdav_plist_size(newProp);
314 314
315 davList = davList->next; 315 davList = davList->next;
316 } 316 }
317 317
318 *out_req = requestObjects; 318 *out_req = requestObjects;
623 WebdavPList *new_elm = pool_malloc(pool, sizeof(WebdavPList)); 623 WebdavPList *new_elm = pool_malloc(pool, sizeof(WebdavPList));
624 if(!new_elm) { 624 if(!new_elm) {
625 return NULL; 625 return NULL;
626 } 626 }
627 new_elm->property = elm->property; // new list contains original ptr 627 new_elm->property = elm->property; // new list contains original ptr
628 new_elm->prev = NULL; 628 new_elm->prev = new_list_end;
629 new_elm->next = NULL; 629 new_elm->next = NULL;
630 630
631 if(new_list_end) { 631 if(new_list_end) {
632 new_list_end->next = elm; 632 new_list_end->next = new_elm;
633 elm->prev = new_list_end;
634
635 new_list_end = elm;
636 } else { 633 } else {
637 new_list = new_elm; 634 new_list = new_elm;
638 new_list_end = new_elm; 635 }
639 } 636 new_list_end = new_elm;
640 637
641 elm = elm->next; 638 elm = elm->next;
642 } 639 }
643 640
644 return new_list; 641 return new_list;
645 } 642 }
646 643
647 size_t webdav_plist_count(WebdavPList *list) { 644 size_t webdav_plist_size(WebdavPList *list) {
648 size_t count = 0; 645 size_t count = 0;
649 WebdavPList *elm = list; 646 WebdavPList *elm = list;
650 while(elm) { 647 while(elm) {
651 count++; 648 count++;
652 elm = elm->next; 649 elm = elm->next;
657 WebdavPListIterator webdav_plist_iterator(WebdavPList **list) { 654 WebdavPListIterator webdav_plist_iterator(WebdavPList **list) {
658 WebdavPListIterator i; 655 WebdavPListIterator i;
659 i.list = list; 656 i.list = list;
660 i.cur = NULL; 657 i.cur = NULL;
661 i.next = *list; 658 i.next = *list;
662 i.index; 659 i.index = 0;
663 return i; 660 return i;
664 } 661 }
665 662
666 int webdav_plist_iterator_next(WebdavPListIterator *i, WebdavPList **cur) { 663 int webdav_plist_iterator_next(WebdavPListIterator *i, WebdavPList **cur) {
667 if(i->cur) { 664 if(i->cur) {
676 } 673 }
677 674
678 void webdav_plist_iterator_remove_current(WebdavPListIterator *i) { 675 void webdav_plist_iterator_remove_current(WebdavPListIterator *i) {
679 WebdavPList *cur = i->cur; 676 WebdavPList *cur = i->cur;
680 if(cur->prev) { 677 if(cur->prev) {
681 cur->prev = cur->next; 678 cur->prev->next = cur->next;
682 if(cur->next) { 679 if(cur->next) {
683 cur->next->prev = cur->prev; 680 cur->next->prev = cur->prev;
684 } 681 }
685 } else { 682 } else {
686 *i->list = cur->next; 683 *i->list = cur->next;

mercurial