# HG changeset patch # User unc0rr # Date 1300732724 -10800 # Node ID 1edc06d2247cc8373ea3140ccc3f45f431357af3 # Parent cb5fa93c7ae02273f44df27e59aeae36840952bf Fix ghost players (used Prelude.catch instead of Control.Exception.catch) diff -r cb5fa93c7ae0 -r 1edc06d2247c gameServer/ClientIO.hs --- a/gameServer/ClientIO.hs Mon Mar 21 21:23:39 2011 +0300 +++ b/gameServer/ClientIO.hs Mon Mar 21 21:38:44 2011 +0300 @@ -44,7 +44,10 @@ clientRecvLoop :: Socket -> Chan CoreMessage -> ClientIndex -> IO () clientRecvLoop s chan ci = - (listenLoop s chan ci >> return "Connection closed") `catch` (return . B.pack . show) >>= clientOff >> remove + (listenLoop s chan ci >> return "Connection closed") + `Exception.catch` (\(e :: ShutdownThreadException) -> return . B.pack . show $ e) + `Exception.catch` (\(e :: Exception.IOException) -> return . B.pack . show $ e) + >>= clientOff >> remove where clientOff msg = writeChan chan $ ClientMessage (ci, ["QUIT", msg]) remove = writeChan chan $ Remove ci diff -r cb5fa93c7ae0 -r 1edc06d2247c gameServer/hedgewars-server.cabal --- a/gameServer/hedgewars-server.cabal Mon Mar 21 21:23:39 2011 +0300 +++ b/gameServer/hedgewars-server.cabal Mon Mar 21 21:38:44 2011 +0300 @@ -25,7 +25,7 @@ network, time, stm, - mtl, + mtl >= 2, dataenc, hslogger, process,