Hi all,
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>
---
diff --git a/tools/libxl/libxl_utils.c b/tools/libxl/libxl_utils.c
index c7b34fa..5048fd0 100644
--- a/tools/libxl/libxl_utils.c
+++ b/tools/libxl/libxl_utils.c
@@ -53,18 +53,26 @@ int libxl_name_to_domid(struct libxl_ctx *ctx, char *name,
uint32_t *domid)
{
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-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|