]> git.proxmox.com Git - mirror_qemu.git/commit - monitor.c
qmp: support out-of-band (oob) execution
authorPeter Xu <peterx@redhat.com>
Sun, 11 Mar 2018 02:38:05 +0000 (20:38 -0600)
committerEric Blake <eblake@redhat.com>
Mon, 19 Mar 2018 19:58:37 +0000 (14:58 -0500)
commitcf869d53172920536a14180a83292b240e9d0545
treed7c442cb4b5991df8a4c7fe1b966d0d435c954d8
parent876c67512e2af8c05686faa9f9ff49b38d7a392c
qmp: support out-of-band (oob) execution

Having "allow-oob":true for a command does not mean that this command
will always be run in out-of-band mode.  The out-of-band quick path will
only be executed if we specify the extra "run-oob" flag when sending the
QMP request:

    { "execute":   "command-that-allows-oob",
      "arguments": { ... },
      "control":   { "run-oob": true } }

The "control" key is introduced to store this extra flag.  "control"
field is used to store arguments that are shared by all the commands,
rather than command specific arguments.  Let "run-oob" be the first.

Note that in the patch I exported qmp_dispatch_check_obj() to be used to
check the request earlier, and at the same time allowed "id" field to be
there since actually we always allow that.

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <20180309090006.10018-19-peterx@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
[eblake: rebase to qobject_to(), spelling fix]
Signed-off-by: Eric Blake <eblake@redhat.com>
include/qapi/qmp/dispatch.h
monitor.c
qapi/qmp-dispatch.c
trace-events