Replace int.from_bytes with struct.unpack for consistency

This commit is contained in:
Lonami Exo 2017-10-12 18:41:58 +02:00
parent bff2e6981e
commit 59c61cab2f

View File

@ -141,28 +141,25 @@ class Connection:
raise ValueError('Invalid connection mode specified: ' + str(self._mode)) raise ValueError('Invalid connection mode specified: ' + str(self._mode))
def _recv_tcp_full(self): def _recv_tcp_full(self):
packet_length_bytes = self.read(4) packet_len_seq = self.read(8) # 4 and 4
packet_length = int.from_bytes(packet_length_bytes, 'little') packet_len, seq = struct.unpack('<ii', packet_len_seq)
seq_bytes = self.read(4) body = self.read(packet_len - 12)
seq = int.from_bytes(seq_bytes, 'little') checksum = struct.unpack('<I', self.read(4))[0]
body = self.read(packet_length - 12) valid_checksum = crc32(packet_len_seq + body)
checksum = int.from_bytes(self.read(4), 'little')
valid_checksum = crc32(packet_length_bytes + seq_bytes + body)
if checksum != valid_checksum: if checksum != valid_checksum:
raise InvalidChecksumError(checksum, valid_checksum) raise InvalidChecksumError(checksum, valid_checksum)
return body return body
def _recv_intermediate(self): def _recv_intermediate(self):
return self.read(int.from_bytes(self.read(4), 'little')) return self.read(struct.unpack('<i', self.read(4))[0])
def _recv_abridged(self): def _recv_abridged(self):
length = int.from_bytes(self.read(1), 'little') length = struct.unpack('<B', self.read(1))[0]
if length >= 127: if length >= 127:
length = int.from_bytes(self.read(3) + b'\0', 'little') length = struct.unpack('<i', self.read(3) + b'\0')[0]
return self.read(length << 2) return self.read(length << 2)