Ejemplo n.º 1
0
    def parseData(self, stream: BytesIO, header):
        header = self.parseShareDataHeader(stream, header)

        if header.subtype not in self.dataParsers:
            return SlowPathUnparsedPDU(header, stream.read())

        return self.dataParsers[header.subtype](stream, header)
Ejemplo n.º 2
0
    def doParse(self, data: bytes) -> PDU:
        """
        Decode a data PDU from bytes.
        :return: an instance of an RDP Data PDU class.
        """
        stream = BytesIO(data)
        header = self.parseShareControlHeader(stream)

        if header.pduType not in self.parsers:
            return SlowPathUnparsedPDU(header, stream.read())

        return self.parsers[header.pduType](stream, header)