ACK. Christophe On Thu, Nov 13, 2014 at 06:20:39PM +0100, Marc-André Lureau wrote: > This is libvirt specific, no need to share it in the VirtViewerApp base > class. > --- > src/virt-viewer-app.c | 35 ----------------------------------- > src/virt-viewer-app.h | 1 - > src/virt-viewer.c | 41 +++++++++++++++++++++++++++++++++++++---- > 3 files changed, 37 insertions(+), 40 deletions(-) > > diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c > index 262d75e..e2d9636 100644 > --- a/src/virt-viewer-app.c > +++ b/src/virt-viewer-app.c > @@ -127,7 +127,6 @@ struct _VirtViewerAppPrivate { > gboolean active; > gboolean connected; > gboolean cancelled; > - guint reconnect_poll; /* source id */ > char *unixsock; > char *guri; /* prefered over ghost:gport */ > char *ghost; > @@ -1322,40 +1321,6 @@ virt_viewer_app_retryauth(gpointer opaque) > return FALSE; > } > > -static gboolean > -virt_viewer_app_connect_timer(void *opaque) > -{ > - VirtViewerApp *self = opaque; > - VirtViewerAppPrivate *priv = self->priv; > - > - g_debug("Connect timer fired"); > - > - if (!priv->active && > - virt_viewer_app_initial_connect(self, NULL) < 0) > - gtk_main_quit(); > - > - if (priv->active) { > - priv->reconnect_poll = 0; > - return FALSE; > - } > - > - return TRUE; > -} > - > -void > -virt_viewer_app_start_reconnect_poll(VirtViewerApp *self) > -{ > - g_return_if_fail(VIRT_VIEWER_IS_APP(self)); > - VirtViewerAppPrivate *priv = self->priv; > - > - g_debug("reconnect_poll: %d", priv->reconnect_poll); > - > - if (priv->reconnect_poll != 0) > - return; > - > - priv->reconnect_poll = g_timeout_add(500, virt_viewer_app_connect_timer, self); > -} > - > static void > virt_viewer_app_default_deactivated(VirtViewerApp *self, gboolean connect_error) > { > diff --git a/src/virt-viewer-app.h b/src/virt-viewer-app.h > index b68e50c..f127b32 100644 > --- a/src/virt-viewer-app.h > +++ b/src/virt-viewer-app.h > @@ -71,7 +71,6 @@ void virt_viewer_app_free_connect_info(VirtViewerApp *self); > int virt_viewer_app_create_session(VirtViewerApp *self, const gchar *type); > gboolean virt_viewer_app_activate(VirtViewerApp *self, GError **error); > gboolean virt_viewer_app_initial_connect(VirtViewerApp *self, GError **error); > -void virt_viewer_app_start_reconnect_poll(VirtViewerApp *self); > void virt_viewer_app_set_zoom_level(VirtViewerApp *self, gint zoom_level); > gboolean virt_viewer_app_get_direct(VirtViewerApp *self); > void virt_viewer_app_set_direct(VirtViewerApp *self, gboolean direct); > diff --git a/src/virt-viewer.c b/src/virt-viewer.c > index dc16b3f..19aa6ed 100644 > --- a/src/virt-viewer.c > +++ b/src/virt-viewer.c > @@ -59,6 +59,7 @@ struct _VirtViewerPrivate { > gboolean waitvm; > gboolean reconnect; > gboolean auth_cancelled; > + guint reconnect_poll; /* source id */ > }; > > G_DEFINE_TYPE (VirtViewer, virt_viewer, VIRT_VIEWER_TYPE_APP) > @@ -115,6 +116,39 @@ virt_viewer_init(VirtViewer *self) > self->priv = GET_PRIVATE(self); > } > > +static gboolean > +virt_viewer_connect_timer(void *opaque) > +{ > + VirtViewer *self = VIRT_VIEWER(opaque); > + VirtViewerApp *app = VIRT_VIEWER_APP(self); > + > + g_debug("Connect timer fired"); > + > + if (!virt_viewer_app_is_active(app) && > + !virt_viewer_app_initial_connect(app, NULL)) > + gtk_main_quit(); > + > + if (virt_viewer_app_is_active(app)) { > + self->priv->reconnect_poll = 0; > + return FALSE; > + } > + > + return TRUE; > +} > + > +static void > +virt_viewer_start_reconnect_poll(VirtViewer *self) > +{ > + VirtViewerPrivate *priv = self->priv; > + > + g_debug("reconnect_poll: %d", priv->reconnect_poll); > + > + if (priv->reconnect_poll != 0) > + return; > + > + priv->reconnect_poll = g_timeout_add(500, virt_viewer_connect_timer, self); > +} > + > static void > virt_viewer_deactivated(VirtViewerApp *app, gboolean connect_error) > { > @@ -129,7 +163,7 @@ virt_viewer_deactivated(VirtViewerApp *app, gboolean connect_error) > if (priv->reconnect) { > if (!priv->withEvents) { > g_debug("No domain events, falling back to polling"); > - virt_viewer_app_start_reconnect_poll(app); > + virt_viewer_start_reconnect_poll(self); > } > > virt_viewer_app_show_status(app, _("Waiting for guest domain to re-start")); > @@ -512,7 +546,6 @@ virt_viewer_conn_event(virConnectPtr conn G_GNUC_UNUSED, > void *opaque) > { > VirtViewer *self = opaque; > - VirtViewerApp *app = VIRT_VIEWER_APP(self); > VirtViewerPrivate *priv = self->priv; > > g_debug("Got connection event %d", reason); > @@ -520,7 +553,7 @@ virt_viewer_conn_event(virConnectPtr conn G_GNUC_UNUSED, > virConnectClose(priv->conn); > priv->conn = NULL; > > - virt_viewer_app_start_reconnect_poll(app); > + virt_viewer_start_reconnect_poll(self); > } > > static void > @@ -831,7 +864,7 @@ virt_viewer_connect(VirtViewerApp *app) > if (!priv->withEvents && > !virt_viewer_app_is_active(app)) { > g_debug("No domain events, falling back to polling"); > - virt_viewer_app_start_reconnect_poll(app); > + virt_viewer_start_reconnect_poll(self); > } > > if (virConnectRegisterCloseCallback(priv->conn, > -- > 1.9.3 > > _______________________________________________ > virt-tools-list mailing list > virt-tools-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/virt-tools-list
Attachment:
pgp6zOb0fAUO8.pgp
Description: PGP signature
_______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list