[libvirt] [PATCH 2/2] qemu: Add VNC WebSocket support
Michal Privoznik
mprivozn at redhat.com
Mon Apr 29 15:10:29 UTC 2013
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 <mkletzan at 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
More information about the libvir-list
mailing list