This fixes a long standing problem that libvirt has with starting up QEMU.
We have to busy-wait retrying connect() on the QMP monitor socket until QEMU
finally creates & listens on it, but at same time must be careful to not wait
forever if QEMU exits.
This this patch series, libvirt can simply pass in a pre-opened UNIX domain
socket file descriptor, which it can immediately connect to with no busy-wait.
Changed in v2:
- Drop 'fdset' property / address kind, and use 'fd' for both CLI and HMP
- Add unit tests
Daniel P. Berrange (2):
io: move fd_is_socket() into common sockets code
char: allow passing pre-opened socket file descriptor at startup
chardev/char-socket.c | 32 +++++++--
chardev/char.c | 3 +
include/qemu/sockets.h | 1 +
io/channel-util.c | 13 ----
tests/test-char.c | 173 ++++++++++++++++++++++++++++++++++++++++++++++++-
util/qemu-sockets.c | 55 +++++++++++++++-
6 files changed, 252 insertions(+), 25 deletions(-)
--
2.14.3