src/server/webdav/operation.c

branch
webdav
changeset 218
2ba512b284b9
parent 217
8ed14d76db42
child 220
2915b6c11aec
equal deleted inserted replaced
217:8ed14d76db42 218:2ba512b284b9
72 72
73 // get first propfind object 73 // get first propfind object
74 WebdavPropfindRequest *propfind = op->requests->data; 74 WebdavPropfindRequest *propfind = op->requests->data;
75 75
76 // execute propfind_do of the first backend for the first resource 76 // execute propfind_do of the first backend for the first resource
77 int ret = REQ_PROCEED;
77 if(op->dav->propfind_do(propfind, op->response, NULL, resource, s)) { 78 if(op->dav->propfind_do(propfind, op->response, NULL, resource, s)) {
78 return REQ_ABORTED; 79 ret = REQ_ABORTED;
79 } 80 } else {
80 81 // propfind_do successful, close resource if needed
81 return REQ_PROCEED; 82 // closing the resource will execute propfind_do of all remaining
83 // backends
84 if(!resource->isclosed) {
85 ret = resource->close(resource);
86 }
87 }
88
89 return ret;
82 } 90 }
83 91
84 int webdav_op_propfind_children( 92 int webdav_op_propfind_children(
85 WebdavOperation *op, 93 WebdavOperation *op,
86 VFSContext *vfs, 94 VFSContext *vfs,

mercurial