Skip to content

Commit b58e475

Browse files
committed
Keeping recived message as bytes
1 parent 1f82404 commit b58e475

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

pynuodb/session.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -214,10 +214,7 @@ def recv(self, doStrip=True):
214214

215215
try:
216216
lengthHeader = self.__readFully(4)
217-
if self.__version == '3':
218-
lengthHeader = bytes(lengthHeader, 'latin-1')
219217
msgLength = int(struct.unpack("!I", lengthHeader)[0])
220-
221218
msg = self.__readFully(msgLength)
222219

223220

@@ -230,23 +227,25 @@ def recv(self, doStrip=True):
230227
msg = self.__cipherIn.transform(msg).lstrip()
231228
else:
232229
msg = self.__cipherIn.transform(msg)
230+
231+
if type(msg) is bytes and self.__version == '3':
232+
msg = msg.decode("latin-1")
233233
return msg
234234

235235

236236
def __readFully(self, msgLength):
237-
msg = ""
237+
msg = b''
238238
while msgLength > 0:
239239
received = self.__sock.recv(msgLength)
240240
if not received:
241241
raise SessionException("Session was closed while receiving msgLength=[%d] len(msg)=[%d] "
242242
"len(received)=[%d]" % (msgLength, len(msg), len(received)))
243243
if self.__version == '3':
244-
msg = received.decode('latin-1')
245-
msgLength = msgLength - len(msg)
244+
msg = b''.join([msg, received])
245+
msgLength = msgLength - len(received.decode('latin-1'))
246246
else:
247247
msg = msg + received
248248
msgLength = msgLength - len(received)
249-
250249
return msg
251250

252251
def close(self, force=False):

0 commit comments

Comments
 (0)