qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC][PATCH v4 14/18] virtagent: add client capabilitie


From: Jes Sorensen
Subject: Re: [Qemu-devel] [RFC][PATCH v4 14/18] virtagent: add client capabilities init function
Date: Thu, 18 Nov 2010 15:22:00 +0100
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.12) Gecko/20101103 Fedora/1.0-0.33.b2pre.fc14 Lightning/1.0b3pre Thunderbird/3.1.6

On 11/16/10 17:01, Michael Roth wrote:
> Non-monitor version of agent_capabilities monitor function. This is
> called by the local RPC server when it gets a "hello" from the guest
> agent to re-negotiate guest agent capabilities.
> 
> Signed-off-by: Michael Roth <address@hidden>
> ---
>  virtagent.c |   34 ++++++++++++++++++++++++++++++++++
>  virtagent.h |    1 +
>  2 files changed, 35 insertions(+), 0 deletions(-)
> 
> diff --git a/virtagent.c b/virtagent.c
> index e0f7f99..4ec1b42 100644
> --- a/virtagent.c
> +++ b/virtagent.c
> @@ -694,3 +694,37 @@ int do_agent_capabilities(Monitor *mon, const QDict 
> *mon_params,
>  
>      return 0;
>  }
> +
> +/* non-HMP/QMP RPC client functions */
> +
> +int va_client_init_capabilities(void)
> +{
> +    xmlrpc_env env;
> +    xmlrpc_value *params;
> +    VARPCData *rpc_data;
> +    int ret;
> +
> +    xmlrpc_env_init(&env);
> +
> +    params = xmlrpc_build_value(&env, "()");
> +    if (rpc_has_error(&env)) {
> +        return -1;
> +    }
> +
> +    rpc_data = qemu_mallocz(sizeof(VARPCData));
> +    rpc_data->cb = do_agent_capabilities_cb;
> +    rpc_data->mon_cb = NULL;
> +    rpc_data->mon_data = NULL;
> +
> +    ret = rpc_execute(&env, "system.listMethods", params, rpc_data);
> +    if (ret == -EREMOTE) {
> +        LOG("RPC Failed (%i): %s\n", env.fault_code,
> +            env.fault_string);
> +        return -1;
> +    } else if (ret == -1) {
> +        LOG("RPC communication error\n");
> +        return -1;
> +    }

One of many examples that would have benefited from having a utility
function doing most of the work here.

Cheers,
Jes



reply via email to

[Prev in Thread] Current Thread [Next in Thread]