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>
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)
error:
VIR_FREE(listenNodes);
VIR_FREE(listenAddr);
+ VIR_FREE(socketPath);
ctxt->node = save;
return ret;
}
<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>