aboutsummaryrefslogtreecommitdiff
path: root/qapi/qmp-registry.c
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2021-02-19 12:28:14 +0400
committerMichael Roth <michael.roth@amd.com>2021-03-16 20:21:47 -0500
commitc98939daeca3beb21c85560acede8d3529e363d9 (patch)
tree22d50bb1856428f7bc7b26c2077ad054565147d1 /qapi/qmp-registry.c
parent86dc17d4d01eb836ee56eb9435c6d63a72d3c7d4 (diff)
qga: return a more explicit error on why a command is disabled
qmp_disable_command() now takes an optional error string to return a more explicit error message. Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1928806 Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> *fix up 80+ char line Signed-off-by: Michael Roth <michael.roth@amd.com>
Diffstat (limited to 'qapi/qmp-registry.c')
-rw-r--r--qapi/qmp-registry.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/qapi/qmp-registry.c b/qapi/qmp-registry.c
index 58c65b5052..f78c064aae 100644
--- a/qapi/qmp-registry.c
+++ b/qapi/qmp-registry.c
@@ -43,26 +43,28 @@ const QmpCommand *qmp_find_command(const QmpCommandList *cmds, const char *name)
}
static void qmp_toggle_command(QmpCommandList *cmds, const char *name,
- bool enabled)
+ bool enabled, const char *disable_reason)
{
QmpCommand *cmd;
QTAILQ_FOREACH(cmd, cmds, node) {
if (strcmp(cmd->name, name) == 0) {
cmd->enabled = enabled;
+ cmd->disable_reason = disable_reason;
return;
}
}
}
-void qmp_disable_command(QmpCommandList *cmds, const char *name)
+void qmp_disable_command(QmpCommandList *cmds, const char *name,
+ const char *disable_reason)
{
- qmp_toggle_command(cmds, name, false);
+ qmp_toggle_command(cmds, name, false, disable_reason);
}
void qmp_enable_command(QmpCommandList *cmds, const char *name)
{
- qmp_toggle_command(cmds, name, true);
+ qmp_toggle_command(cmds, name, true, NULL);
}
bool qmp_command_is_enabled(const QmpCommand *cmd)