[libvirt] [PATCH v4 14/14] vnc: add support for listen type none

Pavel Hrdina phrdina at redhat.com
Thu May 19 11:35:33 UTC 2016


Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
---
 docs/formatdomain.html.in                          |  3 ++-
 src/conf/domain_conf.c                             |  3 ++-
 src/qemu/qemu_command.c                            |  3 +++
 .../qemuxml2argv-graphics-vnc-none.args            | 20 +++++++++++++++
 .../qemuxml2argv-graphics-vnc-none.xml             | 30 ++++++++++++++++++++++
 tests/qemuxml2argvtest.c                           |  1 +
 6 files changed, 58 insertions(+), 2 deletions(-)
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-none.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-none.xml

diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 18857bc..c8d881c 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -5367,7 +5367,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 only by <code>spice</code>.
+          this graphics device. Supported only by <code>vnc</code> and
+          <code>spice</code>.
         </p>
       </dd>
     </dl>
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index da4f104..5eb5aa2 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -10746,7 +10746,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);
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index e3e2481..b3ab91b 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -7435,6 +7435,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
index 0000000..69d1991
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-none.args
@@ -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
index 0000000..72a4819
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-none.xml
@@ -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>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index da678d7..66f8f92 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -905,6 +905,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);
-- 
2.8.2




More information about the libvir-list mailing list