Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx>
---
hw/xen_machine_pv.c | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/hw/xen_machine_pv.c b/hw/xen_machine_pv.c
index 851837c..9f18742 100644
--- a/hw/xen_machine_pv.c
+++ b/hw/xen_machine_pv.c
@@ -24,6 +24,7 @@
#include "hw.h"
#include "boards.h"
+#include "console.h"
#include "xen_backend.h"
@@ -110,6 +111,29 @@ static int xen_init_pv(DisplayState *ds)
return 0;
}
+static void xen_init_vnc(void)
+{
+ char xspath[256], *dom = NULL, *vm = NULL, *pw = NULL;
+ int len;
+
+ dom = xs_get_domain_path(xenstore, xen_domid);
+ snprintf(xspath, sizeof(xspath), "%s/vm", dom);
+ vm = xs_read(xenstore, 0, xspath, &len);
+ if (!vm)
+ goto out;
+ snprintf(xspath, sizeof(xspath), "%s/vncpassword", vm);
+ pw = xs_read(xenstore, 0, xspath, &len);
+ if (!pw || !strlen(pw))
+ goto out;
+ vnc_display_password(NULL, pw);
+ fprintf(stderr, "vnc password set from xenstore\n");
+
+out:
+ free(dom);
+ free(vm);
+ free(pw);
+}
+
/* -------------------------------------------------------------------- */
/* paravirtualized xen machine */
@@ -136,6 +160,8 @@ static void xenpv_init(ram_addr_t ram_size, int
vga_ram_size,
goto err;
}
+ xen_init_vnc();
+
/* create dummy cpu, halted */
if (cpu_model == NULL) {
#ifdef TARGET_X86_64
--
1.5.5.1
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|