equal
deleted
inserted
replaced
35 receiveWithBufferLoop recvBuf = do |
35 receiveWithBufferLoop recvBuf = do |
36 recvBS <- recv sock 4096 |
36 recvBS <- recv sock 4096 |
37 unless (B.null recvBS) $ do |
37 unless (B.null recvBS) $ do |
38 let (packets, newrecvBuf) = bs2Packets $ B.append recvBuf recvBS |
38 let (packets, newrecvBuf) = bs2Packets $ B.append recvBuf recvBS |
39 forM_ packets sendPacket |
39 forM_ packets sendPacket |
40 receiveWithBufferLoop newrecvBuf |
40 receiveWithBufferLoop $ B.copy newrecvBuf |
41 |
41 |
42 sendPacket packet = writeChan chan $ ClientMessage (ci, packet) |
42 sendPacket packet = writeChan chan $ ClientMessage (ci, packet) |
43 |
43 |
44 clientRecvLoop :: Socket -> Chan CoreMessage -> Chan [B.ByteString] -> ClientIndex -> (forall a. IO a -> IO a) -> IO () |
44 clientRecvLoop :: Socket -> Chan CoreMessage -> Chan [B.ByteString] -> ClientIndex -> (forall a. IO a -> IO a) -> IO () |
45 clientRecvLoop s chan clChan ci restore = |
45 clientRecvLoop s chan clChan ci restore = |