diff mbox series

[12/20] python/qemu/console_socket.py: Correct type of recv()

Message ID 20201006235817.3280413-13-jsnow@redhat.com
State New
Headers show
Series python/qemu: strictly typed mypy conversion, pt2 | expand

Commit Message

John Snow Oct. 6, 2020, 11:58 p.m. UTC
The type and parameter names of recv() should match socket.socket().

OK, easy enough, but in the cases we don't pass straight through to the
real socket implementation, we probably can't accept such flags. OK, for
now, assert that we don't receive flags in such cases.

Signed-off-by: John Snow <jsnow@redhat.com>
---
 python/qemu/console_socket.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Kevin Wolf Oct. 7, 2020, 10:59 a.m. UTC | #1
Am 07.10.2020 um 01:58 hat John Snow geschrieben:
> The type and parameter names of recv() should match socket.socket().


Should this be socket.socket without parentheses (the class name)?
socket.socket() is the constructor and it takes very different
parameters.

> OK, easy enough, but in the cases we don't pass straight through to the

> real socket implementation, we probably can't accept such flags. OK, for

> now, assert that we don't receive flags in such cases.

> 

> Signed-off-by: John Snow <jsnow@redhat.com>


Reviewed-by: Kevin Wolf <kwolf@redhat.com>
John Snow Oct. 7, 2020, 6:49 p.m. UTC | #2
On 10/7/20 6:59 AM, Kevin Wolf wrote:
> Am 07.10.2020 um 01:58 hat John Snow geschrieben:

>> The type and parameter names of recv() should match socket.socket().

> 

> Should this be socket.socket without parentheses (the class name)?

> socket.socket() is the constructor and it takes very different

> parameters.

> 


You're right.

>> OK, easy enough, but in the cases we don't pass straight through to the

>> real socket implementation, we probably can't accept such flags. OK, for

>> now, assert that we don't receive flags in such cases.

>>

>> Signed-off-by: John Snow <jsnow@redhat.com>

> 

> Reviewed-by: Kevin Wolf <kwolf@redhat.com>

> 


Thanks!
diff mbox series

Patch

diff --git a/python/qemu/console_socket.py b/python/qemu/console_socket.py
index 69f604c77fe..cb3400a0385 100644
--- a/python/qemu/console_socket.py
+++ b/python/qemu/console_socket.py
@@ -92,13 +92,14 @@  def _drain_socket(self):
         for c in string:
             self._buffer.extend(c)
 
-    def recv(self, bufsize=1):
+    def recv(self, bufsize: int = 1, flags: int = 0) -> bytes:
         """Return chars from in memory buffer.
            Maintains the same API as socket.socket.recv.
         """
         if self._drain_thread is None:
             # Not buffering the socket, pass thru to socket.
-            return socket.socket.recv(self, bufsize)
+            return socket.socket.recv(self, bufsize, flags)
+        assert not flags, "Cannot pass flags to recv() in drained mode"
         start_time = time.time()
         while len(self._buffer) < bufsize:
             time.sleep(self._sleep_time)