metro-socket 0.1.0.0 → 0.1.0.1
raw patch · 2 files changed
+9/−8 lines, 2 filesdep +hashmap-io
Dependencies added: hashmap-io
Files
- metro-socket.cabal +3/−2
- src/Metro/UDPServer.hs +6/−6
metro-socket.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: dcb41445e65758018ed9b7846b1058ae7edd3e0b6a89cd5d4dca8da443e87798+-- hash: df19f17745c5f5ef862a74ec37e9e31ba9e8fea691fafb2ee5d7eb26d0179ad4 name: metro-socket-version: 0.1.0.0+version: 0.1.0.1 synopsis: Socket transport for metro description: Please see the README on GitHub at <https://github.com/Lupino/metro/tree/master/metro-socket#readme> category: Web@@ -45,6 +45,7 @@ , bytestring , directory , hashable+ , hashmap-io , hslogger , metro , mtl
src/Metro/UDPServer.hs view
@@ -13,12 +13,12 @@ import Control.Monad (void) import Data.ByteString (empty) import Data.Hashable+import Data.IOHashMap (IOHashMap)+import qualified Data.IOHashMap as HM (delete, empty, insert, lookup) import Metro.Class (GetPacketId, RecvPacket, Servable (..), Transport, TransportConfig) import Metro.Conn-import Metro.IOHashMap (IOHashMap, newIOHashMap)-import qualified Metro.IOHashMap as HM (delete, insert, lookup) import Metro.Node (NodeEnv1) import Metro.Server (ServerT, getServ, handleConn, serverEnv)@@ -41,11 +41,11 @@ type STP UDPServer = UDPSocket newServer (UDPConfig hostPort) = do sock <- liftIO $ bindTo hostPort- UDPServer sock <$> newIOHashMap+ UDPServer sock <$> HM.empty servOnce us@(UDPServer serv handleList) done = do (bs, addr) <- liftIO $ recvFrom serv 4194304 - bsHandle <- HM.lookup handleList $ show addr+ bsHandle <- HM.lookup (show addr) handleList case bsHandle of Just h -> feed h bs Nothing ->@@ -56,7 +56,7 @@ closeBSHandle h onConnEnter _ _ = return ()- onConnLeave (UDPServer _ handleList) addr = HM.delete handleList (show addr)+ onConnLeave (UDPServer _ handleList) addr = HM.delete (show addr) handleList servClose (UDPServer serv _) = liftIO $ Socket.close serv udpServer :: String -> ServerConfig UDPServer@@ -69,7 +69,7 @@ -> BSHandle -> m (TransportConfig UDPSocket) newTransportConfig (UDPServer sock handleList) addr h = do- HM.insert handleList (show addr) h+ HM.insert (show addr) h handleList return $ udpSocket_ $ bsTransportConfig h $ flip (sendAllTo sock) addr newClient