diff -r 8c7da08df048 -r 170afc3ac39f gameServer/Actions.hs --- a/gameServer/Actions.hs Sun Jan 27 21:46:25 2013 +0400 +++ b/gameServer/Actions.hs Mon Jan 28 00:50:00 2013 +0400 @@ -85,7 +85,7 @@ rnf (AnswerClients chans msg) = chans `deepseq` msg `deepseq` () rnf a = a `seq` () ---instance NFData B.ByteString +instance NFData B.ByteString instance NFData (Chan a) @@ -648,12 +648,19 @@ processAction Stats = do cls <- allClientsS - let stats = versions cls - processAction $ Warning stats - where - versions = B.concat . ((:) "") . (flip (++) ["
"]) - . concatMap (\(p, n :: Int) -> ["", protoNumber2ver p, "", showB n, ""]) - . Map.toList . Map.fromListWith (+) . map (\c -> (clientProto c, 1)) + rms <- allRoomsS + let clientsMap = Map.fromListWith (+) . map (\c -> (clientProto c, 1 :: Int)) $ cls + let roomsMap = Map.fromListWith (+) . map (\c -> (roomProto c, 1 :: Int)) . filter ((/=) 0 . roomProto) $ rms + let keys = Map.keysSet clientsMap `Set.union` Map.keysSet roomsMap + let versionsStats = B.concat . ((:) "") . (flip (++) ["
"]) + . concatMap (\p -> [ + "", protoNumber2ver p + , "", showB $ Map.findWithDefault 0 p clientsMap + , "", showB $ Map.findWithDefault 0 p roomsMap + , ""]) + . Set.toList $ keys + processAction $ Warning versionsStats + #if defined(OFFICIAL_SERVER) processAction SaveReplay = do