Skip to content

Commit ebe604c

Browse files
author
Paul Sokolovsky
committed
webrepl_cli.py: Add and use recvexactly() function.
1 parent 337e366 commit ebe604c

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

webrepl_cli.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,24 @@ def write(self, data):
3535
self.s.send(hdr)
3636
self.s.send(data)
3737

38+
def recvexactly(self, sz):
39+
res = b""
40+
while sz:
41+
data = self.s.recv(sz)
42+
if not data:
43+
break
44+
res += data
45+
sz -= len(data)
46+
return res
47+
3848
def read(self, sz):
3949
if not self.buf:
4050
while True:
41-
hdr = self.s.recv(2)
51+
hdr = self.recvexactly(2)
4252
assert len(hdr) == 2
4353
fl, sz = struct.unpack(">BB", hdr)
4454
if sz == 126:
45-
hdr = self.s.recv(2)
55+
hdr = self.recvexactly(2)
4656
assert len(hdr) == 2
4757
(sz,) = struct.unpack(">H", hdr)
4858
if fl == 0x82:
@@ -52,7 +62,7 @@ def read(self, sz):
5262
skip = self.s.recv(sz)
5363
print("Skip data:", skip)
5464
sz -= len(skip)
55-
data = self.s.recv(sz)
65+
data = self.recvexactly(sz)
5666
assert len(data) == sz
5767
self.buf = data
5868

0 commit comments

Comments
 (0)