From 0260ee43e63c98dc43a6c47603f702d2b0449b17 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@kitenet.net> Date: Fri, 8 Aug 2014 14:57:05 -0400 Subject: [PATCH] fix removeKey when not present --- Remote/WebDAV.hs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Remote/WebDAV.hs b/Remote/WebDAV.hs index af3af79020..d344e0a745 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"