imapget 0.0.2 → 0.0.3
raw patch · 3 files changed
+10/−9 lines, 3 filesdep ~HaskellNet
Dependency ranges changed: HaskellNet
Files
- SSLWrap.hs +2/−2
- imapget.cabal +3/−3
- imapget.hs +5/−4
SSLWrap.hs view
@@ -11,7 +11,7 @@ import Network.BSD ( getHostByName, defaultProtocol, hostAddress ) import qualified Data.ByteString as B ( hGetSome, hPut, null ) import Control.Exception ( bracket, finally, bracketOnError )-import Control.Concurrent ( killThread, takeMVar, MVar, ThreadId, newEmptyMVar, forkIOUnmasked+import Control.Concurrent ( killThread, takeMVar, MVar, ThreadId, newEmptyMVar, forkIOWithUnmask , putMVar ) import Control.Monad ( liftM2 )@@ -66,7 +66,7 @@ myForkIO :: IO () -> IO (MVar (),ThreadId) myForkIO io = do m <- newEmptyMVar- t <- forkIOUnmasked (io `finally` putMVar m ())+ t <- forkIOWithUnmask$ \unmask -> unmask (io `finally` putMVar m ()) return (m,t)
imapget.cabal view
@@ -1,5 +1,5 @@ Name: imapget-Version: 0.0.2+Version: 0.0.3 Synopsis: Downloads email from imap SSL servers. Description: This programs shows how to use HaskellNet to download email from imap SSL servers. The IMAP implementation is provided by HaskellNet, and the SSL implementation is@@ -37,7 +37,7 @@ source-repository this type: darcs location: http://patch-tag.com/r/facundo/imapget- tag: 0.0.2+ tag: 0.0.3 Executable imapget@@ -48,7 +48,7 @@ build-depends: base < 5 , bytestring , directory- , HaskellNet<0.4+ , HaskellNet >=0.3.1 && <0.4 , HsOpenSSL , network , text
imapget.hs view
@@ -1,19 +1,20 @@ import Control.Arrow ( second ) import Control.Concurrent ( forkIO, threadDelay )-import Control.Exception ( mask_ )+import Control.Exception ( mask_, catch ) import Control.Monad ( when )-import qualified Data.ByteString as B ( ByteString, putStrLn )+import qualified Data.ByteString as B ( ByteString )+import qualified Data.ByteString.Char8 as B ( putStrLn ) import Data.Char ( isDigit ) import Network.HaskellNet.IMAP.Connection as I ( IMAPConnection ) import Network.HaskellNet.IMAP as I ( list, select, search, SearchQuery(..), fetch , connectIMAPPort, login ) import Network.Socket as S ( HostName, PortNumber )+import Prelude hiding (catch) import System.Directory ( canonicalizePath ) import System.Environment ( getArgs ) import System.Exit ( exitFailure )-import System.IO ( Handle ) import System.IO.Error ( isDoesNotExistError ) import SSLWrap ( mapSSL )@@ -109,7 +110,7 @@ -withIMAP :: IMAPConf -> (I.IMAPConnection Handle -> IO a) -> IO a+withIMAP :: IMAPConf -> (I.IMAPConnection -> IO a) -> IO a withIMAP c action = do -- launch thread for wrapping tcp with SSL cafile <- canonicalizePath "cacert.pem"