ftp-client-conduit 0.2.0.0 → 0.3.0.0
raw patch · 2 files changed
+30/−28 lines, 2 filesdep ~ftp-clientPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: ftp-client
API changes (from Hackage documentation)
- Network.FTP.Client.Conduit: listS :: MonadResource m => Handle -> [String] -> Producer m ByteString
- Network.FTP.Client.Conduit: nlstS :: MonadResource m => Handle -> [String] -> Producer m ByteString
- Network.FTP.Client.Conduit: retrS :: MonadResource m => Handle -> String -> Producer m ByteString
- Network.FTP.Client.Conduit: storS :: MonadResource m => Handle -> String -> RTypeCode -> Consumer ByteString m ()
Files
ftp-client-conduit.cabal view
@@ -1,5 +1,5 @@ name: ftp-client-conduit-version: 0.2.0.0+version: 0.3.0.0 cabal-version: >=1.10 build-type: Simple license: PublicDomain@@ -23,7 +23,7 @@ Network.FTP.Client.Conduit build-depends: base >=4.7 && <5,- ftp-client ==0.2.*,+ ftp-client ==0.3.*, conduit >=1.1 && <1.3, bytestring >=0.10.8.1 && <0.11, resourcet ==1.1.*,
src/Network/FTP/Client/Conduit.hs view
@@ -11,11 +11,6 @@ retr, list, stor,- -- * Secure data commands- nlstS,- retrS,- listS,- storS ) where import Data.Conduit@@ -34,6 +29,7 @@ , getMultiLineResp , sIOHandleImpl , tlsHandleImpl+ , Security(..) ) import qualified Network.FTP.Client as FTP@@ -44,6 +40,15 @@ import System.IO.Error import Network.Connection +debugging :: Bool+debugging = False++debugPrint :: (Show a, MonadIO m) => a -> m ()+debugPrint s = debugPrint' s debugging+ where+ debugPrint' _ False = return ()+ debugPrint' s True = liftIO $ print s+ getAllLineRespC :: MonadIO m => FTP.Handle -> Producer m ByteString getAllLineRespC h = loop where@@ -67,6 +72,18 @@ liftIO $ FTP.sendLine h x loop +sourceDataCommandSecurity+ :: MonadResource m+ => FTP.Handle+ -> PortActivity+ -> [FTPCommand]+ -> (FTP.Handle -> ConduitM i o m r)+ -> ConduitM i o m r+sourceDataCommandSecurity h =+ case FTP.security h of+ Clear -> sourceDataCommand h+ TLS -> sourceTLSDataCommand h+ sourceDataCommand :: MonadResource m => FTP.Handle@@ -80,7 +97,7 @@ hClose (f . sIOHandleImpl) resp <- liftIO $ getMultiLineResp ch- liftIO $ print $ "Recieved: " <> (show resp)+ debugPrint $ "Recieved: " <> (show resp) return x sourceTLSDataCommand@@ -96,7 +113,7 @@ connectionClose (f . tlsHandleImpl) resp <- liftIO $ getMultiLineResp ch- liftIO $ print $ "Recieved: " <> (show resp)+ debugPrint $ "Recieved: " <> (show resp) return x sourceHandle :: MonadIO m => FTP.Handle -> Producer m ByteString@@ -127,29 +144,14 @@ sendType TI h = sinkHandle h nlst :: MonadResource m => FTP.Handle -> [String] -> Producer m ByteString-nlst ch args = sourceDataCommand ch Passive [RType TA, Nlst args] getAllLineRespC+nlst ch args = sourceDataCommandSecurity ch Passive [RType TA, Nlst args] getAllLineRespC retr :: MonadResource m => FTP.Handle -> String -> Producer m ByteString-retr ch path = sourceDataCommand ch Passive [RType TI, Retr path] sourceHandle+retr ch path = sourceDataCommandSecurity ch Passive [RType TI, Retr path] sourceHandle list :: MonadResource m => FTP.Handle -> [String] -> Producer m ByteString-list ch args = sourceDataCommand ch Passive [RType TA, List args] getAllLineRespC+list ch args = sourceDataCommandSecurity ch Passive [RType TA, List args] getAllLineRespC stor :: MonadResource m => FTP.Handle -> String -> RTypeCode -> Consumer ByteString m () stor ch loc rtype =- sourceDataCommand ch Passive [RType rtype, Stor loc] $ sendType rtype---- TLS--nlstS :: MonadResource m => FTP.Handle -> [String] -> Producer m ByteString-nlstS ch args = sourceTLSDataCommand ch Passive [RType TA, Nlst args] getAllLineRespC--retrS :: MonadResource m => FTP.Handle -> String -> Producer m ByteString-retrS ch path = sourceTLSDataCommand ch Passive [RType TI, Retr path] sourceHandle--listS :: MonadResource m => FTP.Handle -> [String] -> Producer m ByteString-listS ch args = sourceTLSDataCommand ch Passive [RType TA, List args] getAllLineRespC--storS :: MonadResource m => FTP.Handle -> String -> RTypeCode -> Consumer ByteString m ()-storS ch loc rtype =- sourceTLSDataCommand ch Passive [RType rtype, Stor loc] $ sendType rtype+ sourceDataCommandSecurity ch Passive [RType rtype, Stor loc] $ sendType rtype