From a78e71c93807f9c8f9a061045c5149792ea5324a Mon Sep 17 00:00:00 2001 From: Lynesth Date: Sat, 25 May 2019 20:01:54 +1100 Subject: [PATCH] Wait for the full PDU before parsing --- smpplib/client.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/smpplib/client.py b/smpplib/client.py index 7405adb..4ca7910 100644 --- a/smpplib/client.py +++ b/smpplib/client.py @@ -217,8 +217,9 @@ def read_pdu(self): logger.warning('Receive broken pdu... %s', repr(raw_len)) raise exceptions.PDUError('Broken PDU') - raw_pdu = self._socket.recv(length - 4) - raw_pdu = raw_len + raw_pdu + raw_pdu = raw_len + while len(raw_pdu) < length: + raw_pdu += self._socket.recv(length - len(raw_pdu)) logger.debug('<<%s (%d bytes)', binascii.b2a_hex(raw_pdu), len(raw_pdu))