@@ -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