On 05/06/2013 03:19 PM, Guannan Ren wrote: > QEMU_CAPS_VNC_DISPLAY_POLICY (qemu >= v1.10) > --- > docs/formatdomain.html.in | 13 +++++++++++-- > docs/schemas/domaincommon.rng | 9 +++++++++ > src/qemu/qemu_capabilities.c | 12 ++++++++---- > src/qemu/qemu_capabilities.h | 1 + > tests/qemuhelptest.c | 9 ++++++--- > 5 files changed, 35 insertions(+), 9 deletions(-) > > diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in > index 572d7ee..50aa2db 100644 > --- a/docs/formatdomain.html.in > +++ b/docs/formatdomain.html.in > @@ -3493,7 +3493,7 @@ qemu-kvm -net nic,model=? /dev/null > ... > <devices> > <graphics type='sdl' display=':0.0'/> > - <graphics type='vnc' port='5904'> > + <graphics type='vnc' port='5904' policy='allow-exclusive'> > <listen type='address' address='1.2.3.4'/> > </graphics> > <graphics type='rdp' autoport='yes' multiUser='yes' /> > @@ -3536,7 +3536,16 @@ qemu-kvm -net nic,model=? /dev/null > allows control of connected client during password changes. > VNC accepts <code>keep</code> value only. > <span class="since">since 0.9.3</span> > - NB, this may not be supported by all hypervisors.<br/> <br/> > + NB, this may not be supported by all hypervisors.<br/> > + The optional <code>policy</code> attribute specifies vnc server > + display sharing policy. "allow-exclusive" allows clients to ask > + for exclusive access by dropping other connections. Connecting > + multiple clients in parallel requires all clients asking for a > + shared session (vncviewer: -Shared switch). This is the default > + value. "force-shared" disables exclusive client access, every > + connection has to specify -Shared switch for vncviewer. "ignore" > + welcomes every connection unconditionally > + <span class="since">since 1.0.6</span>. <br/> <br/> > Rather than using listen/port, QEMU supports a > <code>socket</code> attribute for listening on a unix > domain socket path.<span class="since">Since 0.8.8</span> > diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng > index 10596dc..c3a7fbd 100644 > --- a/docs/schemas/domaincommon.rng > +++ b/docs/schemas/domaincommon.rng > @@ -2075,6 +2075,15 @@ > <ref name="addrIPorName"/> > </attribute> > </optional> > + <optional> > + <attribute name='policy'> > + <choice> > + <value>allow-exclusive</value> > + <value>force-shared</value> > + <value>ignore</value> > + </choice> > + </attribute> > + </optional> > </group> > <group> > <optional> These two hunks seem like they would fit better in the later patches. And naming the attribute 'sharingPolicy' or just 'sharing' might be more clear. > diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c > index a3a8d1f..d758691 100644 > --- a/src/qemu/qemu_capabilities.c > +++ b/src/qemu/qemu_capabilities.c > @@ -221,9 +221,10 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST, > "tpm-tis", > > "nvram", /* 140 */ > - "pci-bridge", /* 141 */ > - "vfio-pci", /* 142 */ > - "vfio-pci.bootindex", /* 143 */ > + "pci-bridge", > + "vfio-pci", > + "vfio-pci.bootindex", > + "vnc-display-policy", > ); > Oops, I seem to have started a trend when I forgot to delete that comment after rebase :) > struct _virQEMUCaps { > @@ -1181,8 +1182,10 @@ virQEMUCapsComputeCmdFlags(const char *help, > if (version >= 11000) > virQEMUCapsSet(qemuCaps, QEMU_CAPS_CPU_HOST); > > - if (version >= 1001000) > + if (version >= 1001000) { > virQEMUCapsSet(qemuCaps, QEMU_CAPS_IPV6_MIGRATION); > + virQEMUCapsSet(qemuCaps, QEMU_CAPS_VNC_DISPLAY_POLICY); > + } > > if (version >= 1002000) > virQEMUCapsSet(qemuCaps, QEMU_CAPS_DEVICE_VIDEO_PRIMARY); Is there a help string we could look for instead of setting it based on version? > diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h > index 213f63c..ec39325 100644 > --- a/src/qemu/qemu_capabilities.h > +++ b/src/qemu/qemu_capabilities.h > @@ -182,6 +182,7 @@ enum virQEMUCapsFlags { > QEMU_CAPS_DEVICE_PCI_BRIDGE = 141, /* -device pci-bridge */ > QEMU_CAPS_DEVICE_VFIO_PCI = 142, /* -device vfio-pci */ > QEMU_CAPS_VFIO_PCI_BOOTINDEX = 143, /* bootindex param for vfio-pci device */ > + QEMU_CAPS_VNC_DISPLAY_POLICY = 144, /* set display sharing policy */ > > QEMU_CAPS_LAST, /* this must always be the last item */ > }; IMHO VNC_SHARING_POLICY would be more fitting. Jan -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list