summaryrefslogtreecommitdiff
path: root/Remote/WebDAV.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-11-19 13:18:23 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-11-19 13:18:23 -0400
commit798c3d45c11cfe3d7604b27f3271f50d0f810db7 (patch)
tree946bf6b717e069623d8c48a93402e08db564dcd5 /Remote/WebDAV.hs
parent8ed7d090ab319bcc45e1593cd2613d38a3615120 (diff)
directory special remote: Made more efficient and robust.
Files are now written to a tmp directory in the remote, and once all chunks are written, etc, it's moved into the final place atomically. For now, checkpresent still checks every single chunk of a file, because the old method could leave partially transferred files with some chunks present and others not.
Diffstat (limited to 'Remote/WebDAV.hs')
-rw-r--r--Remote/WebDAV.hs10
1 files changed, 5 insertions, 5 deletions
diff --git a/Remote/WebDAV.hs b/Remote/WebDAV.hs
index 113e59046..b3d342d19 100644
--- a/Remote/WebDAV.hs
+++ b/Remote/WebDAV.hs
@@ -90,7 +90,7 @@ store r k _f p = metered (Just p) k $ \meterupdate ->
let url = davLocation baseurl k
f <- inRepo $ gitAnnexLocation k
liftIO $ withMeteredFile f meterupdate $
- storeHelper r url user pass
+ storeHelper r k url user pass
storeEncrypted :: Remote -> (Cipher, Key) -> Key -> MeterUpdate -> Annex Bool
storeEncrypted r (cipher, enck) k p = metered (Just p) k $ \meterupdate ->
@@ -98,12 +98,12 @@ storeEncrypted r (cipher, enck) k p = metered (Just p) k $ \meterupdate ->
let url = davLocation baseurl enck
f <- inRepo $ gitAnnexLocation k
liftIO $ encrypt cipher (streamMeteredFile f meterupdate) $
- readBytes $ storeHelper r url user pass
+ readBytes $ storeHelper r enck url user pass
-storeHelper :: Remote -> DavUrl -> DavUser -> DavPass -> L.ByteString -> IO Bool
-storeHelper r urlbase user pass b = catchBoolIO $ do
+storeHelper :: Remote -> Key -> DavUrl -> DavUser -> DavPass -> L.ByteString -> IO Bool
+storeHelper r k urlbase user pass b = catchBoolIO $ do
davMkdir (urlParent urlbase) user pass
- storeChunks urlbase chunksize storer recorder finalizer
+ storeChunks k undefined undefined chunksize storer recorder finalizer
where
chunksize = chunkSize $ config r
storer urls = storeChunked chunksize urls storehttp b