[virt-tools-list] [virt-viewer][PATCH 2/3] Prefer to use virConnectDomainEventRegisterAny()

Fabiano Fidêncio fidencio at redhat.com
Wed Nov 19 04:58:22 UTC 2014


The usage of virConnectDomainEventRegister() is no longer recommended
according to the libvirt's documentation.

Related to: rhbz#1164052
https://bugzilla.redhat.com/show_bug.cgi?id=1164052
---
 src/virt-viewer.c | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/src/virt-viewer.c b/src/virt-viewer.c
index 9fa2a80..bc831dc 100644
--- a/src/virt-viewer.c
+++ b/src/virt-viewer.c
@@ -59,6 +59,7 @@ struct _VirtViewerPrivate {
     gboolean waitvm;
     gboolean reconnect;
     gboolean auth_cancelled;
+    gint domain_event;
 };
 
 G_DEFINE_TYPE (VirtViewer, virt_viewer, VIRT_VIEWER_TYPE_APP)
@@ -530,9 +531,11 @@ virt_viewer_dispose (GObject *object)
     VirtViewerPrivate *priv = self->priv;
 
     if (priv->conn) {
-        if (priv->withEvents)
-            virConnectDomainEventDeregister(priv->conn,
-                                            virt_viewer_domain_event);
+        if (priv->withEvents) {
+            virConnectDomainEventDeregisterAny(priv->conn,
+                                               priv->domain_event);
+            priv->domain_event = -1;
+        }
         virConnectUnregisterCloseCallback(priv->conn,
                                           virt_viewer_conn_event);
         virConnectClose(priv->conn);
@@ -821,10 +824,13 @@ virt_viewer_connect(VirtViewerApp *app)
         return -1;
     }
 
-    if (virConnectDomainEventRegister(priv->conn,
-                                      virt_viewer_domain_event,
-                                      self,
-                                      NULL) < 0)
+    priv->domain_event = virConnectDomainEventRegisterAny(priv->conn,
+                                                          priv->dom,
+                                                          VIR_DOMAIN_EVENT_ID_LIFECYCLE,
+                                                          VIR_DOMAIN_EVENT_CALLBACK(virt_viewer_domain_event),
+                                                          self,
+                                                          NULL);
+    if (priv->domain_event < 0)
         priv->withEvents = FALSE;
     else
         priv->withEvents = TRUE;
-- 
2.1.0




More information about the virt-tools-list mailing list