]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virDomainSmartcardDef: Declare 'type' as virDomainSmartcardType
authorPeter Krempa <pkrempa@redhat.com>
Mon, 11 Oct 2021 14:47:59 +0000 (16:47 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 12 Oct 2021 18:54:53 +0000 (20:54 +0200)
Use 'virXMLPropEnum' to parse it and fix all switch statements which
didn't include the VIR_DOMAIN_SMARTCARD_TYPE_LAST case.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/domain_conf.c
src/conf/domain_conf.h
src/qemu/qemu_command.c
src/qemu/qemu_validate.c
src/security/security_selinux.c

index db42918d798d7217cb5d05145b91a2f42e1a5152..818c177e725b0ff541d12d3a703e65cd6ac814bb 100644 (file)
@@ -2884,6 +2884,7 @@ void virDomainSmartcardDefFree(virDomainSmartcardDef *def)
         virObjectUnref(def->data.passthru);
         break;
 
+    case VIR_DOMAIN_SMARTCARD_TYPE_LAST:
     default:
         break;
     }
@@ -11602,7 +11603,6 @@ virDomainSmartcardDefParseXML(virDomainXMLOption *xmlopt,
                               unsigned int flags)
 {
     g_autoptr(virDomainSmartcardDef) def = NULL;
-    g_autofree char *mode = NULL;
     g_autofree char *type = NULL;
     g_autofree xmlNodePtr *certificates = NULL;
     int n = 0;
@@ -11611,18 +11611,9 @@ virDomainSmartcardDefParseXML(virDomainXMLOption *xmlopt,
     ctxt->node = node;
     def = g_new0(virDomainSmartcardDef, 1);
 
-    mode = virXMLPropString(node, "mode");
-    if (mode == NULL) {
-        virReportError(VIR_ERR_XML_ERROR, "%s",
-                       _("missing smartcard device mode"));
-        return NULL;
-    }
-    if ((def->type = virDomainSmartcardTypeFromString(mode)) < 0) {
-        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                       _("unknown smartcard device mode: %s"),
-                       mode);
+    if (virXMLPropEnum(node, "mode", virDomainSmartcardTypeFromString,
+                       VIR_XML_PROP_REQUIRED, &def->type) < 0)
         return NULL;
-    }
 
     switch (def->type) {
     case VIR_DOMAIN_SMARTCARD_TYPE_HOST:
@@ -11687,9 +11678,9 @@ virDomainSmartcardDefParseXML(virDomainXMLOption *xmlopt,
 
         break;
 
+    case VIR_DOMAIN_SMARTCARD_TYPE_LAST:
     default:
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("unknown smartcard mode"));
+        virReportEnumRangeError(virDomainSmartcardType, def->type);
         return NULL;
     }
 
@@ -25406,9 +25397,9 @@ virDomainSmartcardDefFormat(virBuffer *buf,
         virDomainChrSourceDefFormat(&childBuf, def->data.passthru, flags);
         break;
 
+    case VIR_DOMAIN_SMARTCARD_TYPE_LAST:
     default:
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("unexpected smartcard type %d"), def->type);
+        virReportEnumRangeError(virDomainSmartcardType, def->type);
         return -1;
     }
     virDomainDeviceInfoFormat(&childBuf, &def->info, flags);
index 79a27a0a368a90f85bb77505788b22709dbe7e75..e9a9298d861c6a15e96c2e57d663cf46d89e0d22 100644 (file)
@@ -1320,7 +1320,7 @@ typedef enum {
 #define VIR_DOMAIN_SMARTCARD_DEFAULT_DATABASE "/etc/pki/nssdb"
 
 struct _virDomainSmartcardDef {
-    int type; /* virDomainSmartcardType */
+    virDomainSmartcardType type;
     union {
         /* no extra data for 'host' */
         struct {
index fae2d1569c5033e989a4cb837455c194958c27ca..2d7a6ebde7d9d13525e723a4a03f96dc81cba7bc 100644 (file)
@@ -9146,6 +9146,7 @@ qemuBuildSmartcardCommandLine(virLogManager *logManager,
                           smartcard->info.alias);
         break;
 
+    case VIR_DOMAIN_SMARTCARD_TYPE_LAST:
     default:
         virReportEnumRangeError(virDomainSmartcardType, smartcard->type);
         return -1;
index 9865e2963760348f38593fe1ab345cb196aba11f..48d5c172c5668f607bd30c47d2cd9d8324506be0 100644 (file)
@@ -2117,6 +2117,7 @@ qemuValidateDomainSmartcardDef(const virDomainSmartcardDef *def,
             return -1;
         break;
 
+    case VIR_DOMAIN_SMARTCARD_TYPE_LAST:
     default:
         virReportEnumRangeError(virDomainSmartcardType, def->type);
         return -1;
index cc7245332980262f82ddfe835f4f62c00e28edcd..622a8f4c02300df6b38059b9ea41cdfcc66f36c3 100644 (file)
@@ -2696,10 +2696,9 @@ virSecuritySELinuxRestoreSecuritySmartcardCallback(virDomainDef *def,
         return virSecuritySELinuxRestoreChardevLabel(mgr, def,
                                                      dev->data.passthru, false);
 
+    case VIR_DOMAIN_SMARTCARD_TYPE_LAST:
     default:
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("unknown smartcard type %d"),
-                       dev->type);
+        virReportEnumRangeError(virDomainSmartcardType, dev->type);
         return -1;
     }
 
@@ -3103,10 +3102,9 @@ virSecuritySELinuxSetSecuritySmartcardCallback(virDomainDef *def,
         return virSecuritySELinuxSetChardevLabel(mgr, def,
                                                  dev->data.passthru, false);
 
+    case VIR_DOMAIN_SMARTCARD_TYPE_LAST:
     default:
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("unknown smartcard type %d"),
-                       dev->type);
+        virReportEnumRangeError(virDomainSmartcardType, dev->type);
         return -1;
     }