From 3a6ef17937b60245271476aae13f1d74a27285c1 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 17 Dec 2014 14:38:04 -0400 Subject: more robust fallback when a file is available from multiple torrents and some torrent files cannot be downloaded --- Remote/BitTorrent.hs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'Remote') diff --git a/Remote/BitTorrent.hs b/Remote/BitTorrent.hs index fcb53420e..c1190a562 100644 --- a/Remote/BitTorrent.hs +++ b/Remote/BitTorrent.hs @@ -77,16 +77,17 @@ downloadKey key _file dest p = do get . map (torrentUrlNum . fst . getDownloader) =<< getBitTorrentUrls key where get [] = do - warning "no known torrent url" + warning "could not download torrent" return False get urls = do showOutput -- make way for download progress bar untilTrue urls $ \(u, filenum) -> do registerTorrentCleanup u checkDependencies - unlessM (downloadTorrentFile u) $ - error "could not download torrent file" - downloadTorrentContent key u dest filenum p + ifM (downloadTorrentFile u) + ( downloadTorrentContent key u dest filenum p + , return False + ) downloadKeyCheap :: Key -> FilePath -> Annex Bool downloadKeyCheap _ _ = return False -- cgit v1.2.3