On 01/10/2011 12:40 PM, Eric Blake wrote:
On 01/10/2011 10:15 AM, Cole Robinson wrote:
> QEMU supports serving VNC over a unix domain socket rather than traditional
> TCP host/port. This is specified with:
>
> <graphics type='vnc' socket='/foo/bar/baz'/>
>
> Currently not hooked up with the security driver, I'll wait for Dan's
> big reorg. I also have a virtinst/virt-manager patch queued locally to
> handle this change.
>
> +++ b/docs/schemas/domain.rng
> @@ -1116,6 +1116,11 @@
> </attribute>
> </optional>
> <optional>
> + <attribute name="socket">
> + <ref name="absFilePath"/>
> + </attribute>
> + </optional>
> + <optional>
Do we want to use a <choice> block, so that you either specify a <group>
of port/autoport/listen or the single attribute of socket? That is, it
doesn't make sense to mix the two connection styles, and the relaxNG
validation can be tweaked to detect an improper mix.
Good point, I'll fix that.
> +++ b/src/qemu/qemu_command.c
> @@ -3511,7 +3511,11 @@ qemuBuildCommandLine(virConnectPtr conn,
> def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC) {
> virBuffer opt = VIR_BUFFER_INITIALIZER;
>
> - if (qemuCmdFlags & QEMUD_CMD_FLAG_VNC_COLON) {
> + if (def->graphics[0]->data.vnc.socket) {
> + virBufferVSprintf(&opt, "unix:%s",
> + def->graphics[0]->data.vnc.socket);
Do we need a qemu_capability flag bit for this? I'm assuming that -vnc
unix:xxx is a relatively new feature.
Actually it's been around since 0.9.0 which is about 4 years, so not a
big deal IMO. We could reuse the VNC_COLON flag, but all it would let us
do is report a nicer error which probably isn't worth the effort of
translating :)
Thanks,
Cole