提交 ca9567e2 编写于 作者: L Luiz Capitulino 提交者: Anthony Liguori

QMP: Add QEMU's version to the greeting message

With capability negotiation support clients will only have a chance
to check QEMU's version (ie. issue 'query-version') after the
negotiation procedure is done.

It might be useful to clients to check QEMU's version before
negotiating features, though.

To allow that, this commit adds the QEMU's version object to the
greeting message.

Not really sure this is needed, but doesn't hurt anyway.
Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
上级 4ab4183d
......@@ -52,9 +52,11 @@ $ telnet localhost 4444
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
{"QMP": {"capabilities": []}}
{"QMP": {"version": {"qemu": "0.12.50", "package": ""}, "capabilities": []}}
{ "execute": "qmp_capabilities" }
{"return": {}}
{ "execute": "query-version" }
{"return": {"qemu": "0.11.50", "package": ""}}
{"return": {"qemu": "0.12.50", "package": ""}}
Contact
-------
......
......@@ -48,10 +48,12 @@ waiting for commands.
The format is:
{ "QMP": { "capabilities": json-array } }
{ "QMP": { "version": json-object, "capabilities": json-array } }
Where,
- The "version" member contains the Server's version information (the format
is the same of the 'query-version' command)
- The "capabilities" member specify the availability of features beyond the
baseline specification
......@@ -152,7 +154,7 @@ This section provides some examples of real QMP usage, in all of them
3.1 Server greeting
-------------------
S: {"QMP": {"capabilities": []}}
S: {"QMP": {"version": {"qemu": "0.12.50", "package": ""}, "capabilities": []}}
3.2 Simple 'stop' execution
---------------------------
......
......@@ -4368,6 +4368,14 @@ void monitor_resume(Monitor *mon)
readline_show_prompt(mon->rs);
}
static QObject *get_qmp_greeting(void)
{
QObject *ver;
do_info_version(NULL, &ver);
return qobject_from_jsonf("{'QMP':{'version': %p,'capabilities': []}}",ver);
}
/**
* monitor_control_event(): Print QMP gretting
*/
......@@ -4379,7 +4387,7 @@ static void monitor_control_event(void *opaque, int event)
json_message_parser_init(&mon->mc->parser, handle_qmp_command);
data = qobject_from_jsonf("{ 'QMP': { 'capabilities': [] } }");
data = get_qmp_greeting();
assert(data != NULL);
monitor_json_emitter(mon, data);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册