[virt-tools-list] [PATCH virt-viewer 4/4] Exit normally when canceling dialog

Pavel Grunt pgrunt at redhat.com
Tue Mar 17 11:10:48 UTC 2015


Hi, thanks for the review.

> 
> On Tue, Mar 17, 2015 at 10:08 AM, Pavel Grunt <pgrunt at redhat.com>
> wrote:
> > This applies for:
> >  session authentication dialog
> >  libvirt authentication dialog (e.g. virt-viewer --attach guest)
> >  oVirt authentication dialog (e.g. remote-viewer
> >  ovirt://host/guest)
> >  'vm choose' dialog when connecting specifying the vm name
> >
> > Related to https://bugzilla.redhat.com/show_bug.cgi?id=1201604
> > ---
> >  src/remote-viewer.c             | 4 ++++
> >  src/virt-viewer-session-spice.c | 2 ++
> >  src/virt-viewer-session-vnc.c   | 1 +
> >  src/virt-viewer.c               | 7 ++++++-
> >  4 files changed, 13 insertions(+), 1 deletion(-)
> >
> > diff --git a/src/remote-viewer.c b/src/remote-viewer.c
> > index f9f4f92..c6c151b 100644
> > --- a/src/remote-viewer.c
> > +++ b/src/remote-viewer.c
> > @@ -876,6 +876,7 @@ create_ovirt_session(VirtViewerApp *app, const
> > char *uri, GError **err)
> >
> >      api = ovirt_proxy_fetch_api(proxy, &error);
> >      if (authenticate_info.dialog_cancelled) {
> > +        virt_viewer_app_set_user_cancelled(app, TRUE);
> >          g_clear_error(&error);
> >          goto error;
> >      }
> > @@ -897,6 +898,9 @@ create_ovirt_session(VirtViewerApp *app, const
> > char *uri, GError **err)
> >                         vms,
> >                         &error);
> >          if (vm == NULL) {
> > +            if (error == NULL) {
> > +                virt_viewer_app_set_user_cancelled(app, TRUE);
> > +            }
> >              goto error;
> >          }
> >      }
> > diff --git a/src/virt-viewer-session-spice.c
> > b/src/virt-viewer-session-spice.c
> > index 5eb7234..93906ae 100644
> > --- a/src/virt-viewer-session-spice.c
> > +++ b/src/virt-viewer-session-spice.c
> > @@ -562,6 +562,7 @@
> > virt_viewer_session_spice_main_channel_event(SpiceChannel *channel
> > G_GNUC_UNUSED
> >                                                     username_required
> >                                                     ? &user :
> >                                                     NULL,
> >                                                     &password);
> >          if (!ret) {
> > +
> >            virt_viewer_app_set_user_cancelled(virt_viewer_session_get_app(session),
> > TRUE);
> >              g_signal_emit_by_name(session, "session-cancelled");
> >          } else {
> >              gboolean openfd;
> > @@ -593,6 +594,7 @@
> > virt_viewer_session_spice_main_channel_event(SpiceChannel *channel
> > G_GNUC_UNUSED
> >                                                         "proxy",
> >                                                         NULL,
> >                                                         &user,
> >                                                         &password);
> >              if (!ret) {
> > +
> >                virt_viewer_app_set_user_cancelled(virt_viewer_session_get_app(session),
> > TRUE);
> >                  g_signal_emit_by_name(session,
> >                  "session-cancelled");
> >              } else {
> >                  spice_uri_set_user(proxy, user);
> > diff --git a/src/virt-viewer-session-vnc.c
> > b/src/virt-viewer-session-vnc.c
> > index 5a2dd86..68a6719 100644
> > --- a/src/virt-viewer-session-vnc.c
> > +++ b/src/virt-viewer-session-vnc.c
> > @@ -304,6 +304,7 @@
> > virt_viewer_session_vnc_auth_credential(GtkWidget *src
> > G_GNUC_UNUSED,
> >                                                              wantPassword
> >                                                              ?
> >                                                              &password
> >                                                              :
> >                                                              NULL);
> >
> >          if (!ret) {
> > +
> >            virt_viewer_app_set_user_cancelled(virt_viewer_session_get_app(session),
> > TRUE);
> >              vnc_display_close(self->priv->vnc);
> >              goto cleanup;
> >          }
> > diff --git a/src/virt-viewer.c b/src/virt-viewer.c
> > index acad6c6..65ec4e3 100644
> > --- a/src/virt-viewer.c
> > +++ b/src/virt-viewer.c
> > @@ -730,7 +730,10 @@ virt_viewer_initial_connect(VirtViewerApp
> > *app, GError **error)
> >                              &priv->domkey,
> >                              priv->conn,
> >                              &err);
> > -            if (dom == NULL && err != NULL) {
> > +            if (dom == NULL) {
> > +                if (err == NULL) {
> > +                    virt_viewer_app_set_user_cancelled(app, TRUE);
> > +                }
> 
> Here you changed a bit the logic and I'm not sure if it was
> intentional or not.
> I meant, the only way to go to clean up was: dom == NULL *and* err !=
> NULL. After your changes, dom == NULL is enough to go to clean up.
> Is it intentional? Are you missing an else for the "err == NULL" if?
> 
It was intentional but it should be in different patch.

I will use this:
            if (dom == NULL && err != NULL) {
                goto cleanup;
            }
            if (dom == NULL && err == NULL) {
                virt_viewer_app_set_user_cancelled(app, TRUE);
            }

> >                  goto cleanup;
> >              }
> >          }
> > @@ -910,6 +913,8 @@ virt_viewer_connect(VirtViewerApp *app)
> >              virt_viewer_app_simple_message_dialog(app,
> >              error_message);
> >
> >              g_free(error_message);
> > +        } else {
> > +            virt_viewer_app_set_user_cancelled(app, TRUE);
> >          }
> >
> >          return -1;
> > --
> > 2.3.2
> >
> > _______________________________________________
> > virt-tools-list mailing list
> > virt-tools-list at redhat.com
> > https://www.redhat.com/mailman/listinfo/virt-tools-list
> 
> A more general comment ... I'd set
> virt_viewer_app_set_user_cancelled() in all possible situations,
> being
> TRUE or FALSE and not only when it is TRUE.
> Seems a bit more clear, at least for me :-)
> 
sure, it makes sense. I will send v2.

Thank you,

Pavel




More information about the virt-tools-list mailing list