This is just a helper function that takes in an offset value,
encodes it into XDR and sends to client.
Signed-off-by: Michal Privoznik <mprivozn(a)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 66f9383..18d3f2d 100644
--- a/src/libvirt_remote.syms
+++ b/src/libvirt_remote.syms
@@ -168,6 +168,7 @@ virNetServerProgramNew;
virNetServerProgramSendReplyError;
virNetServerProgramSendStreamData;
virNetServerProgramSendStreamError;
+virNetServerProgramSendStreamSkip;
virNetServerProgramUnknownError;
diff --git a/src/rpc/virnetserverprogram.c b/src/rpc/virnetserverprogram.c
index d1597f4..fbdb179 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 offset)
+{
+ virNetStreamSkip data;
+
+ VIR_DEBUG("client=%p msg=%p offset=%llu", client, msg, offset);
+
+ memset(&data, 0, sizeof(data));
+ data.offset = offset;
+
+ 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..545aa3d 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 offset);
+
#endif /* __VIR_NET_SERVER_PROGRAM_H__ */
--
2.8.1