qemu: monitor: Introduce qemuMonitorJSONGetReply, a better qemuMonitorJSONCheckReply

Rather than simply checking that the 'return' field is of the expected
type we can directly return it as the caller is very likely going to use
it. Extract the code into the new function and add a wrapper to preserve
old functionality.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Peter Krempa 2022-12-01 16:18:52 +01:00
parent b4f8313787
commit a434684a57
1 changed files with 18 additions and 6 deletions

View File

@ -396,15 +396,15 @@ qemuMonitorJSONCheckError(virJSONValue *cmd,
}
static int
qemuMonitorJSONCheckReply(virJSONValue *cmd,
virJSONValue *reply,
virJSONType type)
static virJSONValue *
qemuMonitorJSONGetReply(virJSONValue *cmd,
virJSONValue *reply,
virJSONType type)
{
virJSONValue *data;
if (qemuMonitorJSONCheckError(cmd, reply) < 0)
return -1;
return NULL;
data = virJSONValueObjectGet(reply, "return");
if (virJSONValueGetType(data) != type) {
@ -417,9 +417,21 @@ qemuMonitorJSONCheckReply(virJSONValue *cmd,
_("unexpected type returned by QEMU command '%s'"),
qemuMonitorJSONCommandName(cmd));
return -1;
return NULL;
}
return data;
}
static int
qemuMonitorJSONCheckReply(virJSONValue *cmd,
virJSONValue *reply,
virJSONType type)
{
if (!qemuMonitorJSONGetReply(cmd, reply, type))
return -1;
return 0;
}