qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: lcapitulino@redhat.com
Subject: [Qemu-devel] [FOR 0.12 PATCH 11/18] monitor: convert do_change() to QObject, QError
Date: Mon,  7 Dec 2009 21:37:09 +0100	[thread overview]
Message-ID: <1260218236-22143-12-git-send-email-armbru@redhat.com> (raw)
In-Reply-To: <1260218236-22143-1-git-send-email-armbru@redhat.com>


Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 monitor.c       |   19 +++++++++++--------
 qemu-monitor.hx |    3 ++-
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/monitor.c b/monitor.c
index 62d2ef5..05233cc 100644
--- a/monitor.c
+++ b/monitor.c
@@ -830,13 +830,13 @@ static void do_change_block(Monitor *mon, const char *device,
 
     bs = bdrv_find(device);
     if (!bs) {
-        monitor_printf(mon, "device not found\n");
+        qemu_error_new(QERR_DEVICE_NOT_FOUND, device);
         return;
     }
     if (fmt) {
         drv = bdrv_find_whitelisted_format(fmt);
         if (!drv) {
-            monitor_printf(mon, "invalid format %s\n", fmt);
+            qemu_error_new(QERR_INVALID_BLOCK_FORMAT, fmt);
             return;
         }
     }
@@ -846,17 +846,17 @@ static void do_change_block(Monitor *mon, const char *device,
     monitor_read_bdrv_key_start(mon, bs, NULL, NULL);
 }
 
-static void change_vnc_password(Monitor *mon, const char *password)
+static void change_vnc_password(const char *password)
 {
     if (vnc_display_password(NULL, password) < 0)
-        monitor_printf(mon, "could not set VNC server password\n");
+        qemu_error_new(QERR_SET_PASSWD_FAILED);
 
 }
 
 static void change_vnc_password_cb(Monitor *mon, const char *password,
                                    void *opaque)
 {
-    change_vnc_password(mon, password);
+    change_vnc_password(password);
     monitor_read_command(mon, 1);
 }
 
@@ -868,17 +868,20 @@ static void do_change_vnc(Monitor *mon, const char *target, const char *arg)
             char password[9];
             strncpy(password, arg, sizeof(password));
             password[sizeof(password) - 1] = '\0';
-            change_vnc_password(mon, password);
+            change_vnc_password(password);
         } else {
             monitor_read_password(mon, change_vnc_password_cb, NULL);
         }
     } else {
         if (vnc_display_open(NULL, target) < 0)
-            monitor_printf(mon, "could not start VNC server on %s\n", target);
+            qemu_error_new(QERR_VNC_SERVER_FAILED, target);
     }
 }
 
-static void do_change(Monitor *mon, const QDict *qdict)
+/**
+ * do_change(): Change a removable medium, or VNC configuration
+ */
+static void do_change(Monitor *mon, const QDict *qdict, QObject **ret_data)
 {
     const char *device = qdict_get_str(qdict, "device");
     const char *target = qdict_get_str(qdict, "target");
diff --git a/qemu-monitor.hx b/qemu-monitor.hx
index cf2ef9b..c788c73 100644
--- a/qemu-monitor.hx
+++ b/qemu-monitor.hx
@@ -147,7 +147,8 @@ ETEXI
         .args_type  = "device:B,target:F,arg:s?",
         .params     = "device filename [format]",
         .help       = "change a removable medium, optional format",
-        .mhandler.cmd = do_change,
+        .user_print = monitor_user_noop,
+        .mhandler.cmd_new = do_change,
     },
 
 STEXI
-- 
1.6.2.5

  parent reply	other threads:[~2009-12-07 20:37 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-07 20:36 [Qemu-devel] [FOR 0.12 PATCH 00/18] QError conversions and more Markus Armbruster
2009-12-07 20:36 ` [Qemu-devel] [FOR 0.12 PATCH 01/18] QError: new class for device encrypted errors Markus Armbruster
2009-12-07 20:37 ` [Qemu-devel] [FOR 0.12 PATCH 02/18] monitor: do_cont(): Don't ask for passwords Markus Armbruster
2009-12-07 20:37 ` [Qemu-devel] [FOR 0.12 PATCH 03/18] monitor: Fix double-prompt after "change vnc passwd BLA" Markus Armbruster
2009-12-07 20:37 ` [Qemu-devel] [FOR 0.12 PATCH 04/18] QError: Put error definitions in alphabetical order Markus Armbruster
2009-12-07 20:37 ` [Qemu-devel] [FOR 0.12 PATCH 05/18] QError: New QERR_DEVICE_LOCKED Markus Armbruster
2009-12-07 20:37 ` [Qemu-devel] [FOR 0.12 PATCH 06/18] QError: New QERR_DEVICE_NOT_REMOVABLE Markus Armbruster
2009-12-07 20:37 ` [Qemu-devel] [FOR 0.12 PATCH 07/18] monitor: convert do_eject() to QError Markus Armbruster
2009-12-07 20:37 ` [Qemu-devel] [FOR 0.12 PATCH 08/18] QError: New QERR_INVALID_BLOCK_FORMAT Markus Armbruster
2009-12-07 20:37 ` [Qemu-devel] [FOR 0.12 PATCH 09/18] QError: New QERR_SET_PASSWD_FAILED Markus Armbruster
2009-12-07 20:37 ` [Qemu-devel] [FOR 0.12 PATCH 10/18] QError: New QERR_VNC_SERVER_FAILED Markus Armbruster
2009-12-07 20:37 ` Markus Armbruster [this message]
2009-12-07 20:37 ` [Qemu-devel] [FOR 0.12 PATCH 12/18] QError: New QERR_FD_NOT_FOUND Markus Armbruster
2009-12-08 11:51   ` [Qemu-devel] " Luiz Capitulino
2009-12-08 12:25     ` Markus Armbruster
2009-12-07 20:37 ` [Qemu-devel] [FOR 0.12 PATCH 13/18] monitor: convert do_closefd() to QError Markus Armbruster
2009-12-07 20:37 ` [Qemu-devel] [FOR 0.12 PATCH 14/18] QError: New QERR_FD_NOT_SUPPLIED Markus Armbruster
2009-12-07 20:37 ` [Qemu-devel] [FOR 0.12 PATCH 15/18] New QERR_INVALID_PARAMETER Markus Armbruster
2009-12-07 20:37 ` [Qemu-devel] [FOR 0.12 PATCH 16/18] QError: New QERR_TOO_MANY_FILES Markus Armbruster
2009-12-07 20:37 ` [Qemu-devel] [FOR 0.12 PATCH 17/18] monitor: convert do_getfd() to QError Markus Armbruster
2009-12-07 20:37 ` [Qemu-devel] [FOR 0.12 PATCH 18/18] QMP: add human-readable description to error response Markus Armbruster
2009-12-08 12:11   ` [Qemu-devel] " Luiz Capitulino
2009-12-08 12:25     ` Daniel P. Berrange
2009-12-08 14:11       ` Luiz Capitulino
2009-12-08 14:50         ` Markus Armbruster
2009-12-08 12:38     ` Paolo Bonzini
2009-12-08 12:57       ` Markus Armbruster
2009-12-08 12:48     ` Markus Armbruster
2009-12-08 13:18     ` Anthony Liguori
2009-12-08 14:41       ` Luiz Capitulino
2009-12-08 11:49 ` [Qemu-devel] Re: [FOR 0.12 PATCH 00/18] QError conversions and more Luiz Capitulino

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1260218236-22143-12-git-send-email-armbru@redhat.com \
    --to=armbru@redhat.com \
    --cc=lcapitulino@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).