[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 3/5] python/machine: use connect-based interface for existing sock
From: |
John Snow |
Subject: |
[PULL 3/5] python/machine: use connect-based interface for existing sockets |
Date: |
Wed, 31 May 2023 16:43:36 -0400 |
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>
---
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
- [PULL 0/5] Python patches, John Snow, 2023/05/31
- [PULL 2/5] python/qmp/legacy: allow using sockets for connect(), John Snow, 2023/05/31
- [PULL 1/5] python/qmp: allow sockets to be passed to connect(), John Snow, 2023/05/31
- [PULL 3/5] python/machine: use connect-based interface for existing sockets,
John Snow <=
- [PULL 5/5] Revert "python/qmp/protocol: add open_with_socket()", John Snow, 2023/05/31
- [PULL 4/5] python/qmp/legacy: remove open_with_socket() calls, John Snow, 2023/05/31
- Re: [PULL 0/5] Python patches, Richard Henderson, 2023/05/31