equal
deleted
inserted
replaced
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 () |