1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

virDomainKeyWrapCipherDefParseXML: Use virXMLProp*

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Tim Wiederhake 2021-04-21 17:51:24 +02:00 committed by Michal Privoznik
parent 73a3ac414f
commit 931afa7d99

View File

@ -1456,46 +1456,28 @@ static int
virDomainKeyWrapCipherDefParseXML(virDomainKeyWrapDef *keywrap, virDomainKeyWrapCipherDefParseXML(virDomainKeyWrapDef *keywrap,
xmlNodePtr node) xmlNodePtr node)
{ {
int state_type; virDomainKeyWrapCipherName name;
int name_type; virTristateSwitch state;
g_autofree char *name = NULL;
g_autofree char *state = NULL;
if (!(name = virXMLPropString(node, "name"))) { if (virXMLPropEnum(node, "name", virDomainKeyWrapCipherNameTypeFromString,
virReportError(VIR_ERR_CONF_SYNTAX, "%s", VIR_XML_PROP_REQUIRED, &name) < 0)
_("missing name for cipher"));
return -1; return -1;
}
if ((name_type = virDomainKeyWrapCipherNameTypeFromString(name)) < 0) { if (virXMLPropTristateSwitch(node, "state", VIR_XML_PROP_REQUIRED,
virReportError(VIR_ERR_CONF_SYNTAX, &state) < 0)
_("%s is not a supported cipher name"), name);
return -1; return -1;
}
if (!(state = virXMLPropString(node, "state"))) { switch (name) {
virReportError(VIR_ERR_CONF_SYNTAX,
_("missing state for cipher named %s"), name);
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) {
case VIR_DOMAIN_KEY_WRAP_CIPHER_NAME_AES: case VIR_DOMAIN_KEY_WRAP_CIPHER_NAME_AES:
if (keywrap->aes != VIR_TRISTATE_SWITCH_ABSENT) { if (keywrap->aes != VIR_TRISTATE_SWITCH_ABSENT) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
_("A domain definition can have no more than " _("A domain definition can have no more than "
"one cipher node with name %s"), "one cipher node with name %s"),
virDomainKeyWrapCipherNameTypeToString(name_type)); virDomainKeyWrapCipherNameTypeToString(name));
return -1; return -1;
} }
keywrap->aes = state_type; keywrap->aes = state;
break; break;
case VIR_DOMAIN_KEY_WRAP_CIPHER_NAME_DEA: case VIR_DOMAIN_KEY_WRAP_CIPHER_NAME_DEA:
@ -1503,11 +1485,11 @@ virDomainKeyWrapCipherDefParseXML(virDomainKeyWrapDef *keywrap,
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
_("A domain definition can have no more than " _("A domain definition can have no more than "
"one cipher node with name %s"), "one cipher node with name %s"),
virDomainKeyWrapCipherNameTypeToString(name_type)); virDomainKeyWrapCipherNameTypeToString(name));
return -1; return -1;
} }
keywrap->dea = state_type; keywrap->dea = state;
break; break;
case VIR_DOMAIN_KEY_WRAP_CIPHER_NAME_LAST: case VIR_DOMAIN_KEY_WRAP_CIPHER_NAME_LAST: