src/server/public/webdav.h

branch
webdav
changeset 241
4adad7faf452
parent 240
cd74667f6c85
child 244
e59abb210584
--- a/src/server/public/webdav.h	Sat Jan 25 15:34:30 2020 +0100
+++ b/src/server/public/webdav.h	Sat Jan 25 21:37:38 2020 +0100
@@ -191,6 +191,11 @@
     
     WebdavPList *remove;
     size_t removecount;
+    
+    /*
+     * custom userdata for the backend
+     */
+    void *userdata;
 };
 
 struct WebdavLockRequest {
@@ -224,6 +229,8 @@
     
     WSBool isclosed;
     
+    int err;
+    
     /*
      * int addprop(WebdavResource *res, WebdavProperty *property, int status);
      * 
@@ -281,26 +288,39 @@
     /*
      * int proppatch_do(
      *     WebdavProppatchRequest *request,
-     *     WebdavResponse *response,
-     *     VFSFile *file);
+     *     WebdavResource *response,
+     *     VFSFile *file,
+     *     WebdavPList **out_set,
+     *     WebdavPList **out_remove);
      * 
-     * Modifies properties of the requsted resource:
+     * Modifies properties of the requsted resource.
      */
-    int (*proppatch_do)(WebdavProppatchRequest *, WebdavResponse *, VFSFile *);
+    int (*proppatch_do)(
+            WebdavProppatchRequest *,
+            WebdavResource *,
+            VFSFile *,
+            WebdavPList **,
+            WebdavPList **);
     
     /*
      * int proppatch_finish(
      *     WebdavProppatchRequest *request,
+     *     WebdavResource *response,
+     *     VFSFile *file,
      *     WSBool commit);
      * 
      * Called after all proppatch_do functions of all backends are executed
      * and should either permanently store the properties (commit == true) or
      * revert all changed (commit == false).
      */
-    int (*proppatch_finish)(WebdavProppatchRequest *, WSBool);
+    int (*proppatch_finish)(
+            WebdavProppatchRequest *,
+            WebdavResource *,
+            VFSFile *,
+            WSBool);
     
     /*
-     * See the WS_PROPFIND_ macros for informations about the settings
+     * See the WS_WEBDAV_* macros for informations about the settings
      */
     uint32_t settings;
     
@@ -326,6 +346,10 @@
         WebdavProperty *prop);
 
 WebdavPList* webdav_plist_clone(pool_handle_t *pool, WebdavPList *list);
+WebdavPList* webdav_plist_clone_s(
+        pool_handle_t *pool,
+        WebdavPList *list,
+        size_t *newlen);
 
 size_t webdav_plist_size(WebdavPList *list);
 

mercurial