summary refs log tree commit diff stats
path: root/monitor.c
diff options
context:
space:
mode:
Diffstat (limited to 'monitor.c')
-rw-r--r--monitor.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/monitor.c b/monitor.c
index 65668fda0f..3b9408b557 100644
--- a/monitor.c
+++ b/monitor.c
@@ -403,8 +403,17 @@ static void do_change_block(const char *device, const char *filename)
 
 static void do_change_vnc(const char *target)
 {
-    if (vnc_display_open(NULL, target) < 0)
-	term_printf("could not start VNC server on %s\n", target);
+    if (strcmp(target, "passwd") == 0 ||
+	strcmp(target, "password") == 0) {
+	char password[9];
+	monitor_readline("Password: ", 1, password, sizeof(password)-1);
+	password[sizeof(password)-1] = '\0';
+	if (vnc_display_password(NULL, password) < 0)
+	    term_printf("could not set VNC server password\n");
+    } else {
+	if (vnc_display_open(NULL, target) < 0)
+	    term_printf("could not start VNC server on %s\n", target);
+    }
 }
 
 static void do_change(const char *device, const char *target)