[libvirt PATCH 01/10] virDomainKeyWrapCipherDefParseXML: Use virXMLProp*

Tim Wiederhake twiederh at redhat.com
Wed Apr 21 15:51:24 UTC 2021


Signed-off-by: Tim Wiederhake <twiederh at redhat.com>
---
 src/conf/domain_conf.c | 40 +++++++++++-----------------------------
 1 file changed, 11 insertions(+), 29 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 0a00be4e80..cc0bdeed56 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -1449,46 +1449,28 @@ static int
 virDomainKeyWrapCipherDefParseXML(virDomainKeyWrapDef *keywrap,
                                   xmlNodePtr node)
 {
-    int state_type;
-    int name_type;
-    g_autofree char *name = NULL;
-    g_autofree char *state = NULL;
-
-    if (!(name = virXMLPropString(node, "name"))) {
-        virReportError(VIR_ERR_CONF_SYNTAX, "%s",
-                       _("missing name for cipher"));
-        return -1;
-    }
+    virDomainKeyWrapCipherName name;
+    virTristateSwitch state;
 
-    if ((name_type = virDomainKeyWrapCipherNameTypeFromString(name)) < 0) {
-        virReportError(VIR_ERR_CONF_SYNTAX,
-                       _("%s is not a supported cipher name"), name);
+    if (virXMLPropEnum(node, "name", virDomainKeyWrapCipherNameTypeFromString,
+                       VIR_XML_PROP_REQUIRED, &name) < 0)
         return -1;
-    }
 
-    if (!(state = virXMLPropString(node, "state"))) {
-        virReportError(VIR_ERR_CONF_SYNTAX,
-                       _("missing state for cipher named %s"), name);
+    if (virXMLPropTristateSwitch(node, "state", VIR_XML_PROP_REQUIRED,
+                                 &state) < 0)
         return -1;
-    }
-
-    if ((state_type = virTristateSwitchTypeFromString(state)) < 0) {
-        virReportError(VIR_ERR_CONF_SYNTAX,
-                       _("%s is not a supported cipher state"), state);
-        return -1;
-    }
 
-    switch ((virDomainKeyWrapCipherName) name_type) {
+    switch (name) {
     case VIR_DOMAIN_KEY_WRAP_CIPHER_NAME_AES:
         if (keywrap->aes != VIR_TRISTATE_SWITCH_ABSENT) {
             virReportError(VIR_ERR_INTERNAL_ERROR,
                            _("A domain definition can have no more than "
                              "one cipher node with name %s"),
-                           virDomainKeyWrapCipherNameTypeToString(name_type));
+                           virDomainKeyWrapCipherNameTypeToString(name));
 
             return -1;
         }
-        keywrap->aes = state_type;
+        keywrap->aes = state;
         break;
 
     case VIR_DOMAIN_KEY_WRAP_CIPHER_NAME_DEA:
@@ -1496,11 +1478,11 @@ virDomainKeyWrapCipherDefParseXML(virDomainKeyWrapDef *keywrap,
             virReportError(VIR_ERR_INTERNAL_ERROR,
                            _("A domain definition can have no more than "
                              "one cipher node with name %s"),
-                           virDomainKeyWrapCipherNameTypeToString(name_type));
+                           virDomainKeyWrapCipherNameTypeToString(name));
 
             return -1;
         }
-        keywrap->dea = state_type;
+        keywrap->dea = state;
         break;
 
     case VIR_DOMAIN_KEY_WRAP_CIPHER_NAME_LAST:
-- 
2.26.3




More information about the libvir-list mailing list