src/server/webdav/operation.c

branch
webdav
changeset 218
2ba512b284b9
parent 217
8ed14d76db42
child 220
2915b6c11aec
--- 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(

mercurial