]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
daemon: Introduce virNetServerProgramSendStreamHole
authorMichal Privoznik <mprivozn@redhat.com>
Mon, 11 Apr 2016 09:44:42 +0000 (11:44 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 18 May 2017 05:42:13 +0000 (07:42 +0200)
This is just a helper function that takes in a length value,
encodes it into XDR and sends to client.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
src/libvirt_remote.syms
src/rpc/virnetserverprogram.c
src/rpc/virnetserverprogram.h

index ca1f3ac8641d9494ec96831e1f55f836c864254a..bb6a8d46576b9aa8d3849d51f3525246f4715b28 100644 (file)
@@ -178,6 +178,7 @@ virNetServerProgramNew;
 virNetServerProgramSendReplyError;
 virNetServerProgramSendStreamData;
 virNetServerProgramSendStreamError;
+virNetServerProgramSendStreamHole;
 virNetServerProgramUnknownError;
 
 
index d1597f43813e4bb02c145859024f577d7ff313db..556c91605f90c92acc1c8570188b01e9153d3074 100644 (file)
@@ -548,6 +548,41 @@ int virNetServerProgramSendStreamData(virNetServerProgramPtr prog,
 }
 
 
+int virNetServerProgramSendStreamHole(virNetServerProgramPtr prog,
+                                      virNetServerClientPtr client,
+                                      virNetMessagePtr msg,
+                                      int procedure,
+                                      unsigned int serial,
+                                      long long length,
+                                      unsigned int flags)
+{
+    virNetStreamHole data;
+
+    VIR_DEBUG("client=%p msg=%p length=%lld", client, msg, length);
+
+    memset(&data, 0, sizeof(data));
+    data.length = length;
+    data.flags = flags;
+
+    msg->header.prog = prog->program;
+    msg->header.vers = prog->version;
+    msg->header.proc = procedure;
+    msg->header.type = VIR_NET_STREAM_HOLE;
+    msg->header.serial = serial;
+    msg->header.status = VIR_NET_CONTINUE;
+
+    if (virNetMessageEncodeHeader(msg) < 0)
+        return -1;
+
+    if (virNetMessageEncodePayload(msg,
+                                   (xdrproc_t) xdr_virNetStreamHole,
+                                   &data) < 0)
+        return -1;
+
+    return virNetServerClientSendMessage(client, msg);
+}
+
+
 void virNetServerProgramDispose(void *obj ATTRIBUTE_UNUSED)
 {
 }
index 531fca0246aa8743cba29628a8b3962b89703665..1731c9e1d14cfb3d929e7ed776b4897f2a19d5ce 100644 (file)
@@ -104,4 +104,12 @@ int virNetServerProgramSendStreamData(virNetServerProgramPtr prog,
                                       const char *data,
                                       size_t len);
 
+int virNetServerProgramSendStreamHole(virNetServerProgramPtr prog,
+                                      virNetServerClientPtr client,
+                                      virNetMessagePtr msg,
+                                      int procedure,
+                                      unsigned int serial,
+                                      long long length,
+                                      unsigned int flags);
+
 #endif /* __VIR_NET_SERVER_PROGRAM_H__ */