The error_printf_unless_qmp() will print to the monitor if the current
one is HMP, if it is QMP nothing will be printed, otherwise stderr
will be used.
This scenario is easily handled by checking !monitor_cur_is_qmp() and
then calling the error_printf() function.
Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
ui/vnc.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/ui/vnc.c b/ui/vnc.c
index 77c823bf2e..3cc5b4cfec 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -3530,8 +3530,10 @@ int vnc_display_password(const char *id, const char *password)
return -EINVAL;
}
if (vd->auth == VNC_AUTH_NONE) {
- error_printf_unless_qmp("If you want use passwords please enable "
- "password auth using '-vnc ${dpy},password'.\n");
+ if (!monitor_cur_is_qmp()) {
+ error_printf("If you want to use passwords, please enable "
+ "password auth using '-vnc ${dpy},password'.\n");
+ }
return -EINVAL;
}
@@ -3570,9 +3572,11 @@ static void vnc_display_print_local_addr(VncDisplay *vd)
qapi_free_SocketAddress(addr);
return;
}
- error_printf_unless_qmp("VNC server running on %s:%s\n",
- addr->u.inet.host,
- addr->u.inet.port);
+ if (!monitor_cur_is_qmp()) {
+ error_printf("VNC server running on %s:%s\n",
+ addr->u.inet.host,
+ addr->u.inet.port);
+ }
qapi_free_SocketAddress(addr);
}
--
2.50.1