[libvirt] [PATCH 3/9] admin: Do not generate remoteAdminConnect{Open, Close}
Michal Privoznik
mprivozn at redhat.com
Wed Oct 14 11:25:33 UTC 2015
On 13.10.2015 15:38, Erik Skultety wrote:
> As we plan to add more and more logic to remote connecting methods,
> these cannot be generated from admin_protocol.x anymore. Instead,
> this patch implements these to methods explicitly.
> ---
> src/admin/admin_protocol.x | 4 ++--
> src/libvirt-admin.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 47 insertions(+), 2 deletions(-)
>
> diff --git a/src/admin/admin_protocol.x b/src/admin/admin_protocol.x
> index cfc92ff..d0ca1a3 100644
> --- a/src/admin/admin_protocol.x
> +++ b/src/admin/admin_protocol.x
> @@ -64,12 +64,12 @@ enum admin_procedure {
> * in the function parameter list.
> */
> /**
> - * @generate: client
> + * @generate: none
> */
> ADMIN_PROC_CONNECT_OPEN = 1,
>
> /**
> - * @generate: client
> + * @generate: none
> */
> ADMIN_PROC_CONNECT_CLOSE = 2
> };
> diff --git a/src/libvirt-admin.c b/src/libvirt-admin.c
> index f0824dd..e12e2b8 100644
> --- a/src/libvirt-admin.c
> +++ b/src/libvirt-admin.c
> @@ -126,6 +126,51 @@ call(virAdmConnectPtr conn,
> static bool virAdmGlobalError;
> static virOnceControl virAdmGlobalOnce = VIR_ONCE_CONTROL_INITIALIZER;
>
> +static int
> +remoteAdminConnectOpen(virAdmConnectPtr conn, unsigned int flags)
> +{
> + int rv = -1;
> + remoteAdminPrivPtr priv = conn->privateData;
> + admin_connect_open_args args;
> +
> + virObjectLock(priv);
> +
> + args.flags = flags;
> +
> + if (call(conn, 0, ADMIN_PROC_CONNECT_OPEN,
> + (xdrproc_t)xdr_admin_connect_open_args, (char *)&args,
> + (xdrproc_t)xdr_void, (char *)NULL) == -1) {
> + goto done;
> + }
> +
> + rv = 0;
> +
> + done:
> + virObjectUnlock(priv);
> + return rv;
> +}
> +
> +static int
> +remoteAdminConnectClose(virAdmConnectPtr conn)
> +{
> + int rv = -1;
> + remoteAdminPrivPtr priv = conn->privateData;
> +
> + virObjectLock(priv);
> +
> + if (call(conn, 0, ADMIN_PROC_CONNECT_CLOSE,
> + (xdrproc_t)xdr_void, (char *)NULL,
> + (xdrproc_t)xdr_void, (char *)NULL) == -1) {
> + goto done;
> + }
> +
> + rv = 0;
> +
> + done:
> + virObjectUnlock(priv);
> + return rv;
> +}
> +
> static void
> remoteAdminPrivFree(void *opaque)
> {
>
I don't want to be picky, but these should really go into a separate
file. Perhaps somewhere under src/admin/?
Michal
More information about the libvir-list
mailing list