[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 07/20] qga: simplify dispatch_return_cb
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH v4 07/20] qga: simplify dispatch_return_cb |
Date: |
Tue, 9 Apr 2019 18:09:56 +0200 |
Fold send_response().
qobject_to_json() can't return NULL (it will crash if allocation
failed, either in memcpy() or abort from g_realloc()).
Signed-off-by: Marc-André Lureau <address@hidden>
---
qga/main.c | 19 +++----------------
1 file changed, 3 insertions(+), 16 deletions(-)
diff --git a/qga/main.c b/qga/main.c
index 14e418f9a5..51ab418128 100644
--- a/qga/main.c
+++ b/qga/main.c
@@ -522,8 +522,9 @@ fail:
#endif
}
-static int send_response(GAState *s, const QDict *rsp)
+static void dispatch_return_cb(QmpSession *session, QDict *rsp)
{
+ GAState *s = container_of(session, GAState, session);
const char *buf;
QString *payload_qstr, *response_qstr;
GIOStatus status;
@@ -531,9 +532,6 @@ static int send_response(GAState *s, const QDict *rsp)
g_assert(rsp && s->channel);
payload_qstr = qobject_to_json(QOBJECT(rsp));
- if (!payload_qstr) {
- return -EINVAL;
- }
if (s->delimit_response) {
s->delimit_response = false;
@@ -550,18 +548,7 @@ static int send_response(GAState *s, const QDict *rsp)
status = ga_channel_write_all(s->channel, buf, strlen(buf));
qobject_unref(response_qstr);
if (status != G_IO_STATUS_NORMAL) {
- return -EIO;
- }
-
- return 0;
-}
-
-static void dispatch_return_cb(QmpSession *session, QDict *rsp)
-{
- GAState *s = container_of(session, GAState, session);
- int ret = send_response(s, rsp);
- if (ret < 0) {
- g_warning("error sending response: %s", strerror(-ret));
+ g_warning("Failed sending response");
}
}
--
2.21.0.196.g041f5ea1cf
- [Qemu-devel] [PATCH v4 00/20] monitor: add asynchronous command type, Marc-André Lureau, 2019/04/09
- [Qemu-devel] [PATCH v4 01/20] qmp: constify QmpCommand and list, Marc-André Lureau, 2019/04/09
- [Qemu-devel] [PATCH v4 02/20] json-lexer: make it safe to call destroy multiple times, Marc-André Lureau, 2019/04/09
- [Qemu-devel] [PATCH v4 03/20] qmp: add QmpSession, Marc-André Lureau, 2019/04/09
- [Qemu-devel] [PATCH v4 04/20] QmpSession: add a return callback, Marc-André Lureau, 2019/04/09
- [Qemu-devel] [PATCH v4 05/20] QmpSession: add json parser and use it in qga, Marc-André Lureau, 2019/04/09
- [Qemu-devel] [PATCH v4 06/20] monitor: use qmp session to parse json feed, Marc-André Lureau, 2019/04/09
- [Qemu-devel] [PATCH v4 07/20] qga: simplify dispatch_return_cb,
Marc-André Lureau <=
- [Qemu-devel] [PATCH v4 08/20] QmpSession: introduce QmpReturn, Marc-André Lureau, 2019/04/09
- [Qemu-devel] [PATCH v4 09/20] qmp: simplify qmp_return_error(), Marc-André Lureau, 2019/04/09
- [Qemu-devel] [PATCH v4 11/20] QmpSession: return orderly, Marc-André Lureau, 2019/04/09
- [Qemu-devel] [PATCH v4 12/20] qmp: introduce asynchronous command type, Marc-André Lureau, 2019/04/09
- [Qemu-devel] [PATCH v4 13/20] scripts: learn 'async' qapi commands, Marc-André Lureau, 2019/04/09
- [Qemu-devel] [PATCH v4 14/20] qmp: add qmp_return_is_cancelled(), Marc-André Lureau, 2019/04/09
- [Qemu-devel] [PATCH v4 15/20] monitor: add qmp_return_get_monitor(), Marc-André Lureau, 2019/04/09
- [Qemu-devel] [PATCH v4 16/20] console: add graphic_hw_update_done(), Marc-André Lureau, 2019/04/09
- [Qemu-devel] [PATCH v4 10/20] QmpSession: keep a queue of pending commands, Marc-André Lureau, 2019/04/09