]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: separate PTY chardev source parsing
authorPavel Hrdina <phrdina@redhat.com>
Fri, 18 Aug 2017 16:19:48 +0000 (18:19 +0200)
committerPavel Hrdina <phrdina@redhat.com>
Tue, 22 Aug 2017 15:44:36 +0000 (17:44 +0200)
There is no reason why to share the same code for PTY and other file
based chardev source types.

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

index 49e24d9fe8a7b1e48ce3ee6b80ccdf266dc3ce00..9adf3330154698ad6f224e8475323d26a56a4ea7 100644 (file)
@@ -11129,14 +11129,16 @@ virDomainChrSourceDefParseXML(virDomainChrSourceDefPtr def,
                 break;
 
             case VIR_DOMAIN_CHR_TYPE_PTY:
-            case VIR_DOMAIN_CHR_TYPE_DEV:
-            case VIR_DOMAIN_CHR_TYPE_PIPE:
                 /* PTY path is only parsed from live xml.  */
-                if (def->type != VIR_DOMAIN_CHR_TYPE_PTY ||
-                    !(flags & VIR_DOMAIN_DEF_PARSE_INACTIVE))
+                if (!(flags & VIR_DOMAIN_DEF_PARSE_INACTIVE))
                     def->data.file.path = virXMLPropString(cur, "path");
                 break;
 
+            case VIR_DOMAIN_CHR_TYPE_DEV:
+            case VIR_DOMAIN_CHR_TYPE_PIPE:
+                def->data.file.path = virXMLPropString(cur, "path");
+                break;
+
             case VIR_DOMAIN_CHR_TYPE_UNIX:
                 if (virDomainChrSourceDefParseUnix(def, cur) < 0)
                     goto error;
@@ -11209,6 +11211,7 @@ virDomainChrSourceDefParseXML(virDomainChrSourceDefPtr def,
 
     switch ((virDomainChrType) def->type) {
     case VIR_DOMAIN_CHR_TYPE_NULL:
+    case VIR_DOMAIN_CHR_TYPE_PTY:
     case VIR_DOMAIN_CHR_TYPE_VC:
     case VIR_DOMAIN_CHR_TYPE_STDIO:
     case VIR_DOMAIN_CHR_TYPE_SPICEVMC:
@@ -11216,11 +11219,9 @@ virDomainChrSourceDefParseXML(virDomainChrSourceDefPtr def,
         break;
 
     case VIR_DOMAIN_CHR_TYPE_FILE:
-    case VIR_DOMAIN_CHR_TYPE_PTY:
     case VIR_DOMAIN_CHR_TYPE_DEV:
     case VIR_DOMAIN_CHR_TYPE_PIPE:
-        if (!def->data.file.path &&
-            def->type != VIR_DOMAIN_CHR_TYPE_PTY) {
+        if (!def->data.file.path) {
             virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
                            _("Missing source path attribute for char device"));
             goto error;