[Spice-devel] [PATCH v3 RESEND] libxl: Spice vdagent support for upstream qemu
Fabio Fantoni
fabio.fantoni at m2r.biz
Wed Aug 14 02:19:44 PDT 2013
Il 23/07/2013 15:42, Fabio Fantoni ha scritto:
> Il 03/07/2013 15:54, fantonifabio at tiscali.it ha scritto:
>> Usage: spicevdagent=1|0 (default=0)
>> Enables spice vdagent. The Spice vdagent is an optional component for
>> enhancing user experience and performing guest-oriented management
>> tasks. Its features includes: client mouse mode (no need to grab mouse
>> by client, no mouse lag), automatic adjustment of screen resolution,
>> copy and paste (text and image) between client and domU. It also
>> requires vdagent service installed on domU o.s. to work.
>>
>> Signed-off-by: Fabio Fantoni <fabio.fantoni at m2r.biz>
>> ---
>> docs/man/xl.cfg.pod.5 | 9 +++++++++
>> tools/libxl/libxl_create.c | 1 +
>> tools/libxl/libxl_dm.c | 6 ++++++
>> tools/libxl/libxl_types.idl | 1 +
>> tools/libxl/xl_cmdimpl.c | 2 ++
>> 5 files changed, 19 insertions(+)
>>
>> diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5
>> index f8b4576..766862d 100644
>> --- a/docs/man/xl.cfg.pod.5
>> +++ b/docs/man/xl.cfg.pod.5
>> @@ -1123,6 +1123,15 @@ Specify the ticket password which is used by a
>> client for connection.
>> Whether SPICE agent is used for client mouse mode. The default is true
>> (turn on)
>> +=item B<spicevdagent=BOOLEAN>
>> +
>> +Enables spice vdagent. The Spice vdagent is an optional component for
>> +enhancing user experience and performing guest-oriented management
>> +tasks. Its features includes: client mouse mode (no need to grab mouse
>> +by client, no mouse lag), automatic adjustment of screen resolution,
>> +copy and paste (text and image) between client and domU. It also
>> +requires vdagent service installed on domU o.s. to work. The default
>> is 0.
>> +
>> =back
>> =head3 Miscellaneous Emulated Hardware
>> diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
>> index cb9c822..8db5460 100644
>> --- a/tools/libxl/libxl_create.c
>> +++ b/tools/libxl/libxl_create.c
>> @@ -288,6 +288,7 @@ int libxl__domain_build_info_setdefault(libxl__gc
>> *gc,
>> libxl_defbool_setdefault(&b_info->u.hvm.spice.disable_ticketing,
>> false);
>> libxl_defbool_setdefault(&b_info->u.hvm.spice.agent_mouse, true);
>> + libxl_defbool_setdefault(&b_info->u.hvm.spice.vdagent, false);
>> }
>> libxl_defbool_setdefault(&b_info->u.hvm.nographic, false);
>> diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
>> index d10a58f..bc605e4 100644
>> --- a/tools/libxl/libxl_dm.c
>> +++ b/tools/libxl/libxl_dm.c
>> @@ -465,6 +465,12 @@ static char **
>> libxl__build_device_model_args_new(libxl__gc *gc,
>> flexarray_append(dm_args, "-spice");
>> flexarray_append(dm_args, spiceoptions);
>> + if (libxl_defbool_val(b_info->u.hvm.spice.vdagent)) {
>> + flexarray_vappend(dm_args, "-device", "virtio-serial",
>> + "-chardev", "spicevmc,id=vdagent,name=vdagent",
>> "-device",
>> + "virtserialport,chardev=vdagent,name=com.redhat.spice.0",
>> + NULL);
>> + }
>> }
>> switch (b_info->u.hvm.vga.kind) {
>> diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
>> index ecf1f0b..14425d1 100644
>> --- a/tools/libxl/libxl_types.idl
>> +++ b/tools/libxl/libxl_types.idl
>> @@ -172,6 +172,7 @@ libxl_spice_info = Struct("spice_info", [
>> ("disable_ticketing", libxl_defbool),
>> ("passwd", string),
>> ("agent_mouse", libxl_defbool),
>> + ("vdagent", libxl_defbool),
>> ])
>> libxl_sdl_info = Struct("sdl_info", [
>> diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
>> index c1a969b..44a632c 100644
>> --- a/tools/libxl/xl_cmdimpl.c
>> +++ b/tools/libxl/xl_cmdimpl.c
>> @@ -1491,6 +1491,8 @@ skip_vfb:
>> &b_info->u.hvm.spice.passwd, 0);
>> xlu_cfg_get_defbool(config, "spiceagent_mouse",
>> &b_info->u.hvm.spice.agent_mouse, 0);
>> + xlu_cfg_get_defbool(config, "spicevdagent",
>> + &b_info->u.hvm.spice.vdagent, 0);
>> xlu_cfg_get_defbool(config, "nographic",
>> &b_info->u.hvm.nographic, 0);
>> xlu_cfg_get_defbool(config, "gfx_passthru",
>> &b_info->u.hvm.gfx_passthru, 0);
>
> I haven't seen any more replies about that patch.
>
> The complete Ian question was:
>> What are the security implications ?
>
> I don't know the details about security implications but I think risks
> are minimal. vdagent is disabled by default, therefore you must enable
> it if you want to use it, and you need the spice client and vdagent
> must be installed on the domU os. Furthermore spice can be protected
> with password and/or ssl.
>
>>
>> In particular, does it mean that when the user has a spice client
>> connected to a guest, the guest can spy on the user's clipboard all
>> the time ?
>
> I don't know, do you think we should ask for details about security
> implications to qemu or spice experts? (added qemu-devel and
> spice-devel on cc)
Ping...
More information about the Spice-devel
mailing list