mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 09:13:55 -06:00
qmp: De-duplicate error response building
All callers of qmp_build_error_object() duplicate the code to wrap it in a response object. Replace it by qmp_error_response() that captures the duplicated code, including error_free(). Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <20180703085358.13941-23-armbru@redhat.com>
This commit is contained in:
parent
a193352ff9
commit
cee32796ca
4 changed files with 15 additions and 22 deletions
|
@ -610,15 +610,13 @@ static void process_event(JSONMessageParser *parser, GQueue *tokens)
|
|||
qdict = qobject_to(QDict, json_parser_parse_err(tokens, NULL, &err));
|
||||
if (err || !qdict) {
|
||||
qobject_unref(qdict);
|
||||
qdict = qdict_new();
|
||||
if (!err) {
|
||||
g_warning("failed to parse event: unknown error");
|
||||
error_setg(&err, QERR_JSON_PARSING);
|
||||
} else {
|
||||
g_warning("failed to parse event: %s", error_get_pretty(err));
|
||||
}
|
||||
qdict_put_obj(qdict, "error", qmp_build_error_object(err));
|
||||
error_free(err);
|
||||
qdict = qmp_error_response(err);
|
||||
}
|
||||
|
||||
/* handle host->guest commands */
|
||||
|
@ -627,11 +625,9 @@ static void process_event(JSONMessageParser *parser, GQueue *tokens)
|
|||
} else {
|
||||
if (!qdict_haskey(qdict, "error")) {
|
||||
qobject_unref(qdict);
|
||||
qdict = qdict_new();
|
||||
g_warning("unrecognized payload format");
|
||||
error_setg(&err, QERR_UNSUPPORTED);
|
||||
qdict_put_obj(qdict, "error", qmp_build_error_object(err));
|
||||
error_free(err);
|
||||
qdict = qmp_error_response(err);
|
||||
}
|
||||
ret = send_response(s, QOBJECT(qdict));
|
||||
if (ret < 0) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue