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

John Snow posted 20 patches 5 years, 4 months ago
Maintainers: Max Reitz <mreitz@redhat.com>, Kevin Wolf <kwolf@redhat.com>, Cleber Rosa <crosa@redhat.com>, Eduardo Habkost <ehabkost@redhat.com>
[PATCH 12/20] python/qemu/console_socket.py: Correct type of recv()
Posted by John Snow 5 years, 4 months ago
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(-)

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)
-- 
2.26.2


Re: [PATCH 12/20] python/qemu/console_socket.py: Correct type of recv()
Posted by Kevin Wolf 5 years, 4 months ago
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>


Re: [PATCH 12/20] python/qemu/console_socket.py: Correct type of recv()
Posted by John Snow 5 years, 4 months ago
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!