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

[Xen-devel] [PATCH 12/13] set vnc password from xenstore.



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


 


Rackspace

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