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; |
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; |