packages feed

http-pony 0.1.0.2 → 0.1.0.3

raw patch · 3 files changed

+23/−19 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Network.HTTP.Pony.Serve: serve :: (MonadSafe m) => HostPreference -> ServiceName -> (Producer ByteString (SafeT IO) () -> (SafeT IO) (Producer ByteString (SafeT IO) ())) -> m ()
- Network.HTTP.Pony.Serve: run :: (MonadSafe m) => HostPreference -> ServiceName -> (Producer ByteString IO () -> IO (Producer ByteString IO ())) -> m ()
+ Network.HTTP.Pony.Serve: run :: (MonadSafe m) => HostPreference -> ServiceName -> (Producer ByteString (SafeT IO) () -> (SafeT IO) (Producer ByteString (SafeT IO) ())) -> m ()

Files

ChangeLog.md view
@@ -1,5 +1,9 @@ # Revision history for http-pony -## 0.1.0.0  -- YYYY-mm-dd+## 0.1.0.0  -- 2016-09-22  * First version. Released on an unsuspecting world.++## 0.1.0.3  -- 2016-09-24++* Add MonadSafe type for m, this enables resource safe request / repsonse pipes.
http-pony.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/  name:                http-pony-version:             0.1.0.2+version:             0.1.0.3 synopsis:            A type unsafe http library -- description:          license:             BSD3@@ -21,7 +21,6 @@   exposed-modules:     Network.HTTP.Pony.Type                      , Network.HTTP.Pony.Serve                      , Network.HTTP.Pony.Helper-                     -- , Network.HTTP.Pony.Transformer   -- other-modules:          -- other-extensions:    OverloadedStrings   build-depends:       @@ -32,7 +31,6 @@                        , pipes >=4.1                        , pipes-network >=0.6                        , pipes-safe >=2.2-                       -- , profunctors >= 5.2                        , transformers >=0.5  
src/Network/HTTP/Pony/Serve.hs view
@@ -7,11 +7,12 @@ import           Control.Monad.IO.Class (MonadIO(..)) import           Data.ByteString.Char8 (ByteString) import qualified Network.Socket as NS-import           Pipes (Producer, Consumer, runEffect, (>->))+import           Pipes (Effect, Producer, Consumer, runEffect, (>->)) import           Pipes.Network.TCP.Safe (HostPreference())-import           Pipes.Network.TCP.Safe (fromSocket, toSocket)+import           Pipes.Network.TCP.Safe (fromSocket, toSocket, connect, connectSock+                                        , closeSock) import qualified Pipes.Network.TCP.Safe as PipesNetwork-import           Pipes.Safe (MonadSafe(), runSafeT)+import           Pipes.Safe (MonadSafe(), runSafeT, SafeT)  import           Network.HTTP.Pony.Helper ((-), shutdownSend, shutdownReceive) import           Prelude hiding ((-), log)@@ -27,8 +28,8 @@   pure ()  serveWithSocket :: (MonadIO m)  => (NS.Socket, NS.SockAddr)-                              -> (Producer ByteString m () -> m (Producer ByteString m ()))-                              -> m ()+                                -> (Producer ByteString m () -> m (Producer ByteString m ()))+                                -> m () serveWithSocket (s,_) =   let     pull = fromSocket s 4096 >> shutdownReceive s@@ -37,18 +38,19 @@    serveWithPipe pull push +serve :: (MonadSafe m)  => HostPreference+                        -> NS.ServiceName+                        -> (Producer ByteString (SafeT IO) ()+                            -> (SafeT IO) (Producer ByteString (SafeT IO) ()))+                        -> m () +serve host service app =+  PipesNetwork.serve host service - \socket -> runSafeT (serveWithSocket socket app)+ run :: (MonadSafe m) => HostPreference                      -> NS.ServiceName-                     -> (Producer ByteString IO () -> IO (Producer ByteString IO ()))+                     -> (Producer ByteString (SafeT IO) ()+                         -> (SafeT IO) (Producer ByteString (SafeT IO) ()))                      -> m ()-run host service app =-  PipesNetwork.serve host service - \socket -> do-    serveWithSocket socket app--    -- pure ()+run = serve -    -- r <- serveWithSocket socket app-    -- case r of-    --   Nothing -> pure ()-    --   Just err -> pure () -- log - view packed - show err