Skip to content

Commit

Permalink
monitor: add vnc websockets
Browse files Browse the repository at this point in the history
Add websockets bool to VncBasicInfo, report websocket server sockets,
flag websocket client connections.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
  • Loading branch information
kraxel committed Jan 22, 2015
1 parent df88768 commit 4478aa7
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 4 deletions.
5 changes: 4 additions & 1 deletion qapi-schema.json
Expand Up @@ -672,12 +672,15 @@
#
# @family: address family
#
# @websocket: true in case the socket is a websocket (since 2.3).
#
# Since: 2.1
##
{ 'type': 'VncBasicInfo',
'data': { 'host': 'str',
'service': 'str',
'family': 'NetworkAddressFamily' } }
'family': 'NetworkAddressFamily',
'websocket': 'bool' } }

##
# @VncServerInfo
Expand Down
15 changes: 12 additions & 3 deletions ui/vnc.c
Expand Up @@ -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) {
Expand Down Expand Up @@ -457,6 +460,7 @@ VncInfo *qmp_query_vnc(Error **errp)
}

static VncBasicInfoList *qmp_query_server_entry(int socket,
bool websocket,
VncBasicInfoList *prev)
{
VncBasicInfoList *list;
Expand All @@ -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;
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 4478aa7

Please sign in to comment.