From 7f5f3ae7d589d9297b2903e79cba1492807883d4 Mon Sep 17 00:00:00 2001 From: John Snow Date: Wed, 17 May 2023 12:34:04 -0400 Subject: [PATCH] python/machine: use connect-based interface for existing sockets 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 Message-id: 20230517163406.2593480-4-jsnow@redhat.com Signed-off-by: John Snow --- 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 @@ class QEMUMachine: 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 @@ class QEMUMachine: 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: