]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Implement virStreamRecvFlags to some drivers
authorMichal Privoznik <mprivozn@redhat.com>
Thu, 19 May 2016 15:34:23 +0000 (17:34 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 18 May 2017 05:42:13 +0000 (07:42 +0200)
There are three virStreamDriver's currently supported:

 * virFDStream
 * remote driver
 * ESX driver

For now, backend virStreamRecvFlags support for only remote driver and
ESX driver is sufficient. Future patches will update virFDStream.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
src/esx/esx_stream.c
src/remote/remote_driver.c

index fb9abbca62ad1aca30d72945c9a910a03688ee01..b820b38ee24b5194eac25246a46741f3f5d16f6e 100644 (file)
@@ -252,12 +252,17 @@ esxStreamSend(virStreamPtr stream, const char *data, size_t nbytes)
 }
 
 static int
-esxStreamRecv(virStreamPtr stream, char *data, size_t nbytes)
+esxStreamRecvFlags(virStreamPtr stream,
+                   char *data,
+                   size_t nbytes,
+                   unsigned int flags)
 {
     int result = -1;
     esxStreamPrivate *priv = stream->privateData;
     int status;
 
+    virCheckFlags(0, -1);
+
     if (nbytes == 0)
         return 0;
 
@@ -317,6 +322,14 @@ esxStreamRecv(virStreamPtr stream, char *data, size_t nbytes)
     return result;
 }
 
+static int
+esxStreamRecv(virStreamPtr stream,
+              char *data,
+              size_t nbytes)
+{
+    return esxStreamRecvFlags(stream, data, nbytes, 0);
+}
+
 static void
 esxFreeStreamPrivate(esxStreamPrivate **priv)
 {
@@ -369,6 +382,7 @@ esxStreamAbort(virStreamPtr stream)
 virStreamDriver esxStreamDriver = {
     .streamSend = esxStreamSend,
     .streamRecv = esxStreamRecv,
+    .streamRecvFlags = esxStreamRecvFlags,
     /* FIXME: streamAddCallback missing */
     /* FIXME: streamUpdateCallback missing */
     /* FIXME: streamRemoveCallback missing */
index 77250ea562e6c70892d31833fe23879b25128c6a..e79e796f22243dbc5d6d871c32f56336c584fc98 100644 (file)
@@ -5641,15 +5641,19 @@ remoteStreamSend(virStreamPtr st,
 
 
 static int
-remoteStreamRecv(virStreamPtr st,
-                 char *data,
-                 size_t nbytes)
+remoteStreamRecvFlags(virStreamPtr st,
+                      char *data,
+                      size_t nbytes,
+                      unsigned int flags)
 {
-    VIR_DEBUG("st=%p data=%p nbytes=%zu", st, data, nbytes);
+    VIR_DEBUG("st=%p data=%p nbytes=%zu flags=%x",
+              st, data, nbytes, flags);
     struct private_data *priv = st->conn->privateData;
     virNetClientStreamPtr privst = st->privateData;
     int rv;
 
+    virCheckFlags(0, -1);
+
     if (virNetClientStreamRaiseError(privst))
         return -1;
 
@@ -5671,6 +5675,14 @@ remoteStreamRecv(virStreamPtr st,
     return rv;
 }
 
+static int
+remoteStreamRecv(virStreamPtr st,
+                 char *data,
+                 size_t nbytes)
+{
+    return remoteStreamRecvFlags(st, data, nbytes, 0);
+}
+
 struct remoteStreamCallbackData {
     virStreamPtr st;
     virStreamEventCallback cb;
@@ -5843,6 +5855,7 @@ remoteStreamAbort(virStreamPtr st)
 
 static virStreamDriver remoteStreamDrv = {
     .streamRecv = remoteStreamRecv,
+    .streamRecvFlags = remoteStreamRecvFlags,
     .streamSend = remoteStreamSend,
     .streamFinish = remoteStreamFinish,
     .streamAbort = remoteStreamAbort,