diff --git a/daemon/remote.c b/daemon/remote.c index f3de6a0ada1f8371c88bf5f1b70809f3338dca0b..22960bbf23979e26c43e4c45086407904473d941 100644 --- a/daemon/remote.c +++ b/daemon/remote.c @@ -49,6 +49,8 @@ #include "qemu_protocol.h" #include "lxc_protocol.h" #include "virstring.h" +#include "domain_conf.h" +#include "viraccessapicheck.h" #define VIR_FROM_THIS VIR_FROM_RPC @@ -114,16 +116,45 @@ remoteDispatchDomainEventSend(virNetServerClientPtr client, xdrproc_t proc, void *data); -static int remoteRelayDomainEventLifecycle(virConnectPtr conn ATTRIBUTE_UNUSED, - virDomainPtr dom, - int event, - int detail, - void *opaque) + +static bool +remoteRelayDomainEventCheckACL(virNetServerClientPtr client, + virConnectPtr conn, virDomainPtr dom) +{ + virDomainDef def; + virIdentityPtr identity = NULL; + bool ret = false; + + /* For now, we just create a virDomainDef with enough contents to + * satisfy what viraccessdriverpolkit.c references. This is a bit + * fragile, but I don't know of anything better. */ + def.name = dom->name; + memcpy(def.uuid, dom->uuid, VIR_UUID_BUFLEN); + + if (!(identity = virNetServerClientGetIdentity(client))) + goto cleanup; + if (virIdentitySetCurrent(identity) < 0) + goto cleanup; + ret = virConnectDomainEventRegisterAnyCheckACL(conn, &def); + +cleanup: + ignore_value(virIdentitySetCurrent(NULL)); + virObjectUnref(identity); + return ret; +} + + +static int +remoteRelayDomainEventLifecycle(virConnectPtr conn, + virDomainPtr dom, + int event, + int detail, + void *opaque) { virNetServerClientPtr client = opaque; remote_domain_event_lifecycle_msg data; - if (!client) + if (!client || !remoteRelayDomainEventCheckACL(client, conn, dom)) return -1; VIR_DEBUG("Relaying domain lifecycle event %d %d", event, detail); @@ -141,14 +172,15 @@ static int remoteRelayDomainEventLifecycle(virConnectPtr conn ATTRIBUTE_UNUSED, return 0; } -static int remoteRelayDomainEventReboot(virConnectPtr conn ATTRIBUTE_UNUSED, - virDomainPtr dom, - void *opaque) +static int +remoteRelayDomainEventReboot(virConnectPtr conn, + virDomainPtr dom, + void *opaque) { virNetServerClientPtr client = opaque; remote_domain_event_reboot_msg data; - if (!client) + if (!client || !remoteRelayDomainEventCheckACL(client, conn, dom)) return -1; VIR_DEBUG("Relaying domain reboot event %s %d", dom->name, dom->id); @@ -165,15 +197,16 @@ static int remoteRelayDomainEventReboot(virConnectPtr conn ATTRIBUTE_UNUSED, } -static int remoteRelayDomainEventRTCChange(virConnectPtr conn ATTRIBUTE_UNUSED, - virDomainPtr dom, - long long offset, - void *opaque) +static int +remoteRelayDomainEventRTCChange(virConnectPtr conn, + virDomainPtr dom, + long long offset, + void *opaque) { virNetServerClientPtr client = opaque; remote_domain_event_rtc_change_msg data; - if (!client) + if (!client || !remoteRelayDomainEventCheckACL(client, conn, dom)) return -1; VIR_DEBUG("Relaying domain rtc change event %s %d %lld", dom->name, dom->id, offset); @@ -191,15 +224,16 @@ static int remoteRelayDomainEventRTCChange(virConnectPtr conn ATTRIBUTE_UNUSED, } -static int remoteRelayDomainEventWatchdog(virConnectPtr conn ATTRIBUTE_UNUSED, - virDomainPtr dom, - int action, - void *opaque) +static int +remoteRelayDomainEventWatchdog(virConnectPtr conn, + virDomainPtr dom, + int action, + void *opaque) { virNetServerClientPtr client = opaque; remote_domain_event_watchdog_msg data; - if (!client) + if (!client || !remoteRelayDomainEventCheckACL(client, conn, dom)) return -1; VIR_DEBUG("Relaying domain watchdog event %s %d %d", dom->name, dom->id, action); @@ -217,17 +251,18 @@ static int remoteRelayDomainEventWatchdog(virConnectPtr conn ATTRIBUTE_UNUSED, } -static int remoteRelayDomainEventIOError(virConnectPtr conn ATTRIBUTE_UNUSED, - virDomainPtr dom, - const char *srcPath, - const char *devAlias, - int action, - void *opaque) +static int +remoteRelayDomainEventIOError(virConnectPtr conn, + virDomainPtr dom, + const char *srcPath, + const char *devAlias, + int action, + void *opaque) { virNetServerClientPtr client = opaque; remote_domain_event_io_error_msg data; - if (!client) + if (!client || !remoteRelayDomainEventCheckACL(client, conn, dom)) return -1; VIR_DEBUG("Relaying domain io error %s %d %s %s %d", dom->name, dom->id, srcPath, devAlias, action); @@ -252,18 +287,19 @@ error: } -static int remoteRelayDomainEventIOErrorReason(virConnectPtr conn ATTRIBUTE_UNUSED, - virDomainPtr dom, - const char *srcPath, - const char *devAlias, - int action, - const char *reason, - void *opaque) +static int +remoteRelayDomainEventIOErrorReason(virConnectPtr conn, + virDomainPtr dom, + const char *srcPath, + const char *devAlias, + int action, + const char *reason, + void *opaque) { virNetServerClientPtr client = opaque; remote_domain_event_io_error_reason_msg data; - if (!client) + if (!client || !remoteRelayDomainEventCheckACL(client, conn, dom)) return -1; VIR_DEBUG("Relaying domain io error %s %d %s %s %d %s", @@ -293,20 +329,21 @@ error: } -static int remoteRelayDomainEventGraphics(virConnectPtr conn ATTRIBUTE_UNUSED, - virDomainPtr dom, - int phase, - virDomainEventGraphicsAddressPtr local, - virDomainEventGraphicsAddressPtr remote, - const char *authScheme, - virDomainEventGraphicsSubjectPtr subject, - void *opaque) +static int +remoteRelayDomainEventGraphics(virConnectPtr conn, + virDomainPtr dom, + int phase, + virDomainEventGraphicsAddressPtr local, + virDomainEventGraphicsAddressPtr remote, + const char *authScheme, + virDomainEventGraphicsSubjectPtr subject, + void *opaque) { virNetServerClientPtr client = opaque; remote_domain_event_graphics_msg data; size_t i; - if (!client) + if (!client || !remoteRelayDomainEventCheckACL(client, conn, dom)) return -1; VIR_DEBUG("Relaying domain graphics event %s %d %d - %d %s %s - %d %s %s - %s", dom->name, dom->id, phase, @@ -364,17 +401,18 @@ error: return -1; } -static int remoteRelayDomainEventBlockJob(virConnectPtr conn ATTRIBUTE_UNUSED, - virDomainPtr dom, - const char *path, - int type, - int status, - void *opaque) +static int +remoteRelayDomainEventBlockJob(virConnectPtr conn, + virDomainPtr dom, + const char *path, + int type, + int status, + void *opaque) { virNetServerClientPtr client = opaque; remote_domain_event_block_job_msg data; - if (!client) + if (!client || !remoteRelayDomainEventCheckACL(client, conn, dom)) return -1; VIR_DEBUG("Relaying domain block job event %s %d %s %i, %i", @@ -399,14 +437,15 @@ error: } -static int remoteRelayDomainEventControlError(virConnectPtr conn ATTRIBUTE_UNUSED, - virDomainPtr dom, - void *opaque) +static int +remoteRelayDomainEventControlError(virConnectPtr conn, + virDomainPtr dom, + void *opaque) { virNetServerClientPtr client = opaque; remote_domain_event_control_error_msg data; - if (!client) + if (!client || !remoteRelayDomainEventCheckACL(client, conn, dom)) return -1; VIR_DEBUG("Relaying domain control error %s %d", dom->name, dom->id); @@ -423,19 +462,20 @@ static int remoteRelayDomainEventControlError(virConnectPtr conn ATTRIBUTE_UNUSE } -static int remoteRelayDomainEventDiskChange(virConnectPtr conn ATTRIBUTE_UNUSED, - virDomainPtr dom, - const char *oldSrcPath, - const char *newSrcPath, - const char *devAlias, - int reason, - void *opaque) +static int +remoteRelayDomainEventDiskChange(virConnectPtr conn, + virDomainPtr dom, + const char *oldSrcPath, + const char *newSrcPath, + const char *devAlias, + int reason, + void *opaque) { virNetServerClientPtr client = opaque; remote_domain_event_disk_change_msg data; char **oldSrcPath_p = NULL, **newSrcPath_p = NULL; - if (!client) + if (!client || !remoteRelayDomainEventCheckACL(client, conn, dom)) return -1; VIR_DEBUG("Relaying domain %s %d disk change %s %s %s %d", @@ -474,15 +514,17 @@ error: } -static int remoteRelayDomainEventTrayChange(virConnectPtr conn ATTRIBUTE_UNUSED, - virDomainPtr dom, - const char *devAlias, - int reason, - void *opaque) { +static int +remoteRelayDomainEventTrayChange(virConnectPtr conn, + virDomainPtr dom, + const char *devAlias, + int reason, + void *opaque) +{ virNetServerClientPtr client = opaque; remote_domain_event_tray_change_msg data; - if (!client) + if (!client || !remoteRelayDomainEventCheckACL(client, conn, dom)) return -1; VIR_DEBUG("Relaying domain %s %d tray change devAlias: %s reason: %d", @@ -504,14 +546,16 @@ static int remoteRelayDomainEventTrayChange(virConnectPtr conn ATTRIBUTE_UNUSED, return 0; } -static int remoteRelayDomainEventPMWakeup(virConnectPtr conn ATTRIBUTE_UNUSED, - virDomainPtr dom, - int reason ATTRIBUTE_UNUSED, - void *opaque) { +static int +remoteRelayDomainEventPMWakeup(virConnectPtr conn, + virDomainPtr dom, + int reason ATTRIBUTE_UNUSED, + void *opaque) +{ virNetServerClientPtr client = opaque; remote_domain_event_pmwakeup_msg data; - if (!client) + if (!client || !remoteRelayDomainEventCheckACL(client, conn, dom)) return -1; VIR_DEBUG("Relaying domain %s %d system pmwakeup", dom->name, dom->id); @@ -527,14 +571,16 @@ static int remoteRelayDomainEventPMWakeup(virConnectPtr conn ATTRIBUTE_UNUSED, return 0; } -static int remoteRelayDomainEventPMSuspend(virConnectPtr conn ATTRIBUTE_UNUSED, - virDomainPtr dom, - int reason ATTRIBUTE_UNUSED, - void *opaque) { +static int +remoteRelayDomainEventPMSuspend(virConnectPtr conn, + virDomainPtr dom, + int reason ATTRIBUTE_UNUSED, + void *opaque) +{ virNetServerClientPtr client = opaque; remote_domain_event_pmsuspend_msg data; - if (!client) + if (!client || !remoteRelayDomainEventCheckACL(client, conn, dom)) return -1; VIR_DEBUG("Relaying domain %s %d system pmsuspend", dom->name, dom->id); @@ -551,7 +597,7 @@ static int remoteRelayDomainEventPMSuspend(virConnectPtr conn ATTRIBUTE_UNUSED, } static int -remoteRelayDomainEventBalloonChange(virConnectPtr conn ATTRIBUTE_UNUSED, +remoteRelayDomainEventBalloonChange(virConnectPtr conn, virDomainPtr dom, unsigned long long actual, void *opaque) @@ -559,7 +605,7 @@ remoteRelayDomainEventBalloonChange(virConnectPtr conn ATTRIBUTE_UNUSED, virNetServerClientPtr client = opaque; remote_domain_event_balloon_change_msg data; - if (!client) + if (!client || !remoteRelayDomainEventCheckACL(client, conn, dom)) return -1; VIR_DEBUG("Relaying domain balloon change event %s %d %lld", dom->name, dom->id, actual); @@ -577,14 +623,16 @@ remoteRelayDomainEventBalloonChange(virConnectPtr conn ATTRIBUTE_UNUSED, } -static int remoteRelayDomainEventPMSuspendDisk(virConnectPtr conn ATTRIBUTE_UNUSED, - virDomainPtr dom, - int reason ATTRIBUTE_UNUSED, - void *opaque) { +static int +remoteRelayDomainEventPMSuspendDisk(virConnectPtr conn, + virDomainPtr dom, + int reason ATTRIBUTE_UNUSED, + void *opaque) +{ virNetServerClientPtr client = opaque; remote_domain_event_pmsuspend_disk_msg data; - if (!client) + if (!client || !remoteRelayDomainEventCheckACL(client, conn, dom)) return -1; VIR_DEBUG("Relaying domain %s %d system pmsuspend-disk", dom->name, dom->id); @@ -601,7 +649,7 @@ static int remoteRelayDomainEventPMSuspendDisk(virConnectPtr conn ATTRIBUTE_UNUS } static int -remoteRelayDomainEventDeviceRemoved(virConnectPtr conn ATTRIBUTE_UNUSED, +remoteRelayDomainEventDeviceRemoved(virConnectPtr conn, virDomainPtr dom, const char *devAlias, void *opaque) @@ -609,7 +657,7 @@ remoteRelayDomainEventDeviceRemoved(virConnectPtr conn ATTRIBUTE_UNUSED, virNetServerClientPtr client = opaque; remote_domain_event_device_removed_msg data; - if (!client) + if (!client || !remoteRelayDomainEventCheckACL(client, conn, dom)) return -1; VIR_DEBUG("Relaying domain device removed event %s %d %s", diff --git a/src/check-aclrules.pl b/src/check-aclrules.pl index 057517e521f0186d6b6505b396e9149b91ee045e..f54b934225de3ce20efff4bbb26a87caeec7322e 100644 --- a/src/check-aclrules.pl +++ b/src/check-aclrules.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl # -# Copyright (C) 2013 Red Hat, Inc. +# Copyright (C) 2013-2014 Red Hat, Inc. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -140,7 +140,10 @@ while () { } elsif ($filtered && m,REMOTE_PROC_(.*)\s+=\s*\d+,) { my $api = name_to_ProcName($1); - $filtered{$api} = 1; + # Event filtering is handled in daemon/remote.c instead of drivers + if (! m,_EVENT_REGISTER,) { + $filtered{$api} = 1; + } $incomment = 0; } } diff --git a/src/conf/domain_event.c b/src/conf/domain_event.c index 1736aa0a0341ae48ecea3a9ecfe2d03e3e9e9053..de55d087967d0fe0ac126041efd2129fb2f0cd42 100644 --- a/src/conf/domain_event.c +++ b/src/conf/domain_event.c @@ -32,20 +32,6 @@ #define VIR_FROM_THIS VIR_FROM_NONE -/** - * virObjectEventCallbackFilter: - * @conn: the connection pointer - * @event: the event about to be dispatched - * @opaque: opaque data registered with the filter - * - * Callback to do final filtering for a reason not tracked directly by - * virObjectEventStateRegisterID(). Return false if @event must not - * be sent to @conn. - */ -typedef bool (*virObjectEventCallbackFilter)(virConnectPtr conn, - virDomainEventPtr event, - void *opaque); - struct _virDomainMeta { int id; char *name; @@ -82,8 +68,6 @@ struct _virDomainEventCallback { int eventID; virConnectPtr conn; virDomainMetaPtr dom; - virObjectEventCallbackFilter filter; - void *filter_opaque; virConnectDomainEventGenericCallback cb; void *opaque; virFreeCallback freecb; @@ -360,9 +344,6 @@ virDomainEventCallbackListPurgeMarked(virDomainEventCallbackListPtr cbList) * virDomainEventCallbackListAddID: * @conn: pointer to the connection * @cbList: the list - * @dom: optional domain to filter on - * @filter optional last-ditch filter callback - * @filter_opaque: opaque data to pass to @filter * @eventID: the event ID * @callback: the callback to add * @opaque: opaque data tio pass to callback @@ -374,8 +355,6 @@ static int virDomainEventCallbackListAddID(virConnectPtr conn, virDomainEventCallbackListPtr cbList, virDomainPtr dom, - virObjectEventCallbackFilter filter, - void *filter_opaque, int eventID, virConnectDomainEventGenericCallback callback, void *opaque, @@ -422,8 +401,6 @@ virDomainEventCallbackListAddID(virConnectPtr conn, memcpy(event->dom->uuid, dom->uuid, VIR_UUID_BUFLEN); event->dom->id = dom->id; } - event->filter = filter; - event->filter_opaque = filter_opaque; /* Make space on list */ if (VIR_REALLOC_N(cbList->callbacks, cbList->count + 1) < 0) @@ -463,8 +440,6 @@ error: * virDomainEventCallbackListAdd: * @conn: pointer to the connection * @cbList: the list - * @filter optional last-ditch filter callback - * @filter_opaque: opaque data to pass to @filter * @callback: the callback to add * @opaque: opaque data tio pass to callback * @@ -473,14 +448,11 @@ error: static int virDomainEventCallbackListAdd(virConnectPtr conn, virDomainEventCallbackListPtr cbList, - virObjectEventCallbackFilter filter, - void *filter_opaque, virConnectDomainEventCallback callback, void *opaque, virFreeCallback freecb) { return virDomainEventCallbackListAddID(conn, cbList, NULL, - filter, filter_opaque, VIR_DOMAIN_EVENT_ID_LIFECYCLE, VIR_DOMAIN_EVENT_CALLBACK(callback), opaque, freecb, NULL); @@ -708,32 +680,6 @@ static virDomainEventPtr virDomainEventNewInternal(int eventID, return event; } - -/** - * virDomainEventFilter: - * @conn: pointer to the connection - * @event: the event to check - * @opaque: opaque data holding ACL filter to use - * - * Internal function to run ACL filtering before dispatching an event - */ -static bool -virDomainEventFilter(virConnectPtr conn, virDomainEventPtr event, - void *opaque) -{ - virDomainDef dom; - virDomainObjListFilter filter = opaque; - - /* For now, we just create a virDomainDef with enough contents to - * satisfy what viraccessdriverpolkit.c references. This is a bit - * fragile, but I don't know of anything better. */ - dom.name = event->dom.name; - memcpy(dom.uuid, event->dom.uuid, VIR_UUID_BUFLEN); - - return (filter)(conn, &dom); -} - - virDomainEventPtr virDomainEventNew(int id, const char *name, const unsigned char *uuid, int type, int detail) @@ -1435,9 +1381,6 @@ static int virDomainEventDispatchMatchCallback(virDomainEventPtr event, if (cb->eventID != event->eventID) return 0; - if (cb->filter && !(cb->filter)(cb->conn, event, cb->filter_opaque)) - return 0; - if (cb->dom) { /* Deliberately ignoring 'id' for matching, since that * will cause problems when a domain switches between @@ -1567,7 +1510,6 @@ virDomainEventStateFlush(virDomainEventStatePtr state) * virDomainEventStateRegister: * @conn: connection to associate with callback * @state: domain event state - * @filter: optional ACL filter to limit which events can be sent * @callback: function to remove from event * @opaque: data blob to pass to callback * @freecb: callback to free @opaque @@ -1580,7 +1522,6 @@ virDomainEventStateFlush(virDomainEventStatePtr state) int virDomainEventStateRegister(virConnectPtr conn, virDomainEventStatePtr state, - virDomainObjListFilter filter, virConnectDomainEventCallback callback, void *opaque, virFreeCallback freecb) @@ -1601,8 +1542,7 @@ virDomainEventStateRegister(virConnectPtr conn, } ret = virDomainEventCallbackListAdd(conn, state->callbacks, - filter ? virDomainEventFilter : NULL, - filter, callback, opaque, freecb); + callback, opaque, freecb); if (ret == -1 && state->callbacks->count == 0 && @@ -1621,7 +1561,6 @@ cleanup: * virDomainEventStateRegisterID: * @conn: connection to associate with callback * @state: domain event state - * @filter: optional ACL filter to limit which events can be sent * @eventID: ID of the event type to register for * @cb: function to remove from event * @opaque: data blob to pass to callback @@ -1636,7 +1575,6 @@ cleanup: int virDomainEventStateRegisterID(virConnectPtr conn, virDomainEventStatePtr state, - virDomainObjListFilter filter, virDomainPtr dom, int eventID, virConnectDomainEventGenericCallback cb, @@ -1659,9 +1597,8 @@ virDomainEventStateRegisterID(virConnectPtr conn, goto cleanup; } - ret = virDomainEventCallbackListAddID(conn, state->callbacks, dom, - filter ? virDomainEventFilter : NULL, - filter, eventID, cb, opaque, freecb, + ret = virDomainEventCallbackListAddID(conn, state->callbacks, + dom, eventID, cb, opaque, freecb, callbackID); if (ret == -1 && diff --git a/src/conf/domain_event.h b/src/conf/domain_event.h index 9dc65e22d31ee42ec63a5d25351da7f9af11d71f..f6b957d596be525d794fe5ab3efc9d9e6fb12f9f 100644 --- a/src/conf/domain_event.h +++ b/src/conf/domain_event.h @@ -1,7 +1,7 @@ /* * domain_event.h: domain event queue processing helpers * - * Copyright (C) 2012-2014 Red Hat, Inc. + * Copyright (C) 2012 Red Hat, Inc. * Copyright (C) 2008 VirtualIron * * This library is free software; you can redistribute it and/or @@ -149,21 +149,19 @@ virDomainEventStateQueue(virDomainEventStatePtr state, ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); int virDomainEventStateRegister(virConnectPtr conn, virDomainEventStatePtr state, - virDomainObjListFilter filter, virConnectDomainEventCallback callback, void *opaque, virFreeCallback freecb) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(4); + ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3); int virDomainEventStateRegisterID(virConnectPtr conn, virDomainEventStatePtr state, - virDomainObjListFilter filter, virDomainPtr dom, int eventID, virConnectDomainEventGenericCallback cb, void *opaque, virFreeCallback freecb, int *callbackID) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(6); + ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(5); int virDomainEventStateDeregister(virConnectPtr conn, virDomainEventStatePtr state, diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index bcae1935454773bbd586fb4c6a8375704652a0ef..764a686e29896338f78c6f008477c629aca11f1f 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -3518,7 +3518,6 @@ libxlConnectDomainEventRegister(virConnectPtr conn, ret = virDomainEventStateRegister(conn, driver->domainEventState, - virConnectDomainEventRegisterCheckACL, callback, opaque, freecb); return ret; @@ -4118,7 +4117,6 @@ libxlConnectDomainEventRegisterAny(virConnectPtr conn, virDomainPtr dom, int eve if (virDomainEventStateRegisterID(conn, driver->domainEventState, - virConnectDomainEventRegisterAnyCheckACL, dom, eventID, callback, opaque, freecb, &ret) < 0) ret = -1; diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 56673ec2d85cf08336713af65afb6c6f5b1bba2a..c2ede55c37d596a79e16daa6fdfba8c186b1f9ed 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -1300,7 +1300,6 @@ lxcConnectDomainEventRegister(virConnectPtr conn, ret = virDomainEventStateRegister(conn, driver->domainEventState, - virConnectDomainEventRegisterCheckACL, callback, opaque, freecb); return ret; @@ -1341,7 +1340,6 @@ lxcConnectDomainEventRegisterAny(virConnectPtr conn, if (virDomainEventStateRegisterID(conn, driver->domainEventState, - virConnectDomainEventRegisterAnyCheckACL, dom, eventID, callback, opaque, freecb, &ret) < 0) ret = -1; diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 67fe06f69c15b25c09b0bdd30c738fbdfdfd3679..58be3085759c07adaaec4b2d18e9e82a23e2e83f 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -9867,7 +9867,6 @@ qemuConnectDomainEventRegister(virConnectPtr conn, if (virDomainEventStateRegister(conn, driver->domainEventState, - virConnectDomainEventRegisterCheckACL, callback, opaque, freecb) < 0) goto cleanup; @@ -9916,7 +9915,6 @@ qemuConnectDomainEventRegisterAny(virConnectPtr conn, if (virDomainEventStateRegisterID(conn, driver->domainEventState, - virConnectDomainEventRegisterAnyCheckACL, dom, eventID, callback, opaque, freecb, &ret) < 0) ret = -1; diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index 4508ca9bb541882d25262d47a624c05db199171f..ff20191a5b695dfaf764fa6b7bd12c781a779a7f 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -4311,7 +4311,7 @@ static int remoteConnectDomainEventRegister(virConnectPtr conn, remoteDriverLock(priv); - if ((count = virDomainEventStateRegister(conn, priv->domainEventState, NULL, + if ((count = virDomainEventStateRegister(conn, priv->domainEventState, callback, opaque, freecb)) < 0) { virReportError(VIR_ERR_RPC, "%s", _("adding cb to list")); goto done; @@ -5097,7 +5097,7 @@ static int remoteConnectDomainEventRegisterAny(virConnectPtr conn, remoteDriverLock(priv); if ((count = virDomainEventStateRegisterID(conn, - priv->domainEventState, NULL, + priv->domainEventState, dom, eventID, callback, opaque, freecb, &callbackID)) < 0) { diff --git a/src/test/test_driver.c b/src/test/test_driver.c index e8530991d912fef9b48ac74de8e09149de73c400..48b5ec14302c7c8b9d785d7ef98ecdb831944507 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -5772,7 +5772,7 @@ testConnectDomainEventRegister(virConnectPtr conn, testDriverLock(driver); ret = virDomainEventStateRegister(conn, - driver->domainEventState, NULL, + driver->domainEventState, callback, opaque, freecb); testDriverUnlock(driver); @@ -5810,7 +5810,7 @@ testConnectDomainEventRegisterAny(virConnectPtr conn, testDriverLock(driver); if (virDomainEventStateRegisterID(conn, - driver->domainEventState, NULL, + driver->domainEventState, dom, eventID, callback, opaque, freecb, &ret) < 0) ret = -1; diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c index 786061413101e0891025b88a06e5a9567ddebb14..b580b324a517c1670571dd7f597d1e945c9d5bd3 100644 --- a/src/uml/uml_driver.c +++ b/src/uml/uml_driver.c @@ -2621,7 +2621,6 @@ umlConnectDomainEventRegister(virConnectPtr conn, umlDriverLock(driver); ret = virDomainEventStateRegister(conn, driver->domainEventState, - virConnectDomainEventRegisterCheckACL, callback, opaque, freecb); umlDriverUnlock(driver); @@ -2664,7 +2663,6 @@ umlConnectDomainEventRegisterAny(virConnectPtr conn, umlDriverLock(driver); if (virDomainEventStateRegisterID(conn, driver->domainEventState, - virConnectDomainEventRegisterAnyCheckACL, dom, eventID, callback, opaque, freecb, &ret) < 0) ret = -1; diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c index 27f4197e1172e563d3acac54bbd35ffc6a645a94..5b1704841768e378d020805db74e3975cf5ef6c5 100644 --- a/src/vbox/vbox_tmpl.c +++ b/src/vbox/vbox_tmpl.c @@ -7265,7 +7265,7 @@ static int vboxConnectDomainEventRegister(virConnectPtr conn, * later you can iterate over them */ - ret = virDomainEventStateRegister(conn, data->domainEvents, NULL, + ret = virDomainEventStateRegister(conn, data->domainEvents, callback, opaque, freecb); VIR_DEBUG("virDomainEventStateRegister (ret = %d) (conn: %p, " "callback: %p, opaque: %p, " @@ -7357,7 +7357,7 @@ static int vboxConnectDomainEventRegisterAny(virConnectPtr conn, * later you can iterate over them */ - if (virDomainEventStateRegisterID(conn, data->domainEvents, NULL, + if (virDomainEventStateRegisterID(conn, data->domainEvents, dom, eventID, callback, opaque, freecb, &ret) < 0) ret = -1; diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c index 13fc5177cc244e00d408354f8b4559ebd0b02447..40b98ee59161f37edcb2f84ff4a830cf9aeb802a 100644 --- a/src/xen/xen_driver.c +++ b/src/xen/xen_driver.c @@ -2316,7 +2316,6 @@ xenUnifiedConnectDomainEventRegister(virConnectPtr conn, } ret = virDomainEventStateRegister(conn, priv->domainEvents, - virConnectDomainEventRegisterCheckACL, callback, opaque, freefunc); xenUnifiedUnlock(priv); @@ -2374,7 +2373,6 @@ xenUnifiedConnectDomainEventRegisterAny(virConnectPtr conn, } if (virDomainEventStateRegisterID(conn, priv->domainEvents, - virConnectDomainEventRegisterAnyCheckACL, dom, eventID, callback, opaque, freefunc, &ret) < 0) ret = -1;