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:
parent
73a3ac414f
commit
931afa7d99
@ -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:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user