qapi: Support unregistering QMP commands
authorMarkus Armbruster <armbru@redhat.com>
Mon, 12 Sep 2016 09:19:01 +0000 (13:19 +0400)
committerMarkus Armbruster <armbru@redhat.com>
Mon, 19 Sep 2016 15:32:21 +0000 (17:32 +0200)
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20160912091913.15831-7-marcandre.lureau@redhat.com>

include/qapi/qmp/dispatch.h
qapi/qmp-registry.c

index 48c11b6..57651ea 100644 (file)
@@ -36,6 +36,7 @@ typedef struct QmpCommand
 
 void qmp_register_command(const char *name, QmpCommandFunc *fn,
                           QmpCommandOptions options);
+void qmp_unregister_command(const char *name);
 QmpCommand *qmp_find_command(const char *name);
 QObject *qmp_dispatch(QObject *request);
 void qmp_disable_command(const char *name);
index 68b24c9..e805368 100644 (file)
@@ -30,6 +30,14 @@ void qmp_register_command(const char *name, QmpCommandFunc *fn,
     QTAILQ_INSERT_TAIL(&qmp_commands, cmd, node);
 }
 
+void qmp_unregister_command(const char *name)
+{
+    QmpCommand *cmd = qmp_find_command(name);
+
+    QTAILQ_REMOVE(&qmp_commands, cmd, node);
+    g_free(cmd);
+}
+
 QmpCommand *qmp_find_command(const char *name)
 {
     QmpCommand *cmd;