From c972237ee1a6b2a753b79c313982a2fba575c425 Mon Sep 17 00:00:00 2001 From: Adam Litke Date: Fri, 13 Jan 2012 14:44:42 -0600 Subject: [PATCH] events: Return the correct number of registered events 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 --- src/conf/domain_event.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/conf/domain_event.c b/src/conf/domain_event.c index 3fd3ed2093..1d8b45deb7 100644 --- a/src/conf/domain_event.c +++ b/src/conf/domain_event.c @@ -397,7 +397,7 @@ virDomainEventCallbackListAddID(virConnectPtr conn, /* check if we already have this callback on our list */ for (i = 0 ; i < cbList->count ; i++) { if (cbList->callbacks[i]->cb == VIR_DOMAIN_EVENT_CALLBACK(callback) && - cbList->callbacks[i]->eventID == VIR_DOMAIN_EVENT_ID_LIFECYCLE && + cbList->callbacks[i]->eventID == eventID && cbList->callbacks[i]->conn == conn) { eventReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("event callback already tracked")); @@ -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++; -- 2.47.2