Message ID | 20201006235817.3280413-13-jsnow@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | python/qemu: strictly typed mypy conversion, pt2 | expand |
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>
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 --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)
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(-)