src/server/webdav/multistatus.c

branch
webdav
changeset 252
5653a9626cc0
parent 251
f727a21497bb
child 308
c3cad8f51a24
equal deleted inserted replaced
251:f727a21497bb 252:5653a9626cc0
557 int msresponse_close(WebdavResource *res) { 557 int msresponse_close(WebdavResource *res) {
558 MSResponse *response = (MSResponse*)res; 558 MSResponse *response = (MSResponse*)res;
559 if(response->closing) { 559 if(response->closing) {
560 return 0; // close already in progress 560 return 0; // close already in progress
561 } 561 }
562 response->closing = TRUE;
562 Multistatus *ms = response->multistatus; 563 Multistatus *ms = response->multistatus;
563 564
564 int ret = REQ_PROCEED; 565 int ret = REQ_PROCEED;
566
567 // PROPFIND:
568 // response_close will execute propfind_do of all remaining backends
569 // after that we will have all available properties
565 WebdavOperation *op = ms->response.op; 570 WebdavOperation *op = ms->response.op;
566 if(op->response_close(op, res)) { 571 if(op->response_close(op, res)) {
567 ret = REQ_ABORTED; 572 ret = REQ_ABORTED;
568 } 573 }
569 574
615 620
616 // we don't need the properties anymore 621 // we don't need the properties anymore
617 ucx_map_free(response->properties); 622 ucx_map_free(response->properties);
618 623
619 response->resource.isclosed = TRUE; 624 response->resource.isclosed = TRUE;
620 response->closing = FALSE;
621 return ret; 625 return ret;
622 } 626 }

mercurial