304 // create plist copy as out-plist for init |
304 // create plist copy as out-plist for init |
305 newProp = webdav_plist_clone(pool, newProp); |
305 newProp = webdav_plist_clone(pool, newProp); |
306 |
306 |
307 // run init: this can generate a new properties list (newProp) |
307 // run init: this can generate a new properties list (newProp) |
308 // which will be passed to the next backend |
308 // which will be passed to the next backend |
309 if(dav->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_count(newProp); |
314 |
314 |
324 * Executes propfind_do for each Backend |
324 * Executes propfind_do for each Backend |
325 * The list requests must contain all WebdavPropfindRequest objects |
325 * The list requests must contain all WebdavPropfindRequest objects |
326 * of all backends |
326 * of all backends |
327 */ |
327 */ |
328 int webdav_propfind_do( |
328 int webdav_propfind_do( |
329 WebdavBackend *webdav, |
329 WebdavBackend *dav, |
330 UcxList *requests, |
330 UcxList *requests, |
331 WebdavResponse *response, |
331 WebdavResponse *response, |
332 VFS_DIR parent, |
332 VFS_DIR parent, |
333 const char *path, |
333 const char *path, |
334 struct stat *s) |
334 struct stat *s) |
335 { |
335 { |
336 while(webdav && requests) { |
336 while(dav && requests) { |
337 if(webdav->propfind_do(requests->data, response, parent, path, s)) { |
337 if(dav->propfind_do(requests->data, response, parent, path, s)) { |
338 return REQ_ABORTED; |
338 return REQ_ABORTED; |
339 } |
339 } |
340 |
340 |
341 webdav = webdav->next; |
341 dav = dav->next; |
342 requests = requests->next; |
342 requests = requests->next; |
343 } |
343 } |
344 return REQ_PROCEED; |
344 return REQ_PROCEED; |
345 } |
345 } |
346 |
346 |
347 /* |
347 /* |
348 * Executes propfind_finish for each Backend |
348 * Executes propfind_finish for each Backend |
349 */ |
349 */ |
350 int webdav_propfind_finish(WebdavBackend *webdav, UcxList *requests) { |
350 int webdav_propfind_finish(WebdavBackend *dav, UcxList *requests) { |
351 int ret = REQ_PROCEED; |
351 int ret = REQ_PROCEED; |
352 while(webdav && requests) { |
352 while(dav && requests) { |
353 if(webdav->propfind_finish(requests->data)) { |
353 if(dav->propfind_finish(requests->data)) { |
354 ret = REQ_ABORTED; |
354 ret = REQ_ABORTED; |
355 } |
355 } |
356 |
356 |
357 webdav = webdav->next; |
357 dav = dav->next; |
358 requests = requests->next; |
358 requests = requests->next; |
359 } |
359 } |
360 return ret; |
360 return ret; |
361 } |
361 } |
362 |
362 |