Hey, Series looks good, a few minor comment, but ACK overall. Christophe On Thu, Mar 26, 2015 at 11:26:54PM +0100, Fabiano Fidêncio wrote: > This is part of a small re-factoring that will have all connection > errors, when we won't be able to connect regardless of what changes on > the remote host, being treated by virt_viewer_app_initial_connect(), > avoiding weird behaviors as we have nowadays (like more than one error > dialog being shown or having the virt-viewer waiting forever for a guest > that will never show up). > > Related: rhbz#1085216 > --- > src/virt-viewer.c | 25 +++++++++++++++++++++++-- > 1 file changed, 23 insertions(+), 2 deletions(-) > > diff --git a/src/virt-viewer.c b/src/virt-viewer.c > index 994ee28..1c9f59d 100644 > --- a/src/virt-viewer.c > +++ b/src/virt-viewer.c > @@ -387,7 +387,8 @@ virt_viewer_is_reachable(const gchar *host, > > static gboolean > virt_viewer_extract_connect_info(VirtViewer *self, > - virDomainPtr dom) > + virDomainPtr dom, > + GError **error) > { > char *type = NULL; > char *xpath = NULL; > @@ -405,12 +406,18 @@ virt_viewer_extract_connect_info(VirtViewer *self, > gint port = 0; > gchar *uri = NULL; > gboolean direct = virt_viewer_app_get_direct(app); > + GError *err = NULL; > > virt_viewer_app_free_connect_info(app); > > if ((type = virt_viewer_extract_xpath_string(xmldesc, "string(/domain/devices/graphics/@type)")) == NULL) { > + g_set_error(&err, > + VIRT_VIEWER_ERROR, VIRT_VIEWER_ERROR_FAILED, > + _("Cannot determine the graphic type for the guest %s"), priv->domkey); > + > virt_viewer_app_simple_message_dialog(app, _("Cannot determine the graphic type for the guest %s"), > priv->domkey); > + > goto cleanup; > } > > @@ -446,8 +453,13 @@ virt_viewer_extract_connect_info(VirtViewer *self, > > uri = virConnectGetURI(priv->conn); > if (virt_viewer_util_extract_host(uri, NULL, &host, &transport, &user, &port) < 0) { > + g_set_error(&err, > + VIRT_VIEWER_ERROR, VIRT_VIEWER_ERROR_FAILED, > + _("Cannot determine the host for the guest %s"), priv->domkey); > + > virt_viewer_app_simple_message_dialog(app, _("Cannot determine the host for the guest %s"), > priv->domkey); > + > goto cleanup; > } > > @@ -472,10 +484,16 @@ virt_viewer_extract_connect_info(VirtViewer *self, > } > > if (!virt_viewer_is_reachable(ghost, transport, host, direct)) { > + g_set_error(&err, > + VIRT_VIEWER_ERROR, VIRT_VIEWER_ERROR_FAILED, > + _("Guest '%s' is not reachable"), priv->domkey); > + > g_debug("graphics listen '%s' is not reachable from this machine", > ghost ? ghost : ""); > + > virt_viewer_app_simple_message_dialog(app, _("Guest '%s' is not reachable"), > priv->domkey); > + > goto cleanup; > } > > @@ -484,6 +502,9 @@ virt_viewer_extract_connect_info(VirtViewer *self, > retval = TRUE; > > cleanup: > + if (err) > + g_propagate_error(error, err); > + > g_free(gport); > g_free(gtlsport); > g_free(ghost); > @@ -515,7 +536,7 @@ virt_viewer_update_display(VirtViewer *self, virDomainPtr dom) > g_object_set(app, "guest-name", virDomainGetName(dom), NULL); > > if (!virt_viewer_app_has_session(app)) { > - if (!virt_viewer_extract_connect_info(self, dom)) > + if (!virt_viewer_extract_connect_info(self, dom, NULL)) > return FALSE; > } > > -- > 2.3.3 > > _______________________________________________ > virt-tools-list mailing list > virt-tools-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/virt-tools-list
Attachment:
pgpSNG9dUvIi1.pgp
Description: PGP signature
_______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list