[libvirt] [PATCH] events: Return the correct number of registered events

Adam Litke agl at us.ibm.com
Fri Jan 13 20:44:42 UTC 2012


Commit d09f6ba5feb655925175dc80122ca2a1e14db2b9 introduced a regression in event
registration.  virDomainEventCallbackListAddID() will only return a positive
integer if the type of event being registered is VIR_DOMAIN_EVENT_ID_LIFECYCLE.
For other event types, 0 is always returned on success.  This has the
unfortunate side effect of not enabling remote event callbacks because
remoteDomainEventRegisterAny() uses the return value from the local call to
determine if an event callback needs to be registered on the remote end.

Make sure virDomainEventCallbackListAddID() returns the callback count for the
eventID being registered.

Signed-off-by: Adam Litke <agl at us.ibm.com>
---
 src/conf/domain_event.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/conf/domain_event.c b/src/conf/domain_event.c
index 3fd3ed2..0431697 100644
--- a/src/conf/domain_event.c
+++ b/src/conf/domain_event.c
@@ -434,7 +434,7 @@ virDomainEventCallbackListAddID(virConnectPtr conn,
     event->callbackID = cbList->nextID++;
 
     for (i = 0 ; i < cbList->count ; i++) {
-        if (cbList->callbacks[i]->eventID == VIR_DOMAIN_EVENT_ID_LIFECYCLE &&
+        if (cbList->callbacks[i]->eventID == eventID &&
             cbList->callbacks[i]->conn == conn &&
             !cbList->callbacks[i]->deleted)
             ret++;
-- 
1.7.5.rc1




More information about the libvir-list mailing list