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é <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.

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.


With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


Reply via email to