diff -r cd74667f6c85 -r 4adad7faf452 src/server/public/webdav.h --- 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);