--- a/src/server/webdav/operation.c Tue Dec 31 10:01:32 2019 +0100 +++ b/src/server/webdav/operation.c Tue Dec 31 11:57:02 2019 +0100 @@ -74,11 +74,19 @@ WebdavPropfindRequest *propfind = op->requests->data; // execute propfind_do of the first backend for the first resource + int ret = REQ_PROCEED; if(op->dav->propfind_do(propfind, op->response, NULL, resource, s)) { - return REQ_ABORTED; + ret = REQ_ABORTED; + } else { + // propfind_do successful, close resource if needed + // closing the resource will execute propfind_do of all remaining + // backends + if(!resource->isclosed) { + ret = resource->close(resource); + } } - return REQ_PROCEED; + return ret; } int webdav_op_propfind_children(