[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] [PATCH 08/17] graphics: don't parse listens if socket attribute is present



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 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 73f8620..329b911 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -10720,11 +10720,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)
@@ -10777,6 +10784,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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]