[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 07/20] qga: simplify dispatch_return_cb
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH v5 07/20] qga: simplify dispatch_return_cb |
Date: |
Mon, 15 Jul 2019 23:09:48 +0400 |
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 b005550c70..66fe7ac3de 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.22.0.428.g6d5b264208
- [Qemu-devel] [PATCH v5 00/20] monitor: add asynchronous command type, Marc-André Lureau, 2019/07/15
- [Qemu-devel] [PATCH v5 01/20] qmp: constify QmpCommand and list, Marc-André Lureau, 2019/07/15
- [Qemu-devel] [PATCH v5 02/20] json-lexer: make it safe to call destroy multiple times, Marc-André Lureau, 2019/07/15
- [Qemu-devel] [PATCH v5 03/20] qmp: add QmpSession, Marc-André Lureau, 2019/07/15
- [Qemu-devel] [PATCH v5 04/20] QmpSession: add a return callback, Marc-André Lureau, 2019/07/15
- [Qemu-devel] [PATCH v5 05/20] QmpSession: add json parser and use it in qga, Marc-André Lureau, 2019/07/15
- [Qemu-devel] [PATCH v5 06/20] monitor: use qmp session to parse json feed, Marc-André Lureau, 2019/07/15
- [Qemu-devel] [PATCH v5 07/20] qga: simplify dispatch_return_cb,
Marc-André Lureau <=
- [Qemu-devel] [PATCH v5 08/20] QmpSession: introduce QmpReturn, Marc-André Lureau, 2019/07/15
- [Qemu-devel] [PATCH v5 09/20] qmp: simplify qmp_return_error(), Marc-André Lureau, 2019/07/15
- [Qemu-devel] [PATCH v5 10/20] QmpSession: keep a queue of pending commands, Marc-André Lureau, 2019/07/15
- [Qemu-devel] [PATCH v5 11/20] QmpSession: return orderly, Marc-André Lureau, 2019/07/15
- [Qemu-devel] [PATCH v5 12/20] qmp: introduce asynchronous command type, Marc-André Lureau, 2019/07/15
- [Qemu-devel] [PATCH v5 13/20] scripts: learn 'async' qapi commands, Marc-André Lureau, 2019/07/15
- [Qemu-devel] [PATCH v5 14/20] qmp: add qmp_return_is_cancelled(), Marc-André Lureau, 2019/07/15
- [Qemu-devel] [PATCH v5 15/20] monitor: add qmp_return_get_monitor(), Marc-André Lureau, 2019/07/15
- [Qemu-devel] [PATCH v5 16/20] console: add graphic_hw_update_done(), Marc-André Lureau, 2019/07/15
- [Qemu-devel] [PATCH v5 17/20] console: make screendump asynchronous, Marc-André Lureau, 2019/07/15