[libvirt] [PATCH v2 22/38] daemon: Introduce virNetServerProgramSendStreamSkip

John Ferlan jferlan at redhat.com
Fri May 5 15:26:10 UTC 2017



On 04/20/2017 06:01 AM, Michal Privoznik wrote:
> This is just a helper function that takes in a length value,
> encodes it into XDR and sends to client.

would be adjusted w/ @flags arg....

> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  src/libvirt_remote.syms       |  1 +
>  src/rpc/virnetserverprogram.c | 33 +++++++++++++++++++++++++++++++++
>  src/rpc/virnetserverprogram.h |  7 +++++++
>  3 files changed, 41 insertions(+)
> 
> diff --git a/src/libvirt_remote.syms b/src/libvirt_remote.syms
> index ca1f3ac..29dceab 100644
> --- a/src/libvirt_remote.syms
> +++ b/src/libvirt_remote.syms
> @@ -178,6 +178,7 @@ virNetServerProgramNew;
>  virNetServerProgramSendReplyError;
>  virNetServerProgramSendStreamData;
>  virNetServerProgramSendStreamError;
> +virNetServerProgramSendStreamSkip;
>  virNetServerProgramUnknownError;
>  
>  
> diff --git a/src/rpc/virnetserverprogram.c b/src/rpc/virnetserverprogram.c
> index d1597f4..6d84056 100644
> --- a/src/rpc/virnetserverprogram.c
> +++ b/src/rpc/virnetserverprogram.c
> @@ -548,6 +548,39 @@ int virNetServerProgramSendStreamData(virNetServerProgramPtr prog,
>  }
>  
>  
> +int virNetServerProgramSendStreamSkip(virNetServerProgramPtr prog,
> +                                      virNetServerClientPtr client,
> +                                      virNetMessagePtr msg,
> +                                      int procedure,
> +                                      unsigned int serial,
> +                                      unsigned long long length)

Doesn't follow the newer style

int
vir...(args...)


Of course now it starts dawning on me... if the functions change to
SetSkip and GetSkip - then I'd assume that has impact for the RPC
nomenclature too. Of course seeing "SetSkip" in a name for RPC would
make things even more clear (unless of course you're the one that's been
working on this code for a long time and already have the names burned
into your memory).

Will need a flags argument too for @data...


John

> +{
> +    virNetStreamSkip data;
> +
> +    VIR_DEBUG("client=%p msg=%p length=%llu", client, msg, length);
> +
> +    memset(&data, 0, sizeof(data));
> +    data.length = length;
> +
> +    msg->header.prog = prog->program;
> +    msg->header.vers = prog->version;
> +    msg->header.proc = procedure;
> +    msg->header.type = VIR_NET_STREAM_SKIP;
> +    msg->header.serial = serial;
> +    msg->header.status = VIR_NET_CONTINUE;
> +
> +    if (virNetMessageEncodeHeader(msg) < 0)
> +        return -1;
> +
> +    if (virNetMessageEncodePayload(msg,
> +                                   (xdrproc_t) xdr_virNetStreamSkip,
> +                                   &data) < 0)
> +        return -1;
> +
> +    return virNetServerClientSendMessage(client, msg);
> +}
> +
> +
>  void virNetServerProgramDispose(void *obj ATTRIBUTE_UNUSED)
>  {
>  }
> diff --git a/src/rpc/virnetserverprogram.h b/src/rpc/virnetserverprogram.h
> index 531fca0..eba2168 100644
> --- a/src/rpc/virnetserverprogram.h
> +++ b/src/rpc/virnetserverprogram.h
> @@ -104,4 +104,11 @@ int virNetServerProgramSendStreamData(virNetServerProgramPtr prog,
>                                        const char *data,
>                                        size_t len);
>  
> +int virNetServerProgramSendStreamSkip(virNetServerProgramPtr prog,
> +                                      virNetServerClientPtr client,
> +                                      virNetMessagePtr msg,
> +                                      int procedure,
> +                                      unsigned int serial,
> +                                      unsigned long long length);
> +
>  #endif /* __VIR_NET_SERVER_PROGRAM_H__ */
> 




More information about the libvir-list mailing list