From 7000fce72fbec34c6f4957a59d4146cc7148ee59 Mon Sep 17 00:00:00 2001 From: Declan Hoare Date: Thu, 16 Apr 2020 22:58:21 +1000 Subject: Initial Release --- payload.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 payload.py (limited to 'payload.py') diff --git a/payload.py b/payload.py new file mode 100644 index 0000000..36f33ba --- /dev/null +++ b/payload.py @@ -0,0 +1,30 @@ + +import struct + +from twisted.internet.protocol import Protocol + +s32 = struct.Struct("= 4: + self.__length = s32.unpack(self.__buffer[:4])[0] + self.__buffer = self.__buffer[4:] + if self.__length < 0: + raise ValueError(f"Invalid (negative) payload length {self.__length}") + if self.__length is not None and len(self.__buffer) >= self.__length: + payload = self.__buffer[:self.__length] + self.__buffer = self.__buffer[self.__length:] + self.__length = None + self.payloadReceived(payload) + continue + break + def sendPayload(self, data): + self.transport.write(s32.pack(len(data)) + data) + -- cgit v1.2.3