On 9/10/25 18:03, Daniel P. Berrangé wrote:
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.
Signed-off-by: Daniel P. Berrangé <berra...@redhat.com>
---
ui/vnc.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/ui/vnc.c b/ui/vnc.c
index 68ca4a68e7..439d586358 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 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);
}
With monitor_cur_hmp, you can use monitor_printf directly.
r~