netserver/hedgewars-server.hs
changeset 1463 659157f76171
parent 1461 87e5a6c3882c
child 1464 693db7cd6f25
equal deleted inserted replaced
1462:d3323637da1f 1463:659157f76171
    59 sendAnswers ((handlesFunc, answer):answers) client clients rooms = do
    59 sendAnswers ((handlesFunc, answer):answers) client clients rooms = do
    60 	let recipients = handlesFunc client clients rooms
    60 	let recipients = handlesFunc client clients rooms
    61 	unless (null recipients) $ putStrLn ("< " ++ (show answer))
    61 	unless (null recipients) $ putStrLn ("< " ++ (show answer))
    62 
    62 
    63 	clHandles' <- forM recipients $
    63 	clHandles' <- forM recipients $
    64 		\ch -> Control.Exception.handle (\e -> putStrLn ("handle exception: " ++ show e) >> if head answer == "BYE" then return [ch] else return []) $ -- cannot just remove
    64 		\ch -> Control.Exception.handle (\e -> putStrLn ("handle exception: " ++ show e) >> hClose ch >> if head answer == "BYE" then return [ch] else return []) $ -- cannot just remove
    65 			do
    65 			do
    66 			forM_ answer (\str -> hPutStrLn ch str)
    66 			forM_ answer (\str -> hPutStrLn ch str)
    67 			hPutStrLn ch ""
    67 			hPutStrLn ch ""
    68 			hFlush ch
    68 			hFlush ch
    69 			if head answer == "BYE" then hClose ch >> return [ch] else return []
    69 			if head answer == "BYE" then hClose ch >> return [ch] else return []