[libvirt] [PATCH v2 10/38] Implement virStreamRecvFlags to some drivers

Michal Privoznik posted 38 patches 8 years, 9 months ago
There is a newer version of this series
[libvirt] [PATCH v2 10/38] Implement virStreamRecvFlags to some drivers
Posted by Michal Privoznik 8 years, 9 months ago
We have three virStreamDriver-s currently in our tree.
virFDStream, remote driver and ESX driver.f or now, support for
remote driver and ESX driver is sufficient, because
implementation for virFDStream is going to be supplied later as
it needs to be slightly different.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
 src/esx/esx_stream.c       | 16 +++++++++++++++-
 src/remote/remote_driver.c | 21 +++++++++++++++++----
 2 files changed, 32 insertions(+), 5 deletions(-)

diff --git a/src/esx/esx_stream.c b/src/esx/esx_stream.c
index fb9abbc..b820b38 100644
--- a/src/esx/esx_stream.c
+++ b/src/esx/esx_stream.c
@@ -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 */
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index 1242bd6..718e322 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -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,
-- 
2.10.2

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v2 10/38] Implement virStreamRecvFlags to some drivers
Posted by John Ferlan 8 years, 9 months ago

On 04/20/2017 06:01 AM, Michal Privoznik wrote:
> We have three virStreamDriver-s currently in our tree.
> virFDStream, remote driver and ESX driver.f or now, support for
> remote driver and ESX driver is sufficient, because
> implementation for virFDStream is going to be supplied later as
> it needs to be slightly different.
> 

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       | 16 +++++++++++++++-
>  src/remote/remote_driver.c | 21 +++++++++++++++++----
>  2 files changed, 32 insertions(+), 5 deletions(-)
> 

ACK w/ commit message cleanup.

John

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list