WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] libxl: remove xs_writev function

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] libxl: remove xs_writev function
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 14 Oct 2010 21:20:23 -0700
Delivery-date: Thu, 14 Oct 2010 21:21:38 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1286967244 -3600
# Node ID 606b0eb2caa7ebe328ab4d2252086274cf917b46
# Parent  6eaab829768109e57f31a141efa9d06689e64670
libxl: remove xs_writev function

It isn't actually being used to write a vector at the only callsite
and can easily be implemented using xs_write.

Furthermore the old implementation used to leak both the key and value
strings.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
committer: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
---
 tools/libxl/libxl.c          |   30 +++++++++++++++++-------------
 tools/libxl/libxl_internal.h |    2 --
 tools/libxl/libxl_xshelp.c   |   20 --------------------
 3 files changed, 17 insertions(+), 35 deletions(-)

diff -r 6eaab8297681 -r 606b0eb2caa7 tools/libxl/libxl.c
--- a/tools/libxl/libxl.c       Wed Oct 13 11:45:26 2010 +0100
+++ b/tools/libxl/libxl.c       Wed Oct 13 11:54:04 2010 +0100
@@ -1409,22 +1409,26 @@ static void dm_xenstore_record_pid(void 
 static void dm_xenstore_record_pid(void *for_spawn, pid_t innerchild)
 {
     libxl_device_model_starting *starting = for_spawn;
-    char *kvs[3];
-    int rc;
     struct xs_handle *xsh;
-
+    char *path = NULL, *pid = NULL;
+    int len;
+
+    if (asprintf(&path, "%s/%s", starting->dom_path, "image/device-model-pid") 
< 0)
+        goto out;
+
+    len = asprintf(&pid, "%d", innerchild);
+    if (len < 0)
+        goto out;
+
+    /* we mustn't use the parent's handle in the child */
     xsh = xs_daemon_open();
-    /* we mustn't use the parent's handle in the child */
-
-    kvs[0] = "image/device-model-pid";
-    if (asprintf(&kvs[1], "%d", innerchild) < 0)
-        return;
-    kvs[2] = NULL;
-
-    rc = xs_writev(xsh, XBT_NULL, starting->dom_path, kvs);
-    if (rc)
-        return;
+
+    xs_write(xsh, XBT_NULL, path, pid, len);
+
     xs_daemon_close(xsh);
+out:
+    free(path);
+    free(pid);
 }
 
 static int libxl_vfb_and_vkb_from_device_model_info(libxl_ctx *ctx,
diff -r 6eaab8297681 -r 606b0eb2caa7 tools/libxl/libxl_internal.h
--- a/tools/libxl/libxl_internal.h      Wed Oct 13 11:45:26 2010 +0100
+++ b/tools/libxl/libxl_internal.h      Wed Oct 13 11:54:04 2010 +0100
@@ -108,8 +108,6 @@ typedef struct {
 #define PCI_BAR_IO             0x01
 
 #define PRINTF_ATTRIBUTE(x, y) __attribute__((format(printf, x, y)))
-
-_hidden int xs_writev(struct xs_handle *xsh, xs_transaction_t t, char *dir, 
char *kvs[]);
 
 typedef struct {
     /* mini-GC */
diff -r 6eaab8297681 -r 606b0eb2caa7 tools/libxl/libxl_xshelp.c
--- a/tools/libxl/libxl_xshelp.c        Wed Oct 13 11:45:26 2010 +0100
+++ b/tools/libxl/libxl_xshelp.c        Wed Oct 13 11:54:04 2010 +0100
@@ -23,26 +23,6 @@
 
 #include "libxl.h"
 #include "libxl_internal.h"
-
-int xs_writev(struct xs_handle *xsh, xs_transaction_t t, char *dir, char 
*kvs[])
-{
-    char *path;
-    int i;
-
-    if (!kvs)
-        return 0;
-
-    for (i = 0; kvs[i] != NULL; i += 2) {
-        if (asprintf(&path, "%s/%s", dir, kvs[i]) < 0)
-            return -1;
-        if (path && kvs[i + 1]) {
-            int length = strlen(kvs[i + 1]);
-            xs_write(xsh, t, path, kvs[i + 1], length);
-        }
-        free(path);
-    }
-    return 0;
-}
 
 char **libxl__xs_kvs_of_flexarray(libxl__gc *gc, flexarray_t *array, int 
length)
 {

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] libxl: remove xs_writev function, Xen patchbot-unstable <=