[libvirt] [PATCH v3 01/14] graphics: don't parse listens if socket attribute is present

Pavel Hrdina phrdina at redhat.com
Thu May 12 15:15:45 UTC 2016


If socket attribute is present we start VNC that listens only on that
unix socket.  This makes the parser behave the same way as we actually
use the socket attribute.

Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
---
 src/conf/domain_conf.c                                            | 8 ++++++++
 .../genericxml2xmloutdata/generic-graphics-vnc-socket-listen.xml  | 4 +---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index ed0c471..0ae8e4d 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -10737,11 +10737,18 @@ virDomainGraphicsListensParseXML(virDomainGraphicsDefPtr def,
     xmlNodePtr save = ctxt->node;
     virDomainGraphicsListenDefPtr address = NULL;
     char *listenAddr = NULL;
+    char *socketPath = NULL;
     int nListens;
     int ret = -1;
 
     ctxt->node = node;
 
+    if (def->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC &&
+        (socketPath = virXMLPropString(node, "socket"))) {
+        ret = 0;
+        goto error;
+    }
+
     /* parse the <listen> subelements for graphics types that support it */
     nListens = virXPathNodeSet("./listen", ctxt, &listenNodes);
     if (nListens < 0)
@@ -10794,6 +10801,7 @@ virDomainGraphicsListensParseXML(virDomainGraphicsDefPtr def,
  error:
     VIR_FREE(listenNodes);
     VIR_FREE(listenAddr);
+    VIR_FREE(socketPath);
     ctxt->node = save;
     return ret;
 }
diff --git a/tests/genericxml2xmloutdata/generic-graphics-vnc-socket-listen.xml b/tests/genericxml2xmloutdata/generic-graphics-vnc-socket-listen.xml
index a3b82fe..d8742c6 100644
--- a/tests/genericxml2xmloutdata/generic-graphics-vnc-socket-listen.xml
+++ b/tests/genericxml2xmloutdata/generic-graphics-vnc-socket-listen.xml
@@ -19,9 +19,7 @@
     <controller type='pci' index='0' model='pci-root'/>
     <input type='mouse' bus='ps2'/>
     <input type='keyboard' bus='ps2'/>
-    <graphics type='vnc' socket='/tmp/QEMUGuest1-vnc.sock'>
-      <listen type='address' address='127.0.0.1'/>
-    </graphics>
+    <graphics type='vnc' socket='/tmp/QEMUGuest1-vnc.sock'/>
     <video>
       <model type='cirrus' vram='16384' heads='1' primary='yes'/>
     </video>
-- 
2.8.2




More information about the libvir-list mailing list