aboutsummaryrefslogtreecommitdiff
path: root/monitor.c
diff options
context:
space:
mode:
authoraliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>2008-12-10 15:14:13 +0000
committeraliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>2008-12-10 15:14:13 +0000
commit2569da0cb64506ea05323544c26f3aaffbf3f9fe (patch)
tree3f528dbcb602173726e67b19b97c6c91e97b28a0 /monitor.c
parent2a7e8dda090af586f3d0b3d157054a9e18776a52 (diff)
Accept password as an argument to 'change vnc password' monitor command (Chris Webb)
This allows easier use of the change vnc password monitor command from management scripts, without having to implement expect(1)-like behaviour. Signed-off-by: Chris Webb <chris@arachsys.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5967 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'monitor.c')
-rw-r--r--monitor.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/monitor.c b/monitor.c
index bec9211b21..0d55433172 100644
--- a/monitor.c
+++ b/monitor.c
@@ -429,12 +429,16 @@ static void do_change_block(const char *device, const char *filename, const char
qemu_key_check(bs, filename);
}
-static void do_change_vnc(const char *target)
+static void do_change_vnc(const char *target, const char *arg)
{
if (strcmp(target, "passwd") == 0 ||
strcmp(target, "password") == 0) {
char password[9];
- monitor_readline("Password: ", 1, password, sizeof(password));
+ if (arg) {
+ strncpy(password, arg, sizeof(password));
+ password[sizeof(password) - 1] = '\0';
+ } else
+ monitor_readline("Password: ", 1, password, sizeof(password));
if (vnc_display_password(NULL, password) < 0)
term_printf("could not set VNC server password\n");
} else {
@@ -443,12 +447,12 @@ static void do_change_vnc(const char *target)
}
}
-static void do_change(const char *device, const char *target, const char *fmt)
+static void do_change(const char *device, const char *target, const char *arg)
{
if (strcmp(device, "vnc") == 0) {
- do_change_vnc(target);
+ do_change_vnc(target, arg);
} else {
- do_change_block(device, target, fmt);
+ do_change_block(device, target, arg);
}
}