equal
deleted
inserted
replaced
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 |