network-transport-zeromq 0.2.1 → 0.2.1.1
raw patch · 3 files changed
+11/−10 lines, 3 filesdep ~base
Dependency ranges changed: base
Files
- network-transport-zeromq.cabal +2/−2
- src/Network/Transport/ZMQ.hs +7/−7
- src/Network/Transport/ZMQ/Internal/Types.hs +2/−1
network-transport-zeromq.cabal view
@@ -1,5 +1,5 @@ name: network-transport-zeromq-version: 0.2.1+version: 0.2.1.1 synopsis: ZeroMQ backend for network-transport description: Implementation of the@@ -40,7 +40,7 @@ default: False library- build-depends: base >=4.6 && < 4.8,+ build-depends: base >=4.6 && < 5, binary >= 0.6, network-transport >= 0.4, zeromq4-haskell >= 0.6,
src/Network/Transport/ZMQ.hs view
@@ -120,7 +120,7 @@ import System.ZMQ4 ( Context ) import qualified System.ZMQ4 as ZMQ-import Data.Accessor ((^.), (^=), (^:) ) +import Data.Accessor ((^.), (^=), (^:) ) import Text.Printf @@ -426,7 +426,7 @@ receiver :: ZMQ.Socket ZMQ.Pull -> LocalEndPoint -> TMChan Event- -> IO ()+ -> IO () receiver pull ourEp chan = forever $ mask_ $ do (cmd:msgs) <- ZMQ.receiveMulti pull case decode' cmd of@@ -505,10 +505,10 @@ ZMQConnectionValid (ValidZMQConnection _ _) -> do atomically $ writeTMChan chan (ConnectionClosed idx) connectionCleanup (connectionRemoteEndPoint conn) idx)- LocalEndPointClosed -> return (LocalEndPointClosed, return ())+ LocalEndPointClosed -> return (LocalEndPointClosed, return ()) MessageInitConnectionOk theirAddress ourId theirId -> do join $ withMVar (localEndPointState ourEp) $ \case- LocalEndPointValid v -> + LocalEndPointValid v -> case v ^. localEndPointRemoteAt theirAddress of Nothing -> return (return ()) -- XXX: send message to the host Just rep -> modifyMVar (remoteEndPointState rep) $ \case@@ -649,7 +649,7 @@ -> ConnectHints -> IO (Either (TransportError ConnectErrorCode) Connection) apiConnect params ctx ourEp theirAddr reliability _hints = fmap (either Left id) $ try $- mapZMQException (TransportError ConnectFailed . show) $ do + mapZMQException (TransportError ConnectFailed . show) $ do eRep <- createOrGetRemoteEndPoint params ctx ourEp theirAddr case eRep of Left{} -> return $ Left $ TransportError ConnectFailed "LocalEndPoint is closed."@@ -736,7 +736,7 @@ state <- newMVar . RemoteEndPointPending =<< newIORef [] opened <- newIORef False let rep = RemoteEndPoint theirAddr state opened- return ( LocalEndPointValid + return ( LocalEndPointValid . (localEndPointRemotes ^: (Map.insert theirAddr rep)) $ v , initialize push rep >> return (Right rep))@@ -959,7 +959,7 @@ -- -- > host:Port:ControlPort ----- where Port is 'hintsPort' and ControlPort is 'hintsControlPort'. If the hint port +-- where Port is 'hintsPort' and ControlPort is 'hintsControlPort'. If the hint port -- is not specified then random ports will be used. apiNewMulticastGroup :: Hints -- ^ Multicast group hints. -> TransportInternals -- ^ Internal transport state.
src/Network/Transport/ZMQ/Internal/Types.hs view
@@ -80,6 +80,7 @@ import qualified System.ZMQ4 as ZMQ import Data.Accessor (Accessor, accessor) import qualified Data.Accessor.Container as DAC (mapMaybe)+import Prelude -- | Parameters for ZeroMQ connection.@@ -296,7 +297,7 @@ localEndPointRemotes = accessor _localEndPointRemotes (\e t -> t{_localEndPointRemotes = e}) localEndPointRemoteAt :: EndPointAddress -> Accessor ValidLocalEndPoint (Maybe RemoteEndPoint)-localEndPointRemoteAt addr = localEndPointRemotes >>> DAC.mapMaybe addr +localEndPointRemoteAt addr = localEndPointRemotes >>> DAC.mapMaybe addr localEndPointMulticastGroups :: Accessor ValidLocalEndPoint (Map MulticastAddress ZMQMulticastGroup) localEndPointMulticastGroups = accessor _localEndPointMulticastGroups (\e t -> t{_localEndPointMulticastGroups = e})