summaryrefslogtreecommitdiff
path: root/Remote/WebDAV.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Remote/WebDAV.hs')
-rw-r--r--Remote/WebDAV.hs13
1 files changed, 10 insertions, 3 deletions
diff --git a/Remote/WebDAV.hs b/Remote/WebDAV.hs
index af3af7902..d344e0a74 100644
--- a/Remote/WebDAV.hs
+++ b/Remote/WebDAV.hs
@@ -128,9 +128,16 @@ remove Nothing _ = return False
remove (Just dav) k = liftIO $ do
-- Delete the key's whole directory, including any
-- legacy chunked files, etc, in a single action.
- ret <- goDAV dav $ safely $
- inLocation (keyDir k) delContentM
- return (isJust ret)
+ let d = keyDir k
+ goDAV dav $ do
+ v <- safely $ inLocation d delContentM
+ case v of
+ Just _ -> return True
+ Nothing -> do
+ v' <- existsDAV d
+ case v' of
+ Right False -> return True
+ _ -> return False
checkKey :: Remote -> ChunkConfig -> Maybe DavHandle -> CheckPresent
checkKey r _ Nothing _ = error $ name r ++ " not configured"