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: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
4ab4183d76
commit
ca9567e234
@ -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
|
||||
---------------------------
|
||||
|
10
monitor.c
10
monitor.c
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user