[libvirt] [PATCH 2/2] spice: expose the QEMU disable file transfer option
Christophe Fergeau
cfergeau at redhat.com
Mon Jan 13 11:58:30 UTC 2014
Hi,
On Fri, Jan 10, 2014 at 06:21:50PM +0100, Francesco Romani wrote:
> spice-server offers an API to disable file transfer messages
> on the agent channel between the client and the guest.
> This is supported in qemu through the disable-agent-file-xfer option.
>
> This patch exposes this option to libvirt.
> Adds a new element 'filetransfer', with one property,
> 'filetransfer', which accepts a boolean setting.
> Default is enabled.
>
> Depends on the capability exported in the first patch of the series.
> ---
> docs/formatdomain.html.in | 8 +++++
> docs/schemas/domaincommon.rng | 11 ++++++
> src/conf/domain_conf.c | 31 ++++++++++++++++-
> src/conf/domain_conf.h | 10 ++++++
> src/libvirt_private.syms | 2 ++
> src/qemu/qemu_command.c | 9 +++++
> ...emuxml2argv-graphics-spice-agent-file-xfer.args | 9 +++++
> ...qemuxml2argv-graphics-spice-agent-file-xfer.xml | 40 ++++++++++++++++++++++
> .../qemuxml2argv-graphics-spice.args | 5 +--
> .../qemuxml2argv-graphics-spice.xml | 1 +
> tests/qemuxml2argvtest.c | 9 ++++-
> 11 files changed, 131 insertions(+), 4 deletions(-)
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-agent-file-xfer.args
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-agent-file-xfer.xml
>
> diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
> index 68860ef..c11a7d3 100644
> --- a/docs/formatdomain.html.in
> +++ b/docs/formatdomain.html.in
> @@ -4042,6 +4042,7 @@ qemu-kvm -net nic,model=? /dev/null
> <streaming mode='filter'/>
> <clipboard copypaste='no'/>
> <mouse mode='client'/>
> + <filetransfer enable='no'/>
> </graphics></pre>
> <p>
> Spice supports variable compression settings for audio,
> @@ -4081,6 +4082,13 @@ qemu-kvm -net nic,model=? /dev/null
> <span class="since">since 0.9.11</span>. If no mode is
> specified, the qemu default will be used (client mode).
> </p>
> + <p>
> + File transfer functionality (via Spice agent) is set using the
> + <code>filetransfer</code> element.
> + It is enabled by default, and can be disabled by setting the
> + <code>enable</code> property to <code>no</code> ,
> + since <span class="since">since 1.2.2</span>.
> + </p>
> </dd>
> <dt><code>"rdp"</code></dt>
> <dd>
> diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
> index 86a60c9..cd2c499 100644
> --- a/docs/schemas/domaincommon.rng
> +++ b/docs/schemas/domaincommon.rng
> @@ -2468,6 +2468,17 @@
> <empty/>
> </element>
> </optional>
> + <optional>
> + <element name="filetransfer">
> + <attribute name="enable">
> + <choice>
> + <value>yes</value>
> + <value>no</value>
> + </choice>
> + </attribute>
> + <empty/>
> + </element>
> + </optional>
> </interleave>
> </group>
> <group>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 416d96e..f372406 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -604,6 +604,12 @@ VIR_ENUM_IMPL(virDomainGraphicsSpiceClipboardCopypaste,
> "yes",
> "no");
>
> +VIR_ENUM_IMPL(virDomainGraphicsSpiceAgentFileTransfer,
> + VIR_DOMAIN_GRAPHICS_SPICE_AGENT_FILE_TRANSFER_LAST,
> + "default",
> + "yes",
> + "no");
> +
> VIR_ENUM_IMPL(virDomainHostdevMode, VIR_DOMAIN_HOSTDEV_MODE_LAST,
> "subsystem",
> "capabilities")
> @@ -8519,6 +8525,26 @@ virDomainGraphicsDefParseXML(xmlNodePtr node,
> VIR_FREE(copypaste);
>
> def->data.spice.copypaste = copypasteVal;
> + } else if (xmlStrEqual(cur->name, BAD_CAST "filetransfer")) {
> + char *enable = virXMLPropString(cur, "enable");
> + int enableVal;
> +
> + if (!enable) {
> + virReportError(VIR_ERR_XML_ERROR, "%s",
> + _("spice filetransfer missing enable"));
> + goto error;
> + }
> +
> + if ((enableVal =
> + virDomainGraphicsSpiceAgentFileTransferTypeFromString(enable)) <= 0) {
> + virReportError(VIR_ERR_XML_ERROR,
It turns out this one should be _CONFIG_UNSUPPORTED, see
https://www.redhat.com/archives/libvir-list/2014-January/msg00521.html . Sorry for giving you a
wrong advice on this before.
ACK from me if you squash this change in before pushing. This will have to
wait after 1.2.1 release though.
Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140113/1161613f/attachment-0001.sig>
More information about the libvir-list
mailing list