From 660b4cbd71bcce4fdbdef3d24ffcb58fb4d23437 Mon Sep 17 00:00:00 2001 From: pucsdian <57708584+pucsdian@users.noreply.github.com> Date: Fri, 28 Feb 2025 11:38:33 +0530 Subject: [PATCH 1/3] expose createSIOHandle and createTLSConnection --- ftp-client/src/Network/FTP/Client.hs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ftp-client/src/Network/FTP/Client.hs b/ftp-client/src/Network/FTP/Client.hs index 33e33dd..507aa57 100644 --- a/ftp-client/src/Network/FTP/Client.hs +++ b/ftp-client/src/Network/FTP/Client.hs @@ -40,6 +40,9 @@ module Network.FTP.Client ( Handle(..), -- * Exceptions FTPException(..), + -- * System Handle Creation + createSIOHandle, + createTLSConnection, -- * Handle Implementations sIOHandleImpl, tlsHandleImpl, From afd7a65b7087ae1b9a11e7adbe2e788b9c7215a0 Mon Sep 17 00:00:00 2001 From: pucsdian <57708584+pucsdian@users.noreply.github.com> Date: Tue, 1 Apr 2025 18:12:13 +0530 Subject: [PATCH 2/3] fix issue in reading multi line response --- ftp-client/src/Network/FTP/Client.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ftp-client/src/Network/FTP/Client.hs b/ftp-client/src/Network/FTP/Client.hs index 507aa57..d0251ef 100644 --- a/ftp-client/src/Network/FTP/Client.hs +++ b/ftp-client/src/Network/FTP/Client.hs @@ -272,8 +272,8 @@ loopMultiLine loopMultiLine h code lines = do nextLine <- liftIO $ getLineResp h let newLines = lines <> [C.dropWhile (== ' ') nextLine] - nextCode = C.take 3 nextLine - if nextCode == code + isLastLine = C.isPrefixOf (code <> " ") nextLine -- Ref for reading multiline response : https://datatracker.ietf.org/doc/html/rfc959#page-36 + if isLastLine then return newLines else loopMultiLine h code newLines From 0386eb7784b3ff3adbe98a5b551b4a403ba08fe5 Mon Sep 17 00:00:00 2001 From: pucsdian <57708584+pucsdian@users.noreply.github.com> Date: Tue, 1 Apr 2025 18:13:38 +0530 Subject: [PATCH 3/3] expose connectTLS --- ftp-client/src/Network/FTP/Client.hs | 1 + 1 file changed, 1 insertion(+) diff --git a/ftp-client/src/Network/FTP/Client.hs b/ftp-client/src/Network/FTP/Client.hs index d0251ef..afabdc3 100644 --- a/ftp-client/src/Network/FTP/Client.hs +++ b/ftp-client/src/Network/FTP/Client.hs @@ -43,6 +43,7 @@ module Network.FTP.Client ( -- * System Handle Creation createSIOHandle, createTLSConnection, + connectTLS, -- * Handle Implementations sIOHandleImpl, tlsHandleImpl,