packages feed

postie 0.3.2.0 → 0.4.0.0

raw patch · 7 files changed

+30/−16 lines, 7 files

Files

postie.cabal view
@@ -1,5 +1,5 @@ name: postie-version: 0.3.2.0+version: 0.4.0.0 cabal-version: >=1.10 build-type: Simple license: BSD3@@ -47,7 +47,7 @@                    bytestring >=0.10.0.2, tls >=1.2.6, pipes >=4.1.0,                    pipes-parse >=3.0.1, attoparsec >=0.10.4.0, transformers >=0.3.0.0,                    mtl >=2.1.2, cprng-aes >=0.5.2, data-default-class >=0.0.1, uuid >= 1.3.3-    exposed-modules: Web.Postie Web.Postie.Types Web.Postie.Settings Web.Postie.Address+    exposed-modules: Web.Postie Web.Postie.Types Web.Postie.Settings Web.Postie.Address Web.Postie.SessionID     exposed: True     buildable: True     default-language: Haskell2010
src/Web/Postie.hs view
@@ -33,6 +33,7 @@ import Web.Postie.Connection import Web.Postie.Types import Web.Postie.Session+import Web.Postie.SessionID import Web.Postie.Pipes (UnexpectedEndOfInputException, TooMuchDataException)  import Network (PortID (PortNumber), withSocketsDo, listenOn)
src/Web/Postie/Address.hs view
@@ -23,7 +23,7 @@   deriving (Eq, Ord, Typeable)  instance Show Address where-  show = show . toByteString+  show = BS.unpack . toByteString  instance IsString Address where   fromString = either (error "invalid email literal") id . parseOnly addrSpec . BS.pack
src/Web/Postie/Session.hs view
@@ -10,11 +10,11 @@ import Web.Postie.Types import Web.Postie.Settings import Web.Postie.Connection+import Web.Postie.SessionID import Web.Postie.Protocol (Event(..), Reply, reply, reply', renderReply) import qualified Web.Postie.Protocol as SMTP import Web.Postie.Pipes -import Data.UUID.V4 import qualified Data.ByteString.Char8 as BS  import qualified Pipes.Parse as P@@ -35,9 +35,6 @@ data Transaction = TxnInitial                  | TxnHaveMailFrom Address                  | TxnHaveRecipient Address [Address]--mkSessionID :: IO SessionID-mkSessionID = SessionID `fmap` nextRandom  runSession :: SessionID -> Settings -> Connection -> Application -> IO () runSession sid settings connection app =
+ src/Web/Postie/SessionID.hs view
@@ -0,0 +1,23 @@++module Web.Postie.SessionID (+    SessionID    -- | Unique session identifier+  , mkSessionID  -- | Creates a SessionID+  , toByteString -- | Converts SessionID to ByteString+  ) where++import Data.UUID (UUID, toString, toASCIIBytes)+import Data.UUID.V4 (nextRandom)+import Data.ByteString (ByteString)+import Data.Typeable (Typeable)++newtype SessionID = SessionID { toUUID :: UUID }+  deriving (Eq, Ord, Typeable)++instance Show SessionID where+  show = toString . toUUID++mkSessionID :: IO SessionID+mkSessionID = SessionID `fmap` nextRandom++toByteString :: SessionID -> ByteString+toByteString = toASCIIBytes . toUUID
src/Web/Postie/Settings.hs view
@@ -15,6 +15,7 @@  import Web.Postie.Types import Web.Postie.Address+import Web.Postie.SessionID import qualified Web.Postie.Connection as Connection  import Network (HostName, PortID(..))
src/Web/Postie/Types.hs view
@@ -3,22 +3,14 @@     HandlerResponse(..)   , Mail(..)   , Application-  , SessionID(..)   ) where  import Web.Postie.Address+import Web.Postie.SessionID (SessionID) -import Data.UUID-import Data.Typeable (Typeable) import Data.ByteString (ByteString)  import Pipes (Producer)--newtype SessionID = SessionID { toUUID :: UUID }-  deriving (Eq, Ord, Typeable)--instance Show SessionID where-  show = show . toUUID  -- | Handler response indicating validity of email transaction. data HandlerResponse = Accepted -- ^ Accepted, allow further processing.