summaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2014-12-10 09:49:39 +0100
committerGerd Hoffmann <kraxel@redhat.com>2015-01-22 11:18:47 +0100
commit4478aa768ccefcc5b234c23d035435fd71b932f6 (patch)
treebed311958475fa3659b9d7d22c8698dd13b629c3 /ui
parentdf887684603a4b3b0c623090a6b419dc70f22c32 (diff)
downloadqemu-4478aa768ccefcc5b234c23d035435fd71b932f6.tar.gz
monitor: add vnc websockets
Add websockets bool to VncBasicInfo, report websocket server sockets, flag websocket client connections. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'ui')
-rw-r--r--ui/vnc.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/ui/vnc.c b/ui/vnc.c
index c85d9c392e..a742c9071c 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -353,6 +353,9 @@ static VncClientInfo *qmp_query_vnc_client(const VncState *client)
info->base->host = g_strdup(host);
info->base->service = g_strdup(serv);
info->base->family = inet_netfamily(sa.ss_family);
+#ifdef CONFIG_VNC_WS
+ info->base->websocket = client->websocket;
+#endif
#ifdef CONFIG_VNC_TLS
if (client->tls.session && client->tls.dname) {
@@ -457,6 +460,7 @@ out_error:
}
static VncBasicInfoList *qmp_query_server_entry(int socket,
+ bool websocket,
VncBasicInfoList *prev)
{
VncBasicInfoList *list;
@@ -477,6 +481,7 @@ static VncBasicInfoList *qmp_query_server_entry(int socket,
info->host = g_strdup(host);
info->service = g_strdup(serv);
info->family = inet_netfamily(sa.ss_family);
+ info->websocket = websocket;
list = g_new0(VncBasicInfoList, 1);
list->value = info;
@@ -572,12 +577,13 @@ VncInfo2List *qmp_query_vnc_servers(Error **errp)
info->display = g_strdup(dev->id);
}
if (vd->lsock != -1) {
- info->server = qmp_query_server_entry(vd->lsock,
+ info->server = qmp_query_server_entry(vd->lsock, false,
info->server);
}
#ifdef CONFIG_VNC_WS
if (vd->lwebsock != -1) {
- /* TODO */
+ info->server = qmp_query_server_entry(vd->lwebsock, true,
+ info->server);
}
#endif
@@ -3305,10 +3311,13 @@ void vnc_display_open(const char *id, Error **errp)
{
VncDisplay *vs = vnc_display_find(id);
QemuOpts *opts = qemu_opts_find(&qemu_vnc_opts, id);
- const char *display, *websocket, *share, *device_id;
+ const char *display, *share, *device_id;
QemuConsole *con;
int password = 0;
int reverse = 0;
+#ifdef CONFIG_VNC_WS
+ const char *websocket;
+#endif
#ifdef CONFIG_VNC_TLS
int tls = 0, x509 = 0;
const char *path;