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 <[email protected]> Reviewed-by: Richard Henderson <[email protected]> Reviewed-by: Markus Armbruster <[email protected]> Signed-off-by: Daniel P. Berrangé <[email protected]> --- 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
