[libvirt] [PATCH v2 06/12] graphics: introduce listen type=socket and use it for VNC
Christophe Fergeau
cfergeau at redhat.com
Thu May 12 11:06:41 UTC 2016
Hey,
On Wed, May 11, 2016 at 05:08:25PM +0200, Pavel Hrdina wrote:
> Introduce a new listen type that will be used to tell a graphics device
> to listen on unix socket and use it for VNC graphics instead of socket
> attribute. The socket attribute will remain in the XML for backward
> compatibility.
>
> Since old libvirt supports 'socket' attribute inside 'graphics' element
> for socket path provided by user libvirt will generate migratable XML
> without that listen type='socket' but only with 'socket' attribute in
> order to be able to migrate back to old libvirt.
>
> Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
> ---
> docs/formatdomain.html.in | 16 +++
> docs/schemas/domaincommon.rng | 10 ++
> src/conf/domain_conf.c | 119 ++++++++++++++++-----
> src/conf/domain_conf.h | 8 +-
> src/libvirt_private.syms | 1 +
> src/qemu/qemu_command.c | 45 ++++----
> src/qemu/qemu_domain.c | 19 ++--
> src/qemu/qemu_hotplug.c | 9 ++
> src/qemu/qemu_parse_command.c | 2 +-
> src/qemu/qemu_process.c | 47 ++++++--
> src/security/virt-aa-helper.c | 15 ++-
> .../generic-graphics-vnc-socket-listen.xml | 4 +-
> .../generic-graphics-vnc-socket.xml | 4 +-
> .../qemuargv2xml-graphics-vnc-socket.xml | 4 +-
> .../qemuxml2argv-graphics-vnc-auto-socket.args | 20 ++++
> .../qemuxml2argv-graphics-vnc-auto-socket.xml | 30 ++++++
> .../qemuxml2argv-graphics-vnc-socket.args | 4 +-
> .../qemuxml2argv-graphics-vnc-socket.xml | 10 +-
> tests/qemuxml2argvtest.c | 2 +
> .../qemuxml2xmlout-graphics-vnc-auto-socket.xml | 35 ++++++
> .../qemuxml2xmlout-graphics-vnc-autosocket.xml | 4 +-
> .../qemuxml2xmlout-graphics-vnc-socket.xml | 35 ++++++
> tests/qemuxml2xmltest.c | 2 +
> 23 files changed, 361 insertions(+), 84 deletions(-)
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-auto-socket.args
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-auto-socket.xml
> create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-vnc-auto-socket.xml
> create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-vnc-socket.xml
>
> diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
> index b0847b7..f67076d 100644
> --- a/docs/formatdomain.html.in
> +++ b/docs/formatdomain.html.in
> @@ -5359,6 +5359,22 @@ qemu-kvm -net nic,model=? /dev/null
> <code>address</code>.
> </p>
> </dd>
> + <dt><code>socket</code> <span class="since">since 1.3.5</span></dt>
> + <dd>
> + <p>
> + This listen type tells a graphics server to listen on unix socket.
> + Attribute <code>socket</code> contains a path to unix socket. If this
> + attribute is omitted libvirt will generate this path for you.
> + Supported by graphics type <code>vnc</code>.
> + </p>
> + <p>
> + For <code>vnc</code> graphics be backward compatible
> + the <code>socket</code> attribute of first <code>listen</code> element
> + is duplicated as <code>socket</code> attribute in <code>graphics</code>
> + element. If <code>graphics</code> element contains a <code>socket</code>
> + attribute all <code>listen</code> elements are ignored.
> + </p>
If both a socket attribute and a listen type="socket" node are present,
shouldn't this check if they are using the same path? This is what is
done for 'listen' attribute and listen type="address", but I could not
find the same thing in this patch.
> + </dd>
> </dl>
>
> <h4><a name="elementsVideo">Video devices</a></h4>
> diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
> index e7eda77..e3dbcc6 100644
> --- a/docs/schemas/domaincommon.rng
> +++ b/docs/schemas/domaincommon.rng
> @@ -3014,6 +3014,16 @@
> </attribute>
> </optional>
> </group>
> + <group>
> + <attribute name="type">
> + <value>socket</value>
> + </attribute>
> + <optional>
> + <attribute name="socket">
> + <ref name="absFilePath"/>
> + </attribute>
> + </optional>
> + </group>
Imo this would be better as
<listen type="unix" socket="/some/path"/>
This would be more consistent with /disk/source/host
vhost-user also uses type="unix" but with a path attribute rather than
socket
There is also <channel type="unix"> (again with 'path' rather than
'socket').
Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20160512/92718f88/attachment-0001.sig>
More information about the libvir-list
mailing list