[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v6 07/25] qga: simplify dispatch_return_cb
From: |
Marc-André Lureau |
Subject: |
[PATCH v6 07/25] qga: simplify dispatch_return_cb |
Date: |
Fri, 8 Nov 2019 19:01:05 +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.24.0
- [PATCH v6 00/25] monitor: add asynchronous command type, Marc-André Lureau, 2019/11/08
- [PATCH v6 01/25] qmp: constify QmpCommand and list, Marc-André Lureau, 2019/11/08
- [PATCH v6 02/25] json-lexer: make it safe to call destroy multiple times, Marc-André Lureau, 2019/11/08
- [PATCH v6 03/25] qmp: add QmpSession, Marc-André Lureau, 2019/11/08
- [PATCH v6 04/25] QmpSession: add a return callback, Marc-André Lureau, 2019/11/08
- [PATCH v6 05/25] QmpSession: add json parser and use it in qga, Marc-André Lureau, 2019/11/08
- [PATCH v6 06/25] monitor: use qmp session to parse json feed, Marc-André Lureau, 2019/11/08
- [PATCH v6 07/25] qga: simplify dispatch_return_cb,
Marc-André Lureau <=
- [PATCH v6 08/25] QmpSession: introduce QmpReturn, Marc-André Lureau, 2019/11/08
- [PATCH v6 09/25] qmp: simplify qmp_return_error(), Marc-André Lureau, 2019/11/08
- [PATCH v6 10/25] QmpSession: keep a queue of pending commands, Marc-André Lureau, 2019/11/08
- [PATCH v6 11/25] QmpSession: return orderly, Marc-André Lureau, 2019/11/08
- [PATCH v6 12/25] qmp: introduce asynchronous command type, Marc-André Lureau, 2019/11/08
- [PATCH v6 14/25] qmp: add qmp_return_is_cancelled(), Marc-André Lureau, 2019/11/08
- [PATCH v6 13/25] scripts: learn 'async' qapi commands, Marc-André Lureau, 2019/11/08
- [PATCH v6 15/25] console: add graphic_hw_update_done(), Marc-André Lureau, 2019/11/08
- [PATCH v6 16/25] ppm-save: pass opened fd, Marc-André Lureau, 2019/11/08
- [PATCH v6 17/25] ui: add pixman image g_autoptr support, Marc-André Lureau, 2019/11/08