Message ID | 1465214470-12515-1-git-send-email-pbonzini@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Jun 06, 2016 at 02:01:10PM +0200, Paolo Bonzini wrote: > The message is useful whenever the user specifies "-vnc to=XX". > Move it to ui/vnc.c. > > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > include/ui/console.h | 7 ------- > ui/vnc.c | 16 ++++++++-------- > vl.c | 7 ------- > 3 files changed, 8 insertions(+), 22 deletions(-) > > diff --git a/include/ui/console.h b/include/ui/console.h > index 52a5f65..7c1fdba 100644 > --- a/include/ui/console.h > +++ b/include/ui/console.h > @@ -460,7 +460,6 @@ void vnc_display_add_client(const char *id, int csock, bool skipauth); > #ifdef CONFIG_VNC > int vnc_display_password(const char *id, const char *password); > int vnc_display_pw_expire(const char *id, time_t expires); > -char *vnc_display_local_addr(const char *id); > QemuOpts *vnc_parse(const char *str, Error **errp); > int vnc_init_func(void *opaque, QemuOpts *opts, Error **errp); > #else > @@ -482,12 +481,6 @@ static inline int vnc_init_func(void *opaque, QemuOpts *opts, Error **errp) > error_setg(errp, "VNC support is disabled"); > return -1; > } > -static inline char *vnc_display_local_addr(const char *id) > -{ > - /* This must never be called if CONFIG_VNC is disabled */ > - error_report("VNC support is disabled"); > - abort(); > -} > #endif > > /* curses.c */ > diff --git a/ui/vnc.c b/ui/vnc.c > index c862fdc..a2bf535 100644 > --- a/ui/vnc.c > +++ b/ui/vnc.c > @@ -3207,15 +3207,11 @@ int vnc_display_pw_expire(const char *id, time_t expires) > return 0; > } > > -char *vnc_display_local_addr(const char *id) > +static void vnc_display_print_local_addr(VncDisplay *vs) > { > - VncDisplay *vs = vnc_display_find(id); > SocketAddress *addr; > - char *ret; > Error *err = NULL; > > - assert(vs); > - > addr = qio_channel_socket_get_local_address(vs->lsock, &err); > if (!addr) { > return NULL; > @@ -3225,11 +3221,9 @@ char *vnc_display_local_addr(const char *id) > qapi_free_SocketAddress(addr); > return NULL; > } > - ret = g_strdup_printf("%s;%s", addr->u.inet.data->host, > + printf("VNC server running on '%s:%s;\n", addr->u.inet.data->host, > addr->u.inet.data->port); > qapi_free_SocketAddress(addr); > - > - return ret; > } > > static QemuOptsList qemu_vnc_opts = { > @@ -3515,6 +3509,7 @@ void vnc_display_open(const char *id, Error **errp) > const char *vnc; > char *h; > const char *credid; > + int show_vnc_port = 0; > bool sasl = false; > #ifdef CONFIG_VNC_SASL > int saslErr; > @@ -3594,6 +3589,7 @@ void vnc_display_open(const char *id, Error **errp) > if (to) { > inet->has_to = true; > inet->to = to + 5900; > + show_vnc_port = 1; > } > inet->ipv4 = ipv4; > inet->has_ipv4 = has_ipv4; > @@ -3838,6 +3834,10 @@ void vnc_display_open(const char *id, Error **errp) > } > } > > + if (show_vnc_port) { > + vnc_display_print_local_addr(vs); > + } > + > qapi_free_SocketAddress(saddr); > qapi_free_SocketAddress(wsaddr); > return; By calling this from vnc_display_open, you'll cause it to print to stdout, even when using QMP, because qmp_change_vnc_listen calls vnc_display_open. Regards, Daniel
On 06/06/2016 14:06, Daniel P. Berrange wrote: >> > @@ -3838,6 +3834,10 @@ void vnc_display_open(const char *id, Error **errp) >> > } >> > } >> > >> > + if (show_vnc_port) { >> > + vnc_display_print_local_addr(vs); >> > + } >> > + >> > qapi_free_SocketAddress(saddr); >> > qapi_free_SocketAddress(wsaddr); >> > return; > By calling this from vnc_display_open, you'll cause it to > print to stdout, even when using QMP, because qmp_change_vnc_listen > calls vnc_display_open. Hmm, yes. Markus, what's the best thing to do? Some kind of monitor_printf? Thanks, Paolo
Paolo Bonzini <pbonzini@redhat.com> writes: > On 06/06/2016 14:06, Daniel P. Berrange wrote: >>> > @@ -3838,6 +3834,10 @@ void vnc_display_open(const char *id, Error **errp) >>> > } >>> > } >>> > >>> > + if (show_vnc_port) { >>> > + vnc_display_print_local_addr(vs); >>> > + } >>> > + >>> > qapi_free_SocketAddress(saddr); >>> > qapi_free_SocketAddress(wsaddr); >>> > return; >> By calling this from vnc_display_open, you'll cause it to >> print to stdout, even when using QMP, because qmp_change_vnc_listen >> calls vnc_display_open. > > Hmm, yes. Markus, what's the best thing to do? Some kind of > monitor_printf? Would error_printf_unless_qmp() do? We already use it in vnc_display_password().
diff --git a/include/ui/console.h b/include/ui/console.h index 52a5f65..7c1fdba 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -460,7 +460,6 @@ void vnc_display_add_client(const char *id, int csock, bool skipauth); #ifdef CONFIG_VNC int vnc_display_password(const char *id, const char *password); int vnc_display_pw_expire(const char *id, time_t expires); -char *vnc_display_local_addr(const char *id); QemuOpts *vnc_parse(const char *str, Error **errp); int vnc_init_func(void *opaque, QemuOpts *opts, Error **errp); #else @@ -482,12 +481,6 @@ static inline int vnc_init_func(void *opaque, QemuOpts *opts, Error **errp) error_setg(errp, "VNC support is disabled"); return -1; } -static inline char *vnc_display_local_addr(const char *id) -{ - /* This must never be called if CONFIG_VNC is disabled */ - error_report("VNC support is disabled"); - abort(); -} #endif /* curses.c */ diff --git a/ui/vnc.c b/ui/vnc.c index c862fdc..a2bf535 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -3207,15 +3207,11 @@ int vnc_display_pw_expire(const char *id, time_t expires) return 0; } -char *vnc_display_local_addr(const char *id) +static void vnc_display_print_local_addr(VncDisplay *vs) { - VncDisplay *vs = vnc_display_find(id); SocketAddress *addr; - char *ret; Error *err = NULL; - assert(vs); - addr = qio_channel_socket_get_local_address(vs->lsock, &err); if (!addr) { return NULL; @@ -3225,11 +3221,9 @@ char *vnc_display_local_addr(const char *id) qapi_free_SocketAddress(addr); return NULL; } - ret = g_strdup_printf("%s;%s", addr->u.inet.data->host, + printf("VNC server running on '%s:%s;\n", addr->u.inet.data->host, addr->u.inet.data->port); qapi_free_SocketAddress(addr); - - return ret; } static QemuOptsList qemu_vnc_opts = { @@ -3515,6 +3509,7 @@ void vnc_display_open(const char *id, Error **errp) const char *vnc; char *h; const char *credid; + int show_vnc_port = 0; bool sasl = false; #ifdef CONFIG_VNC_SASL int saslErr; @@ -3594,6 +3589,7 @@ void vnc_display_open(const char *id, Error **errp) if (to) { inet->has_to = true; inet->to = to + 5900; + show_vnc_port = 1; } inet->ipv4 = ipv4; inet->has_ipv4 = has_ipv4; @@ -3838,6 +3834,10 @@ void vnc_display_open(const char *id, Error **errp) } } + if (show_vnc_port) { + vnc_display_print_local_addr(vs); + } + qapi_free_SocketAddress(saddr); qapi_free_SocketAddress(wsaddr); return; diff --git a/vl.c b/vl.c index 17e6b5e..d47d558 100644 --- a/vl.c +++ b/vl.c @@ -2960,7 +2960,6 @@ int main(int argc, char **argv, char **envp) const char *qtest_log = NULL; const char *pid_file = NULL; const char *incoming = NULL; - int show_vnc_port = 0; bool defconfig = true; bool userconfig = true; bool nographic = false; @@ -4219,7 +4218,6 @@ int main(int argc, char **argv, char **envp) display_type = DT_COCOA; #elif defined(CONFIG_VNC) vnc_parse("localhost:0,to=99,id=default", &error_abort); - show_vnc_port = 1; #else display_type = DT_NONE; #endif @@ -4566,11 +4564,6 @@ int main(int argc, char **argv, char **envp) /* init remote displays */ qemu_opts_foreach(qemu_find_opts("vnc"), vnc_init_func, NULL, NULL); - if (show_vnc_port) { - char *ret = vnc_display_local_addr("default"); - printf("VNC server running on '%s'\n", ret); - g_free(ret); - } if (using_spice) { qemu_spice_display_init();
The message is useful whenever the user specifies "-vnc to=XX". Move it to ui/vnc.c. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- include/ui/console.h | 7 ------- ui/vnc.c | 16 ++++++++-------- vl.c | 7 ------- 3 files changed, 8 insertions(+), 22 deletions(-)