[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 09/25] qmp: take 'id' from request
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH v2 09/25] qmp: take 'id' from request |
Date: |
Wed, 18 Jan 2017 20:03:16 +0400 |
Copy 'id' from request to reply dict. This can be done earlier, such as
done currently by the monitor (because the qemu monitor.c may reply
directly without qmp_dispatch), but is now done as well in
qmp_dispatch() as convenience for other users such as QGA and
tests. Later patches will remove "id" manipulation from monitor.c.
Signed-off-by: Marc-André Lureau <address@hidden>
---
qapi/qmp-dispatch.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/qapi/qmp-dispatch.c b/qapi/qmp-dispatch.c
index d5c8670a4f..b6b0aed1b8 100644
--- a/qapi/qmp-dispatch.c
+++ b/qapi/qmp-dispatch.c
@@ -202,7 +202,8 @@ void qmp_dispatch(QmpClient *client, QObject *request,
QDict *rsp)
{
Error *err = NULL;
QmpReturn *qret = g_new0(QmpReturn, 1);
- QObject *ret;
+ QObject *ret, *id;
+ QDict *req;
assert(client);
@@ -210,6 +211,13 @@ void qmp_dispatch(QmpClient *client, QObject *request,
QDict *rsp)
qret->client = client;
QLIST_INSERT_HEAD(&client->pending, qret, link);
+ req = qobject_to_qdict(request);
+ id = qdict_get(req, "id");
+ if (id) {
+ qobject_incref(id);
+ qdict_put_obj(qret->rsp, "id", id);
+ }
+
ret = do_qmp_dispatch(request, qret, &err);
if (err) {
--
2.11.0.295.gd7dffce1c
- [Qemu-devel] [PATCH v2 00/25] qmp: add async command type, Marc-André Lureau, 2017/01/18
- [Qemu-devel] [PATCH v2 01/25] tests: start generic qemu-qmp tests, Marc-André Lureau, 2017/01/18
- [Qemu-devel] [PATCH v2 02/25] tests: change /0.15/* tests to /qmp/*, Marc-André Lureau, 2017/01/18
- [Qemu-devel] [PATCH v2 03/25] qmp: teach qmp_dispatch() to take a pre-filled QDict, Marc-André Lureau, 2017/01/18
- [Qemu-devel] [PATCH v2 04/25] qmp: use a return callback for the command reply, Marc-André Lureau, 2017/01/18
- [Qemu-devel] [PATCH v2 05/25] qmp: add QmpClient, Marc-André Lureau, 2017/01/18
- [Qemu-devel] [PATCH v2 06/25] qmp: add qmp_return_is_cancelled(), Marc-André Lureau, 2017/01/18
- [Qemu-devel] [PATCH v2 08/25] qapi: ignore top-level 'id' field, Marc-André Lureau, 2017/01/18
- [Qemu-devel] [PATCH v2 07/25] qmp: introduce async command type, Marc-André Lureau, 2017/01/18
- [Qemu-devel] [PATCH v2 09/25] qmp: take 'id' from request,
Marc-André Lureau <=
- [Qemu-devel] [PATCH v2 10/25] qmp: check that async command have an 'id', Marc-André Lureau, 2017/01/18
- [Qemu-devel] [PATCH v2 11/25] scripts: learn 'async' qapi commands, Marc-André Lureau, 2017/01/18
- [Qemu-devel] [PATCH v2 12/25] tests: add dispatch async tests, Marc-André Lureau, 2017/01/18
- [Qemu-devel] [PATCH v2 13/25] monitor: add 'async' capability, Marc-André Lureau, 2017/01/18
- [Qemu-devel] [PATCH v2 14/25] monitor: add !qmp pre-conditions, Marc-André Lureau, 2017/01/18
- [Qemu-devel] [PATCH v2 15/25] monitor: suspend when running async and client has no async, Marc-André Lureau, 2017/01/18
- [Qemu-devel] [PATCH v2 16/25] qmp: update qmp-spec about async capability, Marc-André Lureau, 2017/01/18
- [Qemu-devel] [PATCH v2 17/25] qtest: add qtest-timeout, Marc-André Lureau, 2017/01/18
- [Qemu-devel] [PATCH v2 19/25] tests: add tests for async and non-async clients, Marc-André Lureau, 2017/01/18
- [Qemu-devel] [PATCH v2 18/25] qtest: add qtest_init_qmp_caps(), Marc-André Lureau, 2017/01/18