From 8ef9637328bbdb884413fa016e0c3891b20db94e Mon Sep 17 00:00:00 2001 From: Luiz Capitulino Date: Mon, 29 Mar 2010 16:14:51 -0300 Subject: [PATCH 16/23] Monitor: Convert to mon_set_password() to cmd_new_ret() RH-Author: Luiz Capitulino Message-id: <1269879298-30711-17-git-send-email-lcapitulino@redhat.com> Patchwork-id: 8179 O-Subject: [PATCH 16/23] Monitor: Convert to mon_set_password() to cmd_new_ret() Bugzilla: 563491 RH-Acked-by: Markus Armbruster RH-Acked-by: Juan Quintela RH-Acked-by: Kevin Wolf Note that this command is a RHEL6 extension. Signed-off-by: Luiz Capitulino --- qemu-monitor.hx | 2 +- qemu-spice.h | 2 +- spice.c | 17 +++++++++++------ 3 files changed, 13 insertions(+), 8 deletions(-) Signed-off-by: Eduardo Habkost --- qemu-monitor.hx | 2 +- qemu-spice.h | 2 +- spice.c | 17 +++++++++++------ 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/qemu-monitor.hx b/qemu-monitor.hx index fa6ec11..da6793e 100644 --- a/qemu-monitor.hx +++ b/qemu-monitor.hx @@ -1100,7 +1100,7 @@ ETEXI .params = "protocol password expiration action-if-connected", .help = "set spice/vnc password", .user_print = monitor_user_noop, - .mhandler.cmd_new = mon_set_password, + .cmd_new_ret = mon_set_password, }, #endif diff --git a/qemu-spice.h b/qemu-spice.h index d55263a..56e3d70 100644 --- a/qemu-spice.h +++ b/qemu-spice.h @@ -26,7 +26,7 @@ void qemu_spice_remove_interface(struct VDInterface *interface); void qemu_spice_migrate_start(void); void qemu_spice_migrate_end(int completed); -void mon_set_password(Monitor *mon, const QDict *qdict, QObject **ret_data); +int mon_set_password(Monitor *mon, const QDict *qdict, QObject **ret_data); void mon_spice_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data); #else /* CONFIG_SPICE */ diff --git a/spice.c b/spice.c index 410a8fb..8bc7e5b 100644 --- a/spice.c +++ b/spice.c @@ -274,7 +274,7 @@ QemuOptsList qemu_spice_opts = { }, }; -void mon_set_password(Monitor *mon, const QDict *qdict, QObject **ret_data) +int mon_set_password(Monitor *mon, const QDict *qdict, QObject **ret_data) { const char *protocol = qdict_get_str(qdict, "protocol"); const char *password = qdict_get_str(qdict, "password"); @@ -293,7 +293,7 @@ void mon_set_password(Monitor *mon, const QDict *qdict, QObject **ret_data) /* nothing */ } else { qemu_error_new(QERR_INVALID_PARAMETER, "connected"); - return; + return -1; } } @@ -301,28 +301,33 @@ void mon_set_password(Monitor *mon, const QDict *qdict, QObject **ret_data) if (!s) { /* correct one? spice isn't a device ,,, */ qemu_error_new(QERR_DEVICE_NOT_ACTIVE, "spice"); - return; + return -1; } rc = spice_server_set_ticket(s, password, lifetime, fail_if_connected, disconnect_if_connected); if (rc != 0) { qemu_error_new(QERR_SET_PASSWD_FAILED); - return; + return -1; } } else if (strcmp(protocol, "vnc") == 0) { if (fail_if_connected || disconnect_if_connected) { /* vnc supports "connected=keep" only */ qemu_error_new(QERR_INVALID_PARAMETER, "connected"); - return; + return -1; } - if (vnc_display_password(NULL, password, lifetime) < 0) + if (vnc_display_password(NULL, password, lifetime) < 0) { qemu_error_new(QERR_SET_PASSWD_FAILED); + return -1; + } } else { qemu_error_new(QERR_INVALID_PARAMETER, "protocol"); + return -1; } + + return 0; } void mon_spice_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data) -- 1.7.0.3