[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] libxenlight: fix name to domid conversion



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1258126224 0
# Node ID d714386b668fd4082f708ee1e417719901a095eb
# Parent  accded2f185f4178f875b170a5c01544648a68d2
libxenlight: fix name to domid conversion

This patch makes sure that the domain name to domid conversion is
correct, cross referencing the information found on xenstore with the
list of running domains.

Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
---
 tools/libxl/libxl_utils.c |   18 +++++++++++++-----
 1 files changed, 13 insertions(+), 5 deletions(-)

diff -r accded2f185f -r d714386b668f tools/libxl/libxl_utils.c
--- a/tools/libxl/libxl_utils.c Thu Nov 12 13:15:40 2009 +0000
+++ b/tools/libxl/libxl_utils.c Fri Nov 13 15:30:24 2009 +0000
@@ -53,18 +53,26 @@ int libxl_name_to_domid(struct libxl_ctx
 {
     unsigned int num, len;
     char path[strlen("/local/domain") + 12];
-    int i;
+    int i, j, nb_domains;
     char *domname, **l;
+    struct libxl_dominfo *dominfo;
+
+    dominfo = libxl_domain_list(ctx, &nb_domains);
 
     l = xs_directory(ctx->xsh, XBT_NULL, "/local/domain", &num);
     for (i = 0; i < num; i++) {
         snprintf(path, sizeof(path), "/local/domain/%s/name", l[i]);
         domname = xs_read(ctx->xsh, XBT_NULL, path, &len);
         if (domname != NULL && !strncmp(domname, name, len)) {
-            *domid = atoi(l[i]);
-            free(l);
-            free(domname);
-            return 0;
+            int domid_i = atoi(l[i]);
+            for (j = 0; j < nb_domains; j++) {
+                if (dominfo[j].domid == domid_i) {
+                    *domid = domid_i;
+                    free(l);
+                    free(domname);
+                    return 0;
+                }
+            }
         }
         free(domname);
     }

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.