netserver/hedgewars-server.hs
changeset 1482 8af42b3f93d2
parent 1481 f741afa7dbf3
child 1483 89e24edb6020
equal deleted inserted replaced
1481:f741afa7dbf3 1482:8af42b3f93d2
   111 		(ClientMessage `fmap` tselect clients) `orElse`
   111 		(ClientMessage `fmap` tselect clients) `orElse`
   112 		(CoreMessage `fmap` readTChan messagesChan)
   112 		(CoreMessage `fmap` readTChan messagesChan)
   113 	case r of
   113 	case r of
   114 		Accept ci -> do
   114 		Accept ci -> do
   115 			let sameHostClients = filter (\cl -> host ci == host cl) clients
   115 			let sameHostClients = filter (\cl -> host ci == host cl) clients
   116 			let haveJustConnected = not $ null $ filter (\cl -> diffUTCTime (connectTime ci) (connectTime cl) <= 5) sameHostClients
   116 			let haveJustConnected = not $ null $ filter (\cl -> connectTime ci `diffUTCTime` connectTime cl <= 5) sameHostClients
   117 			
   117 			
   118 			when haveJustConnected $ do
   118 			when haveJustConnected $ do
   119 				atomically $ writeTChan (chan ci) ["QUIT", "Reconnected too fast"]
   119 				atomically $ writeTChan (chan ci) ["QUIT", "Reconnected too fast"]
   120 				mainLoop acceptChan messagesChan (clients ++ [ci]) rooms
   120 				mainLoop acceptChan messagesChan (clients ++ [ci]) rooms
   121 				
   121