From 57760ec1e2293d9b0682fbf1b4fdfb093984ac76 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Fri, 20 May 2016 15:28:29 +0200 Subject: [PATCH] Introduce virNetClientStreamRecvHole This function will fetch previously processed stream holes and return their sum. Signed-off-by: Michal Privoznik --- src/libvirt_remote.syms | 1 + src/rpc/virnetclientstream.c | 17 +++++++++++++++++ src/rpc/virnetclientstream.h | 4 ++++ 3 files changed, 22 insertions(+) diff --git a/src/libvirt_remote.syms b/src/libvirt_remote.syms index 186d2c622b..61c20d530b 100644 --- a/src/libvirt_remote.syms +++ b/src/libvirt_remote.syms @@ -52,6 +52,7 @@ virNetClientStreamMatches; virNetClientStreamNew; virNetClientStreamQueuePacket; virNetClientStreamRaiseError; +virNetClientStreamRecvHole; virNetClientStreamRecvPacket; virNetClientStreamSendHole; virNetClientStreamSendPacket; diff --git a/src/rpc/virnetclientstream.c b/src/rpc/virnetclientstream.c index 91df5d483b..53378ff997 100644 --- a/src/rpc/virnetclientstream.c +++ b/src/rpc/virnetclientstream.c @@ -584,6 +584,23 @@ virNetClientStreamSendHole(virNetClientStreamPtr st, } +int +virNetClientStreamRecvHole(virNetClientPtr client ATTRIBUTE_UNUSED, + virNetClientStreamPtr st, + long long *length) +{ + if (!st->allowSkip) { + virReportError(VIR_ERR_OPERATION_INVALID, "%s", + _("Holes are not supported with this stream")); + return -1; + } + + *length = st->holeLength; + st->holeLength = 0; + return 0; +} + + int virNetClientStreamEventAddCallback(virNetClientStreamPtr st, int events, virNetClientStreamEventCallback cb, diff --git a/src/rpc/virnetclientstream.h b/src/rpc/virnetclientstream.h index 1774e5ac3c..c4e01bf1ca 100644 --- a/src/rpc/virnetclientstream.h +++ b/src/rpc/virnetclientstream.h @@ -67,6 +67,10 @@ int virNetClientStreamSendHole(virNetClientStreamPtr st, long long length, unsigned int flags); +int virNetClientStreamRecvHole(virNetClientPtr client, + virNetClientStreamPtr st, + long long *length); + int virNetClientStreamEventAddCallback(virNetClientStreamPtr st, int events, virNetClientStreamEventCallback cb,