@@ -52,21 +52,22 @@ class SSLError(object):
5252PARSING_MSG = 1
5353
5454
55- def EncodeVarint (msg ):
56- value = len (msg )
55+ def encode_frame (packed_frame ):
56+ value = len (packed_frame )
57+ header_array = []
58+
5759 bits = value & 0x7f
5860 value >>= 7
59- header_array = []
6061 while value :
61- header_array .append (0x80 | bits )
62+ header_array .append (struct . Struct ( ">B" ). pack (( 0x80 | bits )) )
6263 bits = value & 0x7f
6364 value >>= 7
64- header_array . append ( bits )
65- re = bytes ( header_array )
66- return re
65+
66+ header_array . append ( struct . Struct ( ">B" ). pack ( bits ) )
67+ return b"" . join ( header_array ) + packed_frame
6768
6869
69- def DecodeVarint (buffer ):
70+ def decode_varint (buffer ):
7071 mask = (1 << 32 ) - 1
7172 result_type = int
7273 result = 0
@@ -246,16 +247,8 @@ def transmit(self, frame):
246247
247248 packed_frame = frame .SerializeToString ()
248249 logging .debug ("sending frame: %s" , MessageToJson (frame ))
249- value = len (packed_frame )
250- bits = value & 0x7f
251- value >>= 7
252- while value :
253- self .send (struct .Struct (">B" ).pack ((0x80 | bits )))
254- bits = value & 0x7f
255- value >>= 7
256-
257- self .send (struct .Struct (">B" ).pack (bits ))
258- self .send (packed_frame )
250+ encoded_frame = encode_frame (packed_frame )
251+ self .send (encoded_frame )
259252
260253 def send (self , encoded_frame ):
261254 """
@@ -374,7 +367,7 @@ def __read(self):
374367 if self .__parse_status == PARSING_LEN :
375368 self .__frame_buffer += struct .Struct (">B" ).pack (b )
376369 if not (b & 0x80 ):
377- self .__frame_len = DecodeVarint (self .__frame_buffer )
370+ self .__frame_len = decode_varint (self .__frame_buffer )
378371 self .__parse_status = PARSING_MSG
379372 self .__frame_buffer = b""
380373 continue
0 commit comments