mirror of https://github.com/xqemu/xqemu.git
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>
This commit is contained in:
parent
df88768460
commit
4478aa768c
|
@ -672,12 +672,15 @@
|
||||||
#
|
#
|
||||||
# @family: address family
|
# @family: address family
|
||||||
#
|
#
|
||||||
|
# @websocket: true in case the socket is a websocket (since 2.3).
|
||||||
|
#
|
||||||
# Since: 2.1
|
# Since: 2.1
|
||||||
##
|
##
|
||||||
{ 'type': 'VncBasicInfo',
|
{ 'type': 'VncBasicInfo',
|
||||||
'data': { 'host': 'str',
|
'data': { 'host': 'str',
|
||||||
'service': 'str',
|
'service': 'str',
|
||||||
'family': 'NetworkAddressFamily' } }
|
'family': 'NetworkAddressFamily',
|
||||||
|
'websocket': 'bool' } }
|
||||||
|
|
||||||
##
|
##
|
||||||
# @VncServerInfo
|
# @VncServerInfo
|
||||||
|
|
15
ui/vnc.c
15
ui/vnc.c
|
@ -353,6 +353,9 @@ static VncClientInfo *qmp_query_vnc_client(const VncState *client)
|
||||||
info->base->host = g_strdup(host);
|
info->base->host = g_strdup(host);
|
||||||
info->base->service = g_strdup(serv);
|
info->base->service = g_strdup(serv);
|
||||||
info->base->family = inet_netfamily(sa.ss_family);
|
info->base->family = inet_netfamily(sa.ss_family);
|
||||||
|
#ifdef CONFIG_VNC_WS
|
||||||
|
info->base->websocket = client->websocket;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_VNC_TLS
|
#ifdef CONFIG_VNC_TLS
|
||||||
if (client->tls.session && client->tls.dname) {
|
if (client->tls.session && client->tls.dname) {
|
||||||
|
@ -457,6 +460,7 @@ out_error:
|
||||||
}
|
}
|
||||||
|
|
||||||
static VncBasicInfoList *qmp_query_server_entry(int socket,
|
static VncBasicInfoList *qmp_query_server_entry(int socket,
|
||||||
|
bool websocket,
|
||||||
VncBasicInfoList *prev)
|
VncBasicInfoList *prev)
|
||||||
{
|
{
|
||||||
VncBasicInfoList *list;
|
VncBasicInfoList *list;
|
||||||
|
@ -477,6 +481,7 @@ static VncBasicInfoList *qmp_query_server_entry(int socket,
|
||||||
info->host = g_strdup(host);
|
info->host = g_strdup(host);
|
||||||
info->service = g_strdup(serv);
|
info->service = g_strdup(serv);
|
||||||
info->family = inet_netfamily(sa.ss_family);
|
info->family = inet_netfamily(sa.ss_family);
|
||||||
|
info->websocket = websocket;
|
||||||
|
|
||||||
list = g_new0(VncBasicInfoList, 1);
|
list = g_new0(VncBasicInfoList, 1);
|
||||||
list->value = info;
|
list->value = info;
|
||||||
|
@ -572,12 +577,13 @@ VncInfo2List *qmp_query_vnc_servers(Error **errp)
|
||||||
info->display = g_strdup(dev->id);
|
info->display = g_strdup(dev->id);
|
||||||
}
|
}
|
||||||
if (vd->lsock != -1) {
|
if (vd->lsock != -1) {
|
||||||
info->server = qmp_query_server_entry(vd->lsock,
|
info->server = qmp_query_server_entry(vd->lsock, false,
|
||||||
info->server);
|
info->server);
|
||||||
}
|
}
|
||||||
#ifdef CONFIG_VNC_WS
|
#ifdef CONFIG_VNC_WS
|
||||||
if (vd->lwebsock != -1) {
|
if (vd->lwebsock != -1) {
|
||||||
/* TODO */
|
info->server = qmp_query_server_entry(vd->lwebsock, true,
|
||||||
|
info->server);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -3305,10 +3311,13 @@ void vnc_display_open(const char *id, Error **errp)
|
||||||
{
|
{
|
||||||
VncDisplay *vs = vnc_display_find(id);
|
VncDisplay *vs = vnc_display_find(id);
|
||||||
QemuOpts *opts = qemu_opts_find(&qemu_vnc_opts, 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;
|
QemuConsole *con;
|
||||||
int password = 0;
|
int password = 0;
|
||||||
int reverse = 0;
|
int reverse = 0;
|
||||||
|
#ifdef CONFIG_VNC_WS
|
||||||
|
const char *websocket;
|
||||||
|
#endif
|
||||||
#ifdef CONFIG_VNC_TLS
|
#ifdef CONFIG_VNC_TLS
|
||||||
int tls = 0, x509 = 0;
|
int tls = 0, x509 = 0;
|
||||||
const char *path;
|
const char *path;
|
||||||
|
|
Loading…
Reference in New Issue