QMP: Introduce qmp_call_cmd()
Calls a QObject handler and emits the QMP response, also drops monitor_call_handler() which is now unused. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
parent
de79ba6f53
commit
fc29df759e
39
monitor.c
39
monitor.c
@ -3880,29 +3880,6 @@ static void handler_audit(Monitor *mon, const mon_cmd_t *cmd, int ret)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void monitor_call_handler(Monitor *mon, const mon_cmd_t *cmd,
|
|
||||||
const QDict *params)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
QObject *data = NULL;
|
|
||||||
|
|
||||||
mon_print_count_init(mon);
|
|
||||||
|
|
||||||
ret = cmd->mhandler.cmd_new(mon, params, &data);
|
|
||||||
handler_audit(mon, cmd, ret);
|
|
||||||
|
|
||||||
if (monitor_ctrl_mode(mon)) {
|
|
||||||
/* Monitor Protocol */
|
|
||||||
monitor_protocol_emitter(mon, data);
|
|
||||||
} else {
|
|
||||||
/* User Protocol */
|
|
||||||
if (data)
|
|
||||||
cmd->user_print(mon, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
qobject_decref(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void handle_user_command(Monitor *mon, const char *cmdline)
|
static void handle_user_command(Monitor *mon, const char *cmdline)
|
||||||
{
|
{
|
||||||
QDict *qdict;
|
QDict *qdict;
|
||||||
@ -4433,6 +4410,20 @@ static void qmp_call_query_cmd(Monitor *mon, const mon_cmd_t *cmd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void qmp_call_cmd(Monitor *mon, const mon_cmd_t *cmd,
|
||||||
|
const QDict *params)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
QObject *data = NULL;
|
||||||
|
|
||||||
|
mon_print_count_init(mon);
|
||||||
|
|
||||||
|
ret = cmd->mhandler.cmd_new(mon, params, &data);
|
||||||
|
handler_audit(mon, cmd, ret);
|
||||||
|
monitor_protocol_emitter(mon, data);
|
||||||
|
qobject_decref(data);
|
||||||
|
}
|
||||||
|
|
||||||
static void handle_qmp_command(JSONMessageParser *parser, QList *tokens)
|
static void handle_qmp_command(JSONMessageParser *parser, QList *tokens)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
@ -4500,7 +4491,7 @@ static void handle_qmp_command(JSONMessageParser *parser, QList *tokens)
|
|||||||
goto err_out;
|
goto err_out;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
monitor_call_handler(mon, cmd, args);
|
qmp_call_cmd(mon, cmd, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
goto out;
|
goto out;
|
||||||
|
Loading…
Reference in New Issue
Block a user