Currently when constructing an inet socket monitor (e.g. via "-monitor telent:localhost:12345,server,nowait") the port is ignored and a random one is used instead. It appears this behaviour was accidentally introduced by commit dafd325d "qemu-char: Convert socket backend to QAPI".
The cause is that the has_port field is not set in the address, so later it is not copied by qapi_copy_SocketAddress(). This patch simply adds the missing "has_port = true". Signed-off-by: Sam Bobroff <sam.bobr...@au1.ibm.com> --- qemu-char.c | 1 + 1 file changed, 1 insertion(+) diff --git a/qemu-char.c b/qemu-char.c index c4eb4ee..4fb9279 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -3605,6 +3605,7 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, addr->kind = SOCKET_ADDRESS_KIND_INET; addr->inet = g_new0(InetSocketAddress, 1); addr->inet->host = g_strdup(host); + addr->inet->has_port = true; addr->inet->port = g_strdup(port); addr->inet->has_to = qemu_opt_get(opts, "to"); addr->inet->to = qemu_opt_get_number(opts, "to", 0); -- 2.1.4