Instead of using accept() with sockets (which uses open_with_socket()), use calls to connect() to utilize existing sockets instead. A benefit of this is more robust error handling already present within the connect() call that isn't present in open_with_socket().
Signed-off-by: John Snow <js...@redhat.com> Message-id: 20230517163406.2593480-4-js...@redhat.com Signed-off-by: John Snow <js...@redhat.com> --- python/qemu/machine/machine.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/python/qemu/machine/machine.py b/python/qemu/machine/machine.py index e57c254484..cc636cb6bd 100644 --- a/python/qemu/machine/machine.py +++ b/python/qemu/machine/machine.py @@ -337,18 +337,17 @@ def _pre_launch(self) -> None: self._remove_files.append(self._console_address) if self._qmp_set: - monitor_address = None sock = None if self._monitor_address is None: self._sock_pair = socket.socketpair() sock = self._sock_pair[1] if isinstance(self._monitor_address, str): self._remove_files.append(self._monitor_address) - monitor_address = self._monitor_address + self._qmp_connection = QEMUMonitorProtocol( - address=monitor_address, + address=self._monitor_address, sock=sock, - server=True, + server=bool(self._monitor_address), nickname=self._name ) @@ -370,7 +369,10 @@ def _post_launch(self) -> None: if self._sock_pair: self._sock_pair[0].close() if self._qmp_connection: - self._qmp.accept(self._qmp_timer) + if self._sock_pair: + self._qmp.connect() + else: + self._qmp.accept(self._qmp_timer) def _close_qemu_log_file(self) -> None: if self._qemu_log_file is not None: -- 2.40.1