aboutsummaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorJohn Snow <jsnow@redhat.com>2023-05-17 12:34:04 -0400
committerJohn Snow <jsnow@redhat.com>2023-05-31 16:25:35 -0400
commit7f5f3ae7d589d9297b2903e79cba1492807883d4 (patch)
tree5f6187105969e9289d40b76fa9f9a7353145a031 /python
parentb8d4ca18233dbd7c215c67b00fd3eb7887cf2b82 (diff)
downloadqemu-7f5f3ae7d589d9297b2903e79cba1492807883d4.zip
qemu-7f5f3ae7d589d9297b2903e79cba1492807883d4.tar.gz
qemu-7f5f3ae7d589d9297b2903e79cba1492807883d4.tar.bz2
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 <jsnow@redhat.com> Message-id: 20230517163406.2593480-4-jsnow@redhat.com Signed-off-by: John Snow <jsnow@redhat.com>
Diffstat (limited to 'python')
-rw-r--r--python/qemu/machine/machine.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/python/qemu/machine/machine.py b/python/qemu/machine/machine.py
index e57c254..cc636cb 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: