http-conduit-downloader 1.0.10 → 1.0.11
raw patch · 2 files changed
+17/−9 lines, 2 filesdep ~http-conduit
Dependency ranges changed: http-conduit
Files
Network/HTTP/Conduit/Downloader.hs view
@@ -69,7 +69,7 @@ import qualified Data.ByteString.Internal as B import Control.Monad import qualified Control.Exception as E-import Data.Default+import Data.Default as C import Data.String import Data.Char import Data.Maybe@@ -79,6 +79,7 @@ import qualified Network.TLS as TLS import qualified Network.HTTP.Types as N import qualified Network.HTTP.Conduit as C+import qualified Network.Connection as C import qualified Control.Monad.Trans.Resource as C import qualified Data.Conduit as C import System.Timeout.Lifted@@ -129,8 +130,9 @@ { dsUserAgent = "Mozilla/5.0 (compatible; HttpConduitDownloader/1.0; +http://hackage.haskell.org/package/http-conduit-downloader)" , dsTimeout = 30 , dsManagerSettings =- C.def { C.managerCheckCerts =- \ _ _ _ -> return TLS.CertificateUsageAccept }+ C.mkManagerSettings (C.TLSSettingsSimple True False False) Nothing+-- C.def { C.managerCheckCerts =+-- \ _ _ _ -> return TLS.CertificateUsageAccept } , dsMaxDownloadSize = 10*1024*1024 } @@ -159,7 +161,7 @@ (_, m) <- C.allocate (C.newManager $ dsManagerSettings s) C.closeManager liftIO $ f (Downloader m s) -parseUrl :: String -> Either C.HttpException (C.Request a)+parseUrl :: String -> Either C.HttpException C.Request parseUrl = C.parseUrl . takeWhile (/= '#') -- | Perform download@@ -177,7 +179,7 @@ downloadG (return . postRequest dat) d url ha [] -- | Make HTTP POST request.-postRequest :: B.ByteString -> C.Request a -> C.Request b+postRequest :: B.ByteString -> C.Request -> C.Request postRequest dat rq = rq { C.method = N.methodPost , C.requestBody = C.RequestBodyBS dat }@@ -185,7 +187,7 @@ -- | Generic version of 'download' -- with ability to modify http-conduit 'Request'. downloadG :: -- m ~ C.ResourceT IO- (C.Request (C.ResourceT IO) -> C.ResourceT IO (C.Request (C.ResourceT IO)))+ (C.Request -> C.ResourceT IO C.Request) -- ^ Function to modify 'Request' -- (e.g. sign or make 'postRequest') -> Downloader@@ -250,8 +252,12 @@ where toHeader :: String -> N.Header toHeader h = let (a,b) = break (== ':') h in (fromString a, fromString (tail b))+ handshakeFailed (TLS.Terminated _ e tlsError) =+ DRError $ "SSL terminated:\n" ++ show tlsError handshakeFailed (TLS.HandshakeFailed tlsError) =- DRError $ "SSL error:\n" ++ show tlsError+ DRError $ "SSL handshake failed:\n" ++ show tlsError+ handshakeFailed TLS.ConnectionNotEstablished =+ DRError $ "SSL connection not established" someException :: E.SomeException -> DownloadResult someException e = case show e of "<<timeout>>" -> DRError "Timeout"@@ -291,6 +297,8 @@ C.ProxyConnectException {..} -> DRError "Can't connect to proxy" C.ResponseBodyTooShort _ _ -> DRError "Response body too short" C.InvalidChunkHeaders -> DRError "Invalid chunk headers"+ C.TlsNotSupported -> DRError "TLS not supported"+ C.IncompleteHeaders -> DRError "Incomplete headers" bufSize :: Int bufSize = 32 * 1024 - overhead -- Copied from Data.ByteString.Lazy.
http-conduit-downloader.cabal view
@@ -1,6 +1,6 @@ cabal-version: >= 1.6 name: http-conduit-downloader-version: 1.0.10+version: 1.0.11 copyright: Vladimir Shabanov 2013 author: Vladimir Shabanov <vshabanoff@gmail.com> maintainer: Vladimir Shabanov <vshabanoff@gmail.com>@@ -39,7 +39,7 @@ library build-depends:- base == 4.*, http-conduit >= 1.9.4.1, network, zlib, lifted-base,+ base == 4.*, http-conduit >= 2.0.0.4, network, zlib, lifted-base, conduit, resourcet, http-types, tls, data-default, bytestring, mtl, time, old-locale