Revision 586153d9
b/QMP/qmp-events.txt | ||
---|---|---|
24 | 24 |
|
25 | 25 |
Description: Issued when the Virtual Machine enters debug mode. |
26 | 26 |
Data: None. |
27 |
|
|
28 |
4 VNC_CONNECTED |
|
29 |
--------------- |
|
30 |
|
|
31 |
Description: Issued when a VNC client establishes a connection. |
|
32 |
Data: 'server' and 'client' keys with the same keys as 'query-vnc', |
|
33 |
except that authentication ID is not provided. |
b/monitor.c | ||
---|---|---|
357 | 357 |
case QEVENT_STOP: |
358 | 358 |
event_name = "STOP"; |
359 | 359 |
break; |
360 |
case QEVENT_VNC_CONNECTED: |
|
361 |
event_name = "VNC_CONNECTED"; |
|
362 |
break; |
|
360 | 363 |
default: |
361 | 364 |
abort(); |
362 | 365 |
break; |
b/monitor.h | ||
---|---|---|
20 | 20 |
QEVENT_RESET, |
21 | 21 |
QEVENT_POWERDOWN, |
22 | 22 |
QEVENT_STOP, |
23 |
QEVENT_VNC_CONNECTED, |
|
23 | 24 |
QEVENT_MAX, |
24 | 25 |
} MonitorEvent; |
25 | 26 |
|
b/vnc.c | ||
---|---|---|
269 | 269 |
client->info = QOBJECT(qdict); |
270 | 270 |
} |
271 | 271 |
|
272 |
static void vnc_qmp_event(VncState *vs, MonitorEvent event) |
|
273 |
{ |
|
274 |
QDict *server; |
|
275 |
QObject *data; |
|
276 |
|
|
277 |
if (!vs->info) { |
|
278 |
return; |
|
279 |
} |
|
280 |
|
|
281 |
server = qdict_new(); |
|
282 |
if (vnc_server_info_put(server) < 0) { |
|
283 |
QDECREF(server); |
|
284 |
return; |
|
285 |
} |
|
286 |
|
|
287 |
data = qobject_from_jsonf("{ 'client': %p, 'server': %p }", |
|
288 |
vs->info, QOBJECT(server)); |
|
289 |
|
|
290 |
monitor_protocol_event(event, data); |
|
291 |
|
|
292 |
qobject_incref(vs->info); |
|
293 |
qobject_decref(data); |
|
294 |
} |
|
295 |
|
|
272 | 296 |
static void info_vnc_iter(QObject *obj, void *opaque) |
273 | 297 |
{ |
274 | 298 |
QDict *client; |
... | ... | |
2396 | 2420 |
qemu_set_fd_handler2(vs->csock, NULL, vnc_client_read, NULL, vs); |
2397 | 2421 |
|
2398 | 2422 |
vnc_client_cache_addr(vs); |
2423 |
vnc_qmp_event(vs, QEVENT_VNC_CONNECTED); |
|
2399 | 2424 |
|
2400 | 2425 |
vs->vd = vd; |
2401 | 2426 |
vs->ds = vd->ds; |
Also available in: Unified diff