gameServer/ClientIO.hs
changeset 11027 ba585693e19d
parent 10460 8dcea9087d75
child 11046 47a8c19ecb60
equal deleted inserted replaced
11026:b8022f4bea14 11027:ba585693e19d
    53         receiveWithBufferLoop recvBuf = do
    53         receiveWithBufferLoop recvBuf = do
    54             recvBS <- recv sock 4096
    54             recvBS <- recv sock 4096
    55             unless (B.null recvBS) $ do
    55             unless (B.null recvBS) $ do
    56                 let (packets, newrecvBuf) = bs2Packets $ B.append recvBuf recvBS
    56                 let (packets, newrecvBuf) = bs2Packets $ B.append recvBuf recvBS
    57                 forM_ packets sendPacket
    57                 forM_ packets sendPacket
       
    58                 when (B.length newrecvBuf > 128 * 1024) $ sendPacket ["QUIT", "Protocol violation"]
    58                 receiveWithBufferLoop $ B.copy newrecvBuf
    59                 receiveWithBufferLoop $ B.copy newrecvBuf
    59 
    60 
    60         sendPacket packet = writeChan chan $ ClientMessage (ci, packet)
    61         sendPacket packet = writeChan chan $ ClientMessage (ci, packet)
    61 
    62 
    62 clientRecvLoop :: Socket -> Chan CoreMessage -> Chan [B.ByteString] -> ClientIndex -> (forall a. IO a -> IO a) -> IO ()
    63 clientRecvLoop :: Socket -> Chan CoreMessage -> Chan [B.ByteString] -> ClientIndex -> (forall a. IO a -> IO a) -> IO ()