On 29.04.2013 16:52, Martin Kletzander wrote:
Adding a VNC WebSocket support for QEMU driver. This funcitonality is
in upstream qemu from commit described as v1.3.0-982-g7536ee4, so the
capability is being recognized based on QEMU version for now.
Signed-off-by: Martin Kletzander mklet...@redhat.com
---
src/qemu/libvirtd_qemu.aug | 4 +-
src/qemu/qemu.conf | 7 +++
src/qemu/qemu_capabilities.c | 5 ++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c| 60
+-
src/qemu/qemu_command.h| 5 +-
src/qemu/qemu_conf.c | 32
src/qemu/qemu_conf.h | 6 +++
src/qemu/qemu_driver.c | 5 ++
src/qemu/qemu_process.c| 31 ---
src/qemu/test_libvirtd_qemu.aug.in | 2 +
tests/qemuargv2xmltest.c | 1 +
.../qemuxml2argv-graphics-vnc-websocket.args | 4 ++
.../qemuxml2argv-graphics-vnc-websocket.xml| 35 +
tests/qemuxml2argvtest.c | 1 +
tests/qemuxml2xmltest.c| 1 +
16 files changed, 190 insertions(+), 10 deletions(-)
create mode 100644
tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-websocket.args
create mode 100644
tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-websocket.xml
diff --git a/src/qemu/libvirtd_qemu.aug b/src/qemu/libvirtd_qemu.aug
index 61740a9..5344125 100644
--- a/src/qemu/libvirtd_qemu.aug
+++ b/src/qemu/libvirtd_qemu.aug
@@ -41,6 +41,8 @@ module Libvirtd_qemu =
let remote_display_entry = int_entry remote_display_port_min
| int_entry remote_display_port_max
+ | int_entry remote_websocket_port_min
+ | int_entry remote_websocket_port_max
let security_entry = str_entry security_driver
| bool_entry security_default_confined
@@ -74,7 +76,7 @@ module Libvirtd_qemu =
| int_entry keepalive_interval
| int_entry keepalive_count
- (* Each enty in the config is one of the following three ... *)
+ (* Each entry in the config is one of the following ... *)
Typo worth 1.0.5 release.
let entry = vnc_entry
| spice_entry
| remote_display_entry
diff --git a/src/qemu/qemu.conf b/src/qemu/qemu.conf
index 87bdf70..809e254 100644
--- a/src/qemu/qemu.conf
+++ b/src/qemu/qemu.conf
@@ -153,6 +153,13 @@
#remote_display_port_min = 5900
#remote_display_port_max = 65535
+# VNC WebSocket port policies, same rules apply as with remote display
+# ports. VNC WebSockets use similar display - port mappings, with
+# the exception being that ports starts from 5700 instead of 5900.
+# This is what may have be changed here.
+#
+#remote_websocket_port_min = 5700
+#remote_websocket_port_max = 65535
# The default security driver is SELinux. If SELinux is disabled
# on the host, then the security driver will automatically disable
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 2acf535..2ddeb8c 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -225,6 +225,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
pci-bridge, /* 141 */
vfio-pci, /* 142 */
vfio-pci.bootindex, /* 143 */
+ vnc-websocket, /* 143 */
);
struct _virQEMUCaps {
@@ -2520,6 +2521,10 @@ virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps,
if (qemuCaps-version = 1003000)
virQEMUCapsSet(qemuCaps, QEMU_CAPS_MACHINE_USB_OPT);
+/* WebSockets were intriduced between 1.3.0 and 1.3.1 */
s/intriduced/introduced/
+if (qemuCaps-version = 1003001)
+virQEMUCapsSet(qemuCaps, QEMU_CAPS_VNC_WEBSOCKET);
+
if (!(archstr = qemuMonitorGetTargetArch(mon)))
goto cleanup;
Michal
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list