'The other side is sending us data.  Payload::
uint32 local channel number
string data
Check to make sure the other side hasn\'t sent too much data (more
than what\'s in the window, or more than the maximum packet size).  If
they have, close the channel.  Otherwise, decrease the available
window and pass the data to the channel\'s dataReceived().'

def ssh_CHANNEL_DATA(self, packet):

    (localChannel, dataLength) = struct.unpack('>2L', packet[:8])
    channel = self.channels[localChannel]
    if ((dataLength > channel.localWindowLeft) or (dataLength > channel.localMaxPacket)):
        log.callWithLogger(channel, log.msg, 'too    much    data')
        self.sendClose(channel)
        return
    data = common.getNS(packet[4:])[0]
    channel.localWindowLeft -= dataLength
    if (channel.localWindowLeft < (channel.localWindowSize // 2)):
        self.adjustWindow(channel, (channel.localWindowSize - channel.localWindowLeft))
    log.callWithLogger(channel, channel.dataReceived, data)
