webdav: release locks when deleting #92
Open
+180
−12
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The WebDAV RFC indicates that locks rooted on deleted resource MUST be
destroyed. The WebDAV server does not do this with the builtin in-memory
lock system (memLS). This commit adds a new interface, implemented by
memLS, which allows for deleting locks rooted at a given resource.
We added a new interface rather than extending or changing the existing
one to avoid breaking backwards compatibility with other implementations
of the LockSystem interface. The WebDAV server will behave as it used to
if using a LockSystem which has not implemented the new interface.
We apply the same operation for moved files. This follows from the
WebDAV RFC which indicates that a move is logically a copy followed by
consitency checks, followed by a delete of the source.
Fixes golang/go#42839