From 2569da0cb64506ea05323544c26f3aaffbf3f9fe Mon Sep 17 00:00:00 2001 From: aliguori Date: Wed, 10 Dec 2008 15:14:13 +0000 Subject: [PATCH] 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 Signed-off-by: Anthony Liguori git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5967 c046a42c-6fe2-441c-8c8c-71466251a162 --- monitor.c | 14 +++++++++----- qemu-doc.texi | 8 ++++---- 2 files changed, 13 insertions(+), 9 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); } } diff --git a/qemu-doc.texi b/qemu-doc.texi index 77170d3ad6..377e384f22 100644 --- a/qemu-doc.texi +++ b/qemu-doc.texi @@ -1241,11 +1241,11 @@ and @var{options} are described at @ref{sec_invocation}. eg (qemu) change vnc localhost:1 @end example -@item change vnc password +@item change vnc password [@var{password}] -Change the password associated with the VNC server. The monitor will prompt for -the new password to be entered. VNC passwords are only significant upto 8 letters. -eg. +Change the password associated with the VNC server. If the new password is not +supplied, the monitor will prompt for it to be entered. VNC passwords are only +significant up to 8 letters. eg @example (qemu) change vnc password