From: Michal Privoznik Date: Fri, 20 May 2016 13:28:42 +0000 (+0200) Subject: remote: Implement virStreamRecvHole X-Git-Tag: v3.4.0-rc1~75 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d6e5347ce33381c0c1c3d7b52e2e724d347018d6;p=thirdparty%2Flibvirt.git remote: Implement virStreamRecvHole Signed-off-by: Michal Privoznik --- diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index 63daec5875..dc59034c3b 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -5715,6 +5715,36 @@ remoteStreamSendHole(virStreamPtr st, } +static int +remoteStreamRecvHole(virStreamPtr st, + long long *length, + unsigned int flags) +{ + struct private_data *priv = st->conn->privateData; + virNetClientStreamPtr privst = st->privateData; + int rv; + + VIR_DEBUG("st=%p length=%p flags=%x", + st, length, flags); + + virCheckFlags(0, -1); + + if (virNetClientStreamRaiseError(privst)) + return -1; + + remoteDriverLock(priv); + priv->localUses++; + remoteDriverUnlock(priv); + + rv = virNetClientStreamRecvHole(priv->client, privst, length); + + remoteDriverLock(priv); + priv->localUses--; + remoteDriverUnlock(priv); + return rv; +} + + struct remoteStreamCallbackData { virStreamPtr st; virStreamEventCallback cb; @@ -5890,6 +5920,7 @@ static virStreamDriver remoteStreamDrv = { .streamRecvFlags = remoteStreamRecvFlags, .streamSend = remoteStreamSend, .streamSendHole = remoteStreamSendHole, + .streamRecvHole = remoteStreamRecvHole, .streamFinish = remoteStreamFinish, .streamAbort = remoteStreamAbort, .streamEventAddCallback = remoteStreamEventAddCallback,