daemons 0.2.1 → 0.3.0
raw patch · 6 files changed
+16/−12 lines, 6 filessetup-changed
Files
- NEWS.md +5/−0
- Setup.hs +0/−2
- daemons.cabal +1/−1
- src/Control/Pipe/Serialize.hs +2/−1
- src/Control/Pipe/Socket.hs +1/−1
- src/System/Daemon.hs +7/−7
NEWS.md view
@@ -1,6 +1,11 @@ Changes ======= +0.3.0 (03 Feb 2020)+-------------------++ - update to work with the new network library; thank you, @guibou+ 0.2.1 (03 Oct 2013) -------------------
− Setup.hs
@@ -1,2 +0,0 @@-import Distribution.Simple-main = defaultMain
daemons.cabal view
@@ -1,5 +1,5 @@ Name: daemons-Version: 0.2.1+Version: 0.3.0 Cabal-Version: >= 1.8 License: GPL-3 License-File: LICENSE
src/Control/Pipe/Serialize.hs view
@@ -26,10 +26,11 @@ , Result(..), runGetPartial ) import Pipes ( Pipe, await, yield ) import Control.Monad ( forever )+import Control.Monad.Fail ( MonadFail ) -- | De-serialize data from strict 'ByteString's. Uses @cereal@'s -- incremental 'Data.Serialize.Get' parser.-deserializer :: (Serialize a, Monad m) => Pipe ByteString a m ()+deserializer :: (Serialize a, Monad m, MonadFail m) => Pipe ByteString a m () deserializer = loop Nothing Nothing where loop mk mbin = do
src/Control/Pipe/Socket.hs view
@@ -70,7 +70,7 @@ (socket, _addr) <- NS.accept lsocket _ <- forkIO $ CE.finally (handler (socketReader socket) (socketWriter socket))- (NS.sClose socket)+ (NS.close socket) return () -- | Run 'Handler' on the given socket.
src/System/Daemon.hs view
@@ -34,9 +34,9 @@ import Data.String ( IsString(..) ) import Network.Socket ( Socket, SockAddr(..), Family(..), SocketType(..) , SocketOption(..), setSocketOption- , socket, sClose, connect, bindSocket, listen+ , socket, close, connect, bind, listen , AddrInfo(..), getAddrInfo, addrAddress, defaultHints- , defaultProtocol, iNADDR_ANY, maxListenQueue )+ , defaultProtocol, tupleToHostAddress, maxListenQueue ) import System.Directory ( getHomeDirectory ) import System.FilePath ( (</>), (<.>) ) import System.Posix.Daemon ( runDetached, isRunning )@@ -125,7 +125,7 @@ runInForeground port handler = do CE.bracket (bindPort port)- sClose+ close (\lsocket -> runSocketServer lsocket handler) @@ -159,7 +159,7 @@ runClientWithHandler hostname port handler = do CE.bracket (getSocket hostname port)- sClose+ close (\s -> runSocketClient s handler) -- | Create a socket and bind it to the given port.@@ -167,11 +167,11 @@ bindPort port = do CE.bracketOnError (socket AF_INET Stream defaultProtocol)- sClose+ close (\s -> do -- FIXME See the examples at the end of Network.Socket.ByteString setSocketOption s ReuseAddr 1- bindSocket s (SockAddrInet (fromIntegral port) iNADDR_ANY)+ bind s (SockAddrInet (fromIntegral port) (tupleToHostAddress (0, 0, 0, 0))) listen s maxListenQueue return s) @@ -183,7 +183,7 @@ (Just $ show port) CE.bracketOnError (socket AF_INET Stream defaultProtocol)- sClose+ close (\s -> do connect s (addrAddress $ head addrInfos) return s)