]> xenbits.xensource.com Git - libvirt.git/commitdiff
vnc: add support for listen type none
authorPavel Hrdina <phrdina@redhat.com>
Wed, 8 Jun 2016 13:15:54 +0000 (15:15 +0200)
committerPavel Hrdina <phrdina@redhat.com>
Thu, 9 Jun 2016 12:46:45 +0000 (14:46 +0200)
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
docs/formatdomain.html.in
src/conf/domain_conf.c
src/qemu/qemu_command.c
tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-none.args [new file with mode: 0644]
tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-none.xml [new file with mode: 0644]
tests/qemuxml2argvtest.c

index cf983ca04298f35d3900412dd7eefbd0ff2fa19a..fb3ec5ee3e29eeb6a14f545058a9742016c50164 100644 (file)
@@ -5384,7 +5384,8 @@ qemu-kvm -net nic,model=? /dev/null
           virDomainOpenGraphicsFD(). No other listen types are allowed if this
           one is used and the graphics device doesn't listen anywhere. You need
           to use one of the two APIs to pass a FD to QEMU in order to connect to
-          this graphics device. Supported by graphics type <code>spice</code>.
+          this graphics device. Supported by graphics type <code>vnc</code> and
+          <code>spice</code>.
         </p>
       </dd>
     </dl>
index 1193c0864ba316a47cd09979bf244e42fdd57a0b..85f6e31191d856e90b7b223287a48456189316c7 100644 (file)
@@ -10982,7 +10982,8 @@ virDomainGraphicsListenDefParseXML(virDomainGraphicsListenDefPtr def,
         }
         break;
     case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NONE:
-        if (graphics->type != VIR_DOMAIN_GRAPHICS_TYPE_SPICE) {
+        if (graphics->type != VIR_DOMAIN_GRAPHICS_TYPE_SPICE &&
+            graphics->type != VIR_DOMAIN_GRAPHICS_TYPE_VNC) {
             virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
                            _("listen type 'none' is not available for "
                              "graphics type '%s'"), graphicsType);
index d3e8172b878502c92b8ffde0b64bf7815013fbad..490260f15e4f6968ea874bd8fa891083ae2d0375 100644 (file)
@@ -7268,6 +7268,9 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg,
         break;
 
     case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NONE:
+        virBufferAddLit(&opt, "none");
+        break;
+
     case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST:
         break;
     }
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-none.args b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-none.args
new file mode 100644 (file)
index 0000000..69d1991
--- /dev/null
@@ -0,0 +1,20 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu \
+-name QEMUGuest1 \
+-S \
+-M pc \
+-m 214 \
+-smp 1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-nodefaults \
+-monitor unix:/tmp/lib/domain--1-QEMUGuest1/monitor.sock,server,nowait \
+-no-acpi \
+-boot c \
+-usb \
+-vnc none \
+-vga cirrus
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-none.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-none.xml
new file mode 100644 (file)
index 0000000..72a4819
--- /dev/null
@@ -0,0 +1,30 @@
+<domain type='qemu'>
+  <name>QEMUGuest1</name>
+  <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+  <memory unit='KiB'>219100</memory>
+  <currentMemory unit='KiB'>219100</currentMemory>
+  <vcpu placement='static'>1</vcpu>
+  <os>
+    <type arch='i686' machine='pc'>hvm</type>
+    <boot dev='hd'/>
+  </os>
+  <clock offset='utc'/>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>destroy</on_crash>
+  <devices>
+    <emulator>/usr/bin/qemu</emulator>
+    <controller type='usb' index='0'/>
+    <controller type='ide' index='0'/>
+    <controller type='pci' index='0' model='pci-root'/>
+    <input type='mouse' bus='ps2'/>
+    <input type='keyboard' bus='ps2'/>
+    <graphics type='vnc'>
+      <listen type='none'/>
+    </graphics>
+    <video>
+      <model type='cirrus' vram='16384' heads='1'/>
+    </video>
+    <memballoon model='none'/>
+  </devices>
+</domain>
index 1d88084df1ae339e70f60a3b3eceb8dc70914f48..573162fc4cc06a8dfe0d0ea9ff9cb8392fd1d9a0 100644 (file)
@@ -903,6 +903,7 @@ mymain(void)
     driver.config->vncAutoUnixSocket = false;
     DO_TEST("graphics-vnc-socket", QEMU_CAPS_VNC);
     DO_TEST("graphics-vnc-auto-socket", QEMU_CAPS_VNC);
+    DO_TEST("graphics-vnc-none", QEMU_CAPS_VNC);
 
     driver.config->vncSASL = 1;
     VIR_FREE(driver.config->vncSASLdir);