[libvirt] Re: [PATCH 04/12] Domain Events - rpc changes
Daniel P. Berrange
berrange at redhat.com
Sun Oct 19 19:22:56 UTC 2008
On Fri, Oct 17, 2008 at 11:58:15AM -0400, Ben Guthro wrote:
> Changes to the RPC protocol
>
> remote_dispatch_localvars.h | 3 +++
> remote_dispatch_proc_switch.h | 18 ++++++++++++++++++
> remote_dispatch_prototypes.h | 3 +++
> remote_protocol.c | 35 +++++++++++++++++++++++++++++++++++
> remote_protocol.h | 28 ++++++++++++++++++++++++++++
> remote_protocol.x | 23 ++++++++++++++++++++++-
> 6 files changed, 109 insertions(+), 1 deletion(-)
[snip generated code]
> diff --git a/qemud/remote_protocol.x b/qemud/remote_protocol.x
> index f1bd9ff..5981702 100644
> --- a/qemud/remote_protocol.x
> +++ b/qemud/remote_protocol.x
> @@ -965,6 +965,23 @@ struct remote_storage_vol_get_path_ret {
> remote_nonnull_string name;
> };
>
> +/* Events */
> +struct remote_domain_events_register_args {
> + unsigned long int callback; /* To store a client pointer */
> + unsigned long int user_data; /* For the remote callback opaque data */
> +};
> +
> +struct remote_domain_events_deregister_args {
> + unsigned long int callback; /* To store a client pointer */
> +};
> +
> +struct remote_domain_event_ret {
> + remote_nonnull_domain dom;
> + int event;
> + unsigned long int callback;
> + unsigned long int user_data;
> +};
Using a 'unsigned long int' field to transmit the raw pointer feels a little
wrong to me. Could we have the client side pass a simple integer 'token' when
registering / unregistering, and have that 'token' passed back by the server
in the actual event. The client could use this token to lookup the callback
and user_data.
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list