]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: Sanitize formatting of UDP chardev source
authorPeter Krempa <pkrempa@redhat.com>
Mon, 26 Sep 2016 15:15:00 +0000 (17:15 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 6 Oct 2016 06:56:51 +0000 (08:56 +0200)
Use much simpler logic to determine parts of the code to print.

src/conf/domain_conf.c

index 6a772c6666af7f646585450899a357c842e97c82..f562323657fdfbd572eb4de1d6ed4db722bae98a 100644 (file)
@@ -21394,32 +21394,22 @@ virDomainChrSourceDefFormat(virBufferPtr buf,
         break;
 
     case VIR_DOMAIN_CHR_TYPE_UDP:
-        if (def->data.udp.bindService &&
-            def->data.udp.bindHost) {
-            virBufferEscapeString(buf, "<source mode='bind' host='%s' ",
-                                  def->data.udp.bindHost);
-            virBufferEscapeString(buf, "service='%s'/>\n",
-                                  def->data.udp.bindService);
-        } else if (def->data.udp.bindHost) {
-            virBufferEscapeString(buf, "<source mode='bind' host='%s'/>\n",
-                                  def->data.udp.bindHost);
-        } else if (def->data.udp.bindService) {
-            virBufferEscapeString(buf, "<source mode='bind' service='%s'/>\n",
-                                  def->data.udp.bindService);
-        }
-
-        if (def->data.udp.connectService &&
-            def->data.udp.connectHost) {
-            virBufferEscapeString(buf, "<source mode='connect' host='%s' ",
-                                  def->data.udp.connectHost);
-            virBufferEscapeString(buf, "service='%s'/>\n",
-                                  def->data.udp.connectService);
-        } else if (def->data.udp.connectHost) {
-            virBufferEscapeString(buf, "<source mode='connect' host='%s'/>\n",
-                                  def->data.udp.connectHost);
-        } else if (def->data.udp.connectService) {
-            virBufferEscapeString(buf, "<source mode='connect' service='%s'/>\n",
-                                  def->data.udp.connectService);
+        if (def->data.udp.bindService || def->data.udp.bindHost) {
+            virBufferAddLit(buf, "<source mode='bind'");
+            if (def->data.udp.bindService)
+                virBufferEscapeString(buf, " host='%s'", def->data.udp.bindHost);
+            if (def->data.udp.bindService)
+                virBufferEscapeString(buf, " service='%s'", def->data.udp.bindService);
+            virBufferAddLit(buf, "/>\n");
+        }
+
+        if (def->data.udp.connectService || def->data.udp.connectHost) {
+            virBufferAddLit(buf, "<source mode='connect'");
+            if (def->data.udp.connectService)
+                virBufferEscapeString(buf, " host='%s'", def->data.udp.connectHost);
+            if (def->data.udp.connectService)
+                virBufferEscapeString(buf, " service='%s'", def->data.udp.connectService);
+            virBufferAddLit(buf, "/>\n");
         }
         break;