When the network chardev is configured with 'server' and 'wait' options, QEMU must block startup until the first client connects to the server. This implies that the listener socket must be in blocking mode. Unfortnantely on Win32 the socket is initially in non-blocking mode, so we're not waiting for the first client.
Signed-off-by: Daniel P. Berrange <berra...@redhat.com> --- qemu-char.c | 1 + 1 file changed, 1 insertion(+) diff --git a/qemu-char.c b/qemu-char.c index e0147f3..18890f7 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -4376,6 +4376,7 @@ static CharDriverState *qmp_chardev_open_socket(const char *id, if (is_listen && is_waitconnect) { fprintf(stderr, "QEMU waiting for connection on: %s\n", chr->filename); + qio_channel_set_blocking(QIO_CHANNEL(s->listen_ioc), true, NULL); tcp_chr_accept(QIO_CHANNEL(s->listen_ioc), G_IO_IN, chr); qio_channel_set_blocking(QIO_CHANNEL(s->listen_ioc), false, NULL); } -- 2.5.0