# HG changeset patch # User unc0rr # Date 1224613900 0 # Node ID 962001cfcf48cb917d1d7d635896cd16e583d271 # Parent 6d04732abed2c94eed2183b4a509921b3f8a31ec If exception is on client quit, then just remove that client diff -r 6d04732abed2 -r 962001cfcf48 netserver/hedgewars-server.hs --- a/netserver/hedgewars-server.hs Tue Oct 21 18:29:21 2008 +0000 +++ b/netserver/hedgewars-server.hs Tue Oct 21 18:31:40 2008 +0000 @@ -47,12 +47,12 @@ unless (null recipients) $ putStrLn ("< " ++ (show answer)) clHandles' <- forM recipients $ - \ch -> Control.Exception.handle (\e -> putStrLn ("handle exception: " ++ show e) >> return []) $ -- cannot just remove + \ch -> Control.Exception.handle (\e -> putStrLn ("handle exception: " ++ show e) >> if head answer == "BYE" then return [ch] else return []) $ -- cannot just remove do forM_ answer (\str -> hPutStrLn ch str) hPutStrLn ch "" hFlush ch - if (not $ null answer) && (head answer == "BYE") then hClose ch >> return [ch] else return [] + if head answer == "BYE" then hClose ch >> return [ch] else return [] let mclients = remove clients $ concat clHandles'