Skip to content

Commit

Permalink
Support receiving into memoryview
Browse files Browse the repository at this point in the history
Python 3.11's asyncio.sslproto implementation
may use a memoryview for the buffer
python/cpython@13c10bf#diff-0ae38bdc337cc724282d20111dc780b8a9c07385c80476cf304d5b3c9ec306ecR431-R432
  • Loading branch information
ento authored and mindflayer committed Jan 16, 2024
1 parent 1943b68 commit c634dc5
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion mocket/mocket.py
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,14 @@ def read(self, buffersize):
return rv

def recv_into(self, buffer, buffersize=None, flags=None):
return buffer.write(self.read(buffersize))
if hasattr(buffer, "write"):
return buffer.write(self.read(buffersize))
else:
# buffer is a memoryview
data = self.read(buffersize)
if data:
buffer[: len(data)] = data
return len(data)

def recv(self, buffersize, flags=None):
if Mocket.r_fd and Mocket.w_fd:
Expand Down

0 comments on commit c634dc5

Please sign in to comment.