]> xenbits.xensource.com Git - libvirt.git/commit
event: clean up client side RPC code
authorEric Blake <eblake@redhat.com>
Wed, 8 Jan 2014 17:10:49 +0000 (10:10 -0700)
committerEric Blake <eblake@redhat.com>
Wed, 8 Jan 2014 19:34:19 +0000 (12:34 -0700)
commit6d8233fea2c21958c78ef346d3d84679e0e7327d
tree853acb63bad7ccae6d5f49df29006415503ff8e6
parent41d6e49dc35ad485b3b756f32a40c1fb72d84407
event: clean up client side RPC code

Commit cfd62c1 was incomplete; I found more cases where error
messages were being overwritten, and where the code between
the three registration/deregistration APIs was not consistent.

Since it is fairly easy to trigger an attempt to deregister an
unregistered object through public API, I also changed the error
message from VIR_ERR_INTERNAL_ERROR to VIR_ERR_INVALID_ARG.

* src/conf/object_event.c (virObjectEventCallbackListEventID):
Inline...
(virObjectEventStateEventID): ...into lone caller, and report
error on failure.
(virObjectEventCallbackListAddID, virObjectEventStateCallbackID)
(virObjectEventCallbackListRemoveID)
(virObjectEventCallbackListMarkDeleteID): Tweak error category.
* src/remote/remote_driver.c (remoteConnectDomainEventRegister):
Don't leak registration on failure.
(remoteConnectDomainEventDeregisterAny)
(remoteConnectNetworkEventDeregisterAny): Don't overwrite error.

Signed-off-by: Eric Blake <eblake@redhat.com>
src/conf/object_event.c
src/remote/remote_driver.c