virFreeCallback freecb,
int *callbackID)
{
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
+
if (virDomainEventsInitialize() < 0)
return -1;
- return virObjectEventStateRegisterID(conn, state, dom ? dom->uuid : NULL,
+ if (dom)
+ virUUIDFormat(dom->uuid, uuidstr);
+ return virObjectEventStateRegisterID(conn, state, dom ? uuidstr : NULL,
NULL, NULL,
virDomainEventClass, eventID,
VIR_OBJECT_EVENT_CALLBACK(cb),
int *callbackID,
bool remoteID)
{
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
+
if (virDomainEventsInitialize() < 0)
return -1;
- return virObjectEventStateRegisterID(conn, state, dom ? dom->uuid : NULL,
+ if (dom)
+ virUUIDFormat(dom->uuid, uuidstr);
+ return virObjectEventStateRegisterID(conn, state, dom ? uuidstr : NULL,
NULL, NULL,
virDomainEventClass, eventID,
VIR_OBJECT_EVENT_CALLBACK(cb),
{
virDomainQemuMonitorEventData *data = NULL;
virObjectEventCallbackFilter filter = NULL;
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
if (virDomainEventsInitialize() < 0)
return -1;
filter = virDomainQemuMonitorEventFilter;
freecb = virDomainQemuMonitorEventCleanup;
- return virObjectEventStateRegisterID(conn, state, dom ? dom->uuid : NULL,
+ if (dom)
+ virUUIDFormat(dom->uuid, uuidstr);
+ return virObjectEventStateRegisterID(conn, state, dom ? uuidstr : NULL,
filter, data,
virDomainQemuMonitorEventClass, 0,
VIR_OBJECT_EVENT_CALLBACK(cb),
virFreeCallback freecb,
int *callbackID)
{
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
+
if (virNetworkEventsInitialize() < 0)
return -1;
- return virObjectEventStateRegisterID(conn, state, net ? net->uuid : NULL,
+ if (net)
+ virUUIDFormat(net->uuid, uuidstr);
+ return virObjectEventStateRegisterID(conn, state, net ? uuidstr : NULL,
NULL, NULL,
virNetworkEventClass, eventID,
VIR_OBJECT_EVENT_CALLBACK(cb),
virFreeCallback freecb,
int *callbackID)
{
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
+
if (virNetworkEventsInitialize() < 0)
return -1;
- return virObjectEventStateRegisterID(conn, state, net ? net->uuid : NULL,
+ if (net)
+ virUUIDFormat(net->uuid, uuidstr);
+ return virObjectEventStateRegisterID(conn, state, net ? uuidstr : NULL,
NULL, NULL,
virNetworkEventClass, eventID,
VIR_OBJECT_EVENT_CALLBACK(cb),
virConnectPtr conn;
int remoteID;
bool uuid_filter;
- unsigned char uuid[VIR_UUID_BUFLEN];
+ char *uuid;
virObjectEventCallbackFilter filter;
void *filter_opaque;
virConnectObjectEventGenericCallback cb;
return;
virObjectUnref(cb->conn);
+ VIR_FREE(cb->uuid);
VIR_FREE(cb);
}
virObjectEventCallbackListPtr cbList,
virClassPtr klass,
int eventID,
- unsigned char uuid[VIR_UUID_BUFLEN],
+ const char *uuid,
bool serverFilter)
{
size_t i;
!cb->deleted &&
(!serverFilter ||
(cb->remoteID >= 0 &&
- ((uuid && cb->uuid_filter &&
- memcmp(cb->uuid, uuid, VIR_UUID_BUFLEN) == 0) ||
+ ((uuid && cb->uuid_filter && STREQ(cb->uuid, uuid)) ||
(!uuid && !cb->uuid_filter)))))
ret++;
}
static int ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2)
virObjectEventCallbackLookup(virConnectPtr conn,
virObjectEventCallbackListPtr cbList,
- unsigned char uuid[VIR_UUID_BUFLEN],
+ const char *uuid,
virClassPtr klass,
int eventID,
virConnectObjectEventGenericCallback callback,
if (cb->klass == klass &&
cb->eventID == eventID &&
cb->conn == conn &&
- ((uuid && cb->uuid_filter &&
- memcmp(cb->uuid, uuid, VIR_UUID_BUFLEN) == 0) ||
+ ((uuid && cb->uuid_filter && STREQ(cb->uuid, uuid)) ||
(!uuid && !cb->uuid_filter))) {
if (remoteID)
*remoteID = cb->remoteID;
static int
virObjectEventCallbackListAddID(virConnectPtr conn,
virObjectEventCallbackListPtr cbList,
- unsigned char uuid[VIR_UUID_BUFLEN],
+ const char *uuid,
virObjectEventCallbackFilter filter,
void *filter_opaque,
virClassPtr klass,
* Xen migration. */
if (uuid) {
cb->uuid_filter = true;
- memcpy(cb->uuid, uuid, VIR_UUID_BUFLEN);
+ if (VIR_STRDUP(cb->uuid, uuid) < 0)
+ goto cleanup;
}
cb->filter = filter;
cb->filter_opaque = filter_opaque;
* running & shutoff states & ignoring 'name' since
* Xen sometimes renames guests during migration, thus
* leaving 'uuid' as the only truly reliable ID we can use. */
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
+ virUUIDFormat(event->meta.uuid, uuidstr);
- return memcmp(event->meta.uuid, cb->uuid, VIR_UUID_BUFLEN) == 0;
+ return STREQ(uuidstr, cb->uuid);
}
return true;
}
int
virObjectEventStateRegisterID(virConnectPtr conn,
virObjectEventStatePtr state,
- unsigned char *uuid,
+ const char *uuid,
virObjectEventCallbackFilter filter,
void *filter_opaque,
virClassPtr klass,
int
virObjectEventStateRegisterID(virConnectPtr conn,
virObjectEventStatePtr state,
- unsigned char *uuid,
+ const char *uuid,
virObjectEventCallbackFilter filter,
void *filter_opaque,
virClassPtr klass,
virFreeCallback freecb,
int *callbackID)
{
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
+
if (virStoragePoolEventsInitialize() < 0)
return -1;
- return virObjectEventStateRegisterID(conn, state, pool ? pool->uuid : NULL,
+ if (pool)
+ virUUIDFormat(pool->uuid, uuidstr);
+ return virObjectEventStateRegisterID(conn, state, pool ? uuidstr : NULL,
NULL, NULL,
virStoragePoolEventClass, eventID,
VIR_OBJECT_EVENT_CALLBACK(cb),
virFreeCallback freecb,
int *callbackID)
{
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
+
if (virStoragePoolEventsInitialize() < 0)
return -1;
- return virObjectEventStateRegisterID(conn, state, pool ? pool->uuid : NULL,
+ if (pool)
+ virUUIDFormat(pool->uuid, uuidstr);
+ return virObjectEventStateRegisterID(conn, state, pool ? uuidstr : NULL,
NULL, NULL,
virStoragePoolEventClass, eventID,
VIR_OBJECT_EVENT_CALLBACK(cb),