]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Split virNetClientSend into 2 methods
authorDaniel P. Berrange <berrange@redhat.com>
Fri, 11 Nov 2011 15:42:46 +0000 (15:42 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Wed, 16 Nov 2011 10:48:46 +0000 (10:48 +0000)
Stop multiplexing virNetClientSend for two different purposes,
instead add virNetClientSendWithReply and virNetClientSendNoReply

* src/rpc/virnetclient.c, src/rpc/virnetclient.h: Replace
  virNetClientSend with virNetClientSendWithReply and
  virNetClientSendNoReply
* src/rpc/virnetclientprogram.c, src/rpc/virnetclientstream.c:
  Update for new API names

src/rpc/virnetclient.c
src/rpc/virnetclient.h
src/rpc/virnetclientprogram.c
src/rpc/virnetclientstream.c

index 68e1d501c32bd3625b3e89207e5c12f40467284a..95632cb03bbc80bfe8e27b7ee544e423f30de1c7 100644 (file)
@@ -1337,9 +1337,9 @@ done:
 }
 
 
-int virNetClientSend(virNetClientPtr client,
-                     virNetMessagePtr msg,
-                     bool expectReply)
+static int virNetClientSendInternal(virNetClientPtr client,
+                                    virNetMessagePtr msg,
+                                    bool expectReply)
 {
     virNetClientCallPtr call;
     int ret = -1;
@@ -1387,3 +1387,42 @@ cleanup:
     virNetClientUnlock(client);
     return ret;
 }
+
+/*
+ * @msg: a message allocated on heap or stack
+ *
+ * Send a message synchronously, and wait for the reply synchronously
+ *
+ * The caller is responsible for free'ing @msg if it was allocated
+ * on the heap
+ *
+ * Returns 0 on success, -1 on failure
+ */
+int virNetClientSendWithReply(virNetClientPtr client,
+                              virNetMessagePtr msg)
+{
+    int ret = virNetClientSendInternal(client, msg, true);
+    if (ret < 0)
+        return -1;
+    return 0;
+}
+
+
+/*
+ * @msg: a message allocated on heap or stack
+ *
+ * Send a message synchronously, without any reply
+ *
+ * The caller is responsible for free'ing @msg if it was allocated
+ * on the heap
+ *
+ * Returns 0 on success, -1 on failure
+ */
+int virNetClientSendNoReply(virNetClientPtr client,
+                            virNetMessagePtr msg)
+{
+    int ret = virNetClientSendInternal(client, msg, false);
+    if (ret < 0)
+        return -1;
+    return 0;
+}
index fb679e897318c948b0ebb8af8a1e604ac52210f0..eef3eb3bce694f399d45da8648848207de5b8dbe 100644 (file)
@@ -67,9 +67,11 @@ int virNetClientAddStream(virNetClientPtr client,
 void virNetClientRemoveStream(virNetClientPtr client,
                               virNetClientStreamPtr st);
 
-int virNetClientSend(virNetClientPtr client,
-                     virNetMessagePtr msg,
-                     bool expectReply);
+int virNetClientSendWithReply(virNetClientPtr client,
+                              virNetMessagePtr msg);
+
+int virNetClientSendNoReply(virNetClientPtr client,
+                            virNetMessagePtr msg);
 
 # ifdef HAVE_SASL
 void virNetClientSetSASLSession(virNetClientPtr client,
index 36e23841e1021822179310afcf797be70f651231..e1e88462f519997733898ca80085a5fcf478d811 100644 (file)
@@ -327,7 +327,7 @@ int virNetClientProgramCall(virNetClientProgramPtr prog,
     if (virNetMessageEncodePayload(msg, args_filter, args) < 0)
         goto error;
 
-    if (virNetClientSend(client, msg, true) < 0)
+    if (virNetClientSendWithReply(client, msg) < 0)
         goto error;
 
     /* None of these 3 should ever happen here, because
index 7e2d9aeff0f6851e940537d7040aa3e241ab2c25..a4292e77a4bbbabed6b118c9c5b846b53b804c5c 100644 (file)
@@ -328,7 +328,6 @@ int virNetClientStreamSendPacket(virNetClientStreamPtr st,
                                  size_t nbytes)
 {
     virNetMessagePtr msg;
-    bool wantReply;
     VIR_DEBUG("st=%p status=%d data=%p nbytes=%zu", st, status, data, nbytes);
 
     if (!(msg = virNetMessageNew(false)))
@@ -354,15 +353,17 @@ int virNetClientStreamSendPacket(virNetClientStreamPtr st,
     if (status == VIR_NET_CONTINUE) {
         if (virNetMessageEncodePayloadRaw(msg, data, nbytes) < 0)
             goto error;
-        wantReply = false;
+
+        if (virNetClientSendNoReply(client, msg) < 0)
+            goto error;
     } else {
         if (virNetMessageEncodePayloadRaw(msg, NULL, 0) < 0)
             goto error;
-        wantReply = true;
+
+        if (virNetClientSendWithReply(client, msg) < 0)
+            goto error;
     }
 
-    if (virNetClientSend(client, msg, wantReply) < 0)
-        goto error;
 
     virNetMessageFree(msg);
 
@@ -407,7 +408,7 @@ int virNetClientStreamRecvPacket(virNetClientStreamPtr st,
 
         VIR_DEBUG("Dummy packet to wait for stream data");
         virMutexUnlock(&st->lock);
-        ret = virNetClientSend(client, msg, true);
+        ret = virNetClientSendWithReply(client, msg);
         virMutexLock(&st->lock);
         virNetMessageFree(msg);