mirror of
https://github.com/qemu/qemu.git
synced 2025-01-22 13:33:25 +08:00
monitor: simplify invalid_qmp_mode()
handle_qmp_command() will switch to use qmp_dispatch(). It won't have a pointer to the marshaller function anymore, but only the name of the command to invoke. Simplify invalid_qmp_mode() so it can just be called with the command name. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <20160912091913.15831-5-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
94cfd07f26
commit
d79bedfa40
10
monitor.c
10
monitor.c
@ -3653,21 +3653,21 @@ static int monitor_can_read(void *opaque)
|
||||
return (mon->suspend_cnt == 0) ? 1 : 0;
|
||||
}
|
||||
|
||||
static bool invalid_qmp_mode(const Monitor *mon, const mon_cmd_t *cmd,
|
||||
static bool invalid_qmp_mode(const Monitor *mon, const char *cmd,
|
||||
Error **errp)
|
||||
{
|
||||
bool is_cap = cmd->mhandler.cmd_new == qmp_marshal_qmp_capabilities;
|
||||
bool is_cap = g_str_equal(cmd, "qmp_capabilities");
|
||||
|
||||
if (is_cap && mon->qmp.in_command_mode) {
|
||||
error_set(errp, ERROR_CLASS_COMMAND_NOT_FOUND,
|
||||
"Capabilities negotiation is already complete, command "
|
||||
"'%s' ignored", cmd->name);
|
||||
"'%s' ignored", cmd);
|
||||
return true;
|
||||
}
|
||||
if (!is_cap && !mon->qmp.in_command_mode) {
|
||||
error_set(errp, ERROR_CLASS_COMMAND_NOT_FOUND,
|
||||
"Expecting capabilities negotiation with "
|
||||
"'qmp_capabilities' before command '%s'", cmd->name);
|
||||
"'qmp_capabilities' before command '%s'", cmd);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -3958,7 +3958,7 @@ static void handle_qmp_command(JSONMessageParser *parser, GQueue *tokens)
|
||||
"The command %s has not been found", cmd_name);
|
||||
goto err_out;
|
||||
}
|
||||
if (invalid_qmp_mode(mon, cmd, &local_err)) {
|
||||
if (invalid_qmp_mode(mon, cmd_name, &local_err)) {
|
||||
goto err_out;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user