QMP: Introduce VNC_INITIALIZED event
It's emitted when a VNC client session is activated by QEMU,
client's information such as port, IP and auth ID (if the
session is authenticated) are provided.
Event example:
{ "event": "VNC_INITIALIZED",
"timestamp": {"seconds": 1263475302, "microseconds": 150772},
"data": {
"server": { "auth": "sasl", "family": "ipv4",
"service": "5901", "host": "0.0.0.0"},
"client": { "family": "ipv4", "service": "46089",
"host": "127.0.0.1", "sasl_username": "lcapitulino" } } }
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
diff --git a/QMP/qmp-events.txt b/QMP/qmp-events.txt
index 1e87eb1..dc48ccc 100644
--- a/QMP/qmp-events.txt
+++ b/QMP/qmp-events.txt
@@ -37,3 +37,9 @@
Description: Issued when the conection is closed.
Data: 'server' and 'client' keys with the same keys as 'query-vnc'.
+
+6 VNC_INITIALIZED
+-----------------
+
+Description: Issued when the VNC session is made active.
+Data: 'server' and 'client' keys with the same keys as 'query-vnc'.
diff --git a/monitor.c b/monitor.c
index 2540d94..fea7383 100644
--- a/monitor.c
+++ b/monitor.c
@@ -360,6 +360,9 @@
case QEVENT_VNC_CONNECTED:
event_name = "VNC_CONNECTED";
break;
+ case QEVENT_VNC_INITIALIZED:
+ event_name = "VNC_INITIALIZED";
+ break;
case QEVENT_VNC_DISCONNECTED:
event_name = "VNC_DISCONNECTED";
break;
diff --git a/monitor.h b/monitor.h
index 42386de..2da30e8 100644
--- a/monitor.h
+++ b/monitor.h
@@ -21,6 +21,7 @@
QEVENT_POWERDOWN,
QEVENT_STOP,
QEVENT_VNC_CONNECTED,
+ QEVENT_VNC_INITIALIZED,
QEVENT_VNC_DISCONNECTED,
QEVENT_MAX,
} MonitorEvent;
diff --git a/vnc.c b/vnc.c
index a590bb9..c7d6652 100644
--- a/vnc.c
+++ b/vnc.c
@@ -2112,6 +2112,7 @@
vnc_flush(vs);
vnc_client_cache_auth(vs);
+ vnc_qmp_event(vs, QEVENT_VNC_INITIALIZED);
vnc_read_when(vs, protocol_client_msg, 1);