]> xenbits.xensource.com Git - libvirt.git/commitdiff
domain_conf: call ...ListensParseXML only for appropriate graphics
authorPavel Hrdina <phrdina@redhat.com>
Thu, 7 Apr 2016 11:08:58 +0000 (13:08 +0200)
committerPavel Hrdina <phrdina@redhat.com>
Wed, 13 Apr 2016 08:43:49 +0000 (10:43 +0200)
Instead of calling the virDomainGraphicsListensParseXML function for all
graphics types and ignore the wrong ones move the call only to graphics
types where we supports listen elements.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
src/conf/domain_conf.c

index 9f5f3b20a19546707748f7afe6c63a01700b9451..446fbc561df39b083b9b3f5b86ca0b89b7953111 100644 (file)
@@ -10641,13 +10641,6 @@ virDomainGraphicsListensParseXML(virDomainGraphicsDefPtr def,
 
     ctxt->node = node;
 
-    if (def->type != VIR_DOMAIN_GRAPHICS_TYPE_VNC &&
-        def->type != VIR_DOMAIN_GRAPHICS_TYPE_RDP &&
-        def->type != VIR_DOMAIN_GRAPHICS_TYPE_SPICE) {
-        ret = 0;
-        goto error;
-    }
-
     /* parse the <listen> subelements for graphics types that support it */
     nListens = virXPathNodeSet("./listen", ctxt, &listenNodes);
     if (nListens < 0)
@@ -10708,6 +10701,7 @@ virDomainGraphicsListensParseXML(virDomainGraphicsDefPtr def,
 static int
 virDomainGraphicsDefParseXMLVNC(virDomainGraphicsDefPtr def,
                                 xmlNodePtr node,
+                                xmlXPathContextPtr ctxt,
                                 unsigned int flags)
 {
     char *port = virXMLPropString(node, "port");
@@ -10716,6 +10710,9 @@ virDomainGraphicsDefParseXMLVNC(virDomainGraphicsDefPtr def,
     char *autoport = virXMLPropString(node, "autoport");
     int ret = -1;
 
+    if (virDomainGraphicsListensParseXML(def, node, ctxt, flags) < 0)
+        goto error;
+
     if (port) {
         if (virStrToLong_i(port, NULL, 10, &def->data.vnc.port) < 0) {
             virReportError(VIR_ERR_INTERNAL_ERROR,
@@ -10816,6 +10813,7 @@ virDomainGraphicsDefParseXMLSDL(virDomainGraphicsDefPtr def,
 static int
 virDomainGraphicsDefParseXMLRDP(virDomainGraphicsDefPtr def,
                                 xmlNodePtr node,
+                                xmlXPathContextPtr ctxt,
                                 unsigned int flags)
 {
     char *port = virXMLPropString(node, "port");
@@ -10824,6 +10822,9 @@ virDomainGraphicsDefParseXMLRDP(virDomainGraphicsDefPtr def,
     char *multiUser = virXMLPropString(node, "multiUser");
     int ret = -1;
 
+    if (virDomainGraphicsListensParseXML(def, node, ctxt, flags) < 0)
+        goto error;
+
     if (port) {
         if (virStrToLong_i(port, NULL, 10, &def->data.rdp.port) < 0) {
             virReportError(VIR_ERR_INTERNAL_ERROR,
@@ -10894,6 +10895,7 @@ virDomainGraphicsDefParseXMLDesktop(virDomainGraphicsDefPtr def,
 static int
 virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
                                   xmlNodePtr node,
+                                  xmlXPathContextPtr ctxt,
                                   unsigned int flags)
 {
     xmlNodePtr cur;
@@ -10904,6 +10906,9 @@ virDomainGraphicsDefParseXMLSpice(virDomainGraphicsDefPtr def,
     int defaultModeVal;
     int ret = -1;
 
+    if (virDomainGraphicsListensParseXML(def, node, ctxt, flags) < 0)
+        goto error;
+
     if (port) {
         if (virStrToLong_i(port, NULL, 10, &def->data.spice.port) < 0) {
             virReportError(VIR_ERR_INTERNAL_ERROR,
@@ -11216,12 +11221,9 @@ virDomainGraphicsDefParseXML(xmlNodePtr node,
         goto error;
     }
 
-    if (virDomainGraphicsListensParseXML(def, node, ctxt, flags) < 0)
-        goto error;
-
     switch ((virDomainGraphicsType)def->type) {
     case VIR_DOMAIN_GRAPHICS_TYPE_VNC:
-        if (virDomainGraphicsDefParseXMLVNC(def, node, flags) < 0)
+        if (virDomainGraphicsDefParseXMLVNC(def, node, ctxt, flags) < 0)
             goto error;
         break;
     case VIR_DOMAIN_GRAPHICS_TYPE_SDL:
@@ -11229,7 +11231,7 @@ virDomainGraphicsDefParseXML(xmlNodePtr node,
             goto error;
         break;
     case VIR_DOMAIN_GRAPHICS_TYPE_RDP:
-        if (virDomainGraphicsDefParseXMLRDP(def, node, flags) < 0)
+        if (virDomainGraphicsDefParseXMLRDP(def, node, ctxt, flags) < 0)
             goto error;
         break;
     case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP:
@@ -11237,7 +11239,7 @@ virDomainGraphicsDefParseXML(xmlNodePtr node,
             goto error;
         break;
     case VIR_DOMAIN_GRAPHICS_TYPE_SPICE:
-        if (virDomainGraphicsDefParseXMLSpice(def, node, flags) < 0)
+        if (virDomainGraphicsDefParseXMLSpice(def, node, ctxt, flags) < 0)
             goto error;
         break;
     case VIR_DOMAIN_GRAPHICS_TYPE_LAST: