[libvirt] [PATCH v3 06/28] conf: Introduce virDomainChrTargetDefFormat()

Andrea Bolognani abologna at redhat.com
Sun Nov 26 22:25:27 UTC 2017


Move formatting of the <target/> element for char devices out of
virDomainChrDefFormat() and into its own function.

Signed-off-by: Andrea Bolognani <abologna at redhat.com>
Reviewed-by: Pavel Hrdina <phrdina at redhat.com>
---
 src/conf/domain_conf.c | 67 ++++++++++++++++++++++++++++++--------------------
 1 file changed, 40 insertions(+), 27 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 6ba6f923c..c0e239def 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -23945,38 +23945,15 @@ virDomainChrSourceDefFormat(virBufferPtr buf,
     return -1;
 }
 
+
 static int
-virDomainChrDefFormat(virBufferPtr buf,
-                      virDomainChrDefPtr def,
-                      unsigned int flags)
+virDomainChrTargetDefFormat(virBufferPtr buf,
+                            const virDomainChrDef *def,
+                            unsigned int flags)
 {
-    const char *elementName = virDomainChrDeviceTypeToString(def->deviceType);
     const char *targetType = virDomainChrTargetTypeToString(def->deviceType,
                                                             def->targetType);
-    bool tty_compat;
-
-    int ret = 0;
-
-    if (!elementName) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("unexpected char device type %d"),
-                       def->deviceType);
-        return -1;
-    }
 
-    virBufferAsprintf(buf, "<%s", elementName);
-    virBufferAdjustIndent(buf, 2);
-    tty_compat = (def->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE &&
-                  def->target.port == 0 &&
-                  def->source->type == VIR_DOMAIN_CHR_TYPE_PTY &&
-                  !(flags & VIR_DOMAIN_DEF_FORMAT_INACTIVE) &&
-                  def->source->data.file.path);
-    if (virDomainChrAttrsDefFormat(buf, def->source, tty_compat) < 0)
-        return -1;
-    virBufferAddLit(buf, ">\n");
-    virDomainChrSourceDefFormat(buf, def->source, flags);
-
-    /* Format <target> block */
     switch (def->deviceType) {
     case VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL: {
         if (!targetType) {
@@ -24048,6 +24025,42 @@ virDomainChrDefFormat(virBufferPtr buf,
         break;
     }
 
+    return 0;
+}
+
+
+static int
+virDomainChrDefFormat(virBufferPtr buf,
+                      virDomainChrDefPtr def,
+                      unsigned int flags)
+{
+    const char *elementName = virDomainChrDeviceTypeToString(def->deviceType);
+    bool tty_compat;
+
+    int ret = 0;
+
+    if (!elementName) {
+        virReportError(VIR_ERR_INTERNAL_ERROR,
+                       _("unexpected char device type %d"),
+                       def->deviceType);
+        return -1;
+    }
+
+    virBufferAsprintf(buf, "<%s", elementName);
+    virBufferAdjustIndent(buf, 2);
+    tty_compat = (def->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE &&
+                  def->target.port == 0 &&
+                  def->source->type == VIR_DOMAIN_CHR_TYPE_PTY &&
+                  !(flags & VIR_DOMAIN_DEF_FORMAT_INACTIVE) &&
+                  def->source->data.file.path);
+    if (virDomainChrAttrsDefFormat(buf, def->source, tty_compat) < 0)
+        return -1;
+    virBufferAddLit(buf, ">\n");
+    virDomainChrSourceDefFormat(buf, def->source, flags);
+
+    if (virDomainChrTargetDefFormat(buf, def, flags) < 0)
+       return -1;
+
     virDomainDeviceInfoFormat(buf, &def->info, flags);
 
     virBufferAdjustIndent(buf, -2);
-- 
2.14.3




More information about the libvir-list mailing list