diff mbox

[1/1] monitor: correct socket listen port

Message ID da0d33997740feea5e4b23c5ea2e967b8645dcfe.1446070501.git.sam.bobroff@au1.ibm.com
State New
Headers show

Commit Message

Sam Bobroff Oct. 28, 2015, 10:15 p.m. UTC
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.bobroff@au1.ibm.com>
---

 qemu-char.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Markus Armbruster Oct. 29, 2015, 6:26 a.m. UTC | #1
Sam Bobroff <sam.bobroff@au1.ibm.com> writes:

> 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.bobroff@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);

Please see "[PATCH] qapi-schema: mark InetSocketAddress as mandatory
again"
Message-Id: <1445509543-30679-1-git-send-email-berrange@redhat.com>
http://lists.nongnu.org/archive/html/qemu-devel/2015-10/msg05222.html
Sam Bobroff Oct. 29, 2015, 10:07 p.m. UTC | #2
On Thu, Oct 29, 2015 at 07:26:14AM +0100, Markus Armbruster wrote:
> Sam Bobroff <sam.bobroff@au1.ibm.com> writes:
> 
> > 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.bobroff@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);
> 
> Please see "[PATCH] qapi-schema: mark InetSocketAddress as mandatory
> again"
> Message-Id: <1445509543-30679-1-git-send-email-berrange@redhat.com>
> http://lists.nongnu.org/archive/html/qemu-devel/2015-10/msg05222.html

Ah thanks, that's obviously the correct fix too.
(Guess I'm one of the ones who got bitten ;-)

Cheers,
Sam.
diff mbox

Patch

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);