Daniel P. Berrangé <[email protected]> writes:
> On Thu, Sep 11, 2025 at 05:54:48PM +0000, Richard Henderson wrote:
>> 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é <[email protected]>
>> > ---
>> > 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 "
Maybe use the opportunity to put a comma after passwords?
>> > + "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.
>
> We still need to be able to print to stderr when there is neither HMP
> nor QMP, which error_printf gets us, but monitor_printf would not.
monitor_printf() is fine when it's obvious that we're in HMP context.
It isn't here.
Reviewed-by: Markus Armbruster <[email protected]>