Skip to content

Commit c2b41af

Browse files
committed
ensure _throw_away works if _recv_into returns partial data
1 parent 6e03832 commit c2b41af

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

adafruit_requests.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -317,11 +317,16 @@ def _throw_away(self, nbytes: int) -> None:
317317
nbytes -= self._read_from_buffer(nbytes=nbytes)
318318

319319
buf = self._receive_buffer
320-
for _ in range(nbytes // len(buf)):
321-
self._recv_into(buf)
322-
remaining = nbytes % len(buf)
320+
len_buf = len(buf)
321+
for _ in range(nbytes // len_buf):
322+
read = 0
323+
while read < len_buf:
324+
read += self._recv_into(buf, len_buf-read)
325+
remaining = nbytes % len_buf
323326
if remaining:
324-
self._recv_into(buf, remaining)
327+
read = 0
328+
while read < remaining:
329+
read += self._recv_into(buf, remaining-read)
325330

326331
def close(self) -> None:
327332
"""Drain the remaining ESP socket buffers. We assume we already got what we wanted."""

0 commit comments

Comments
 (0)