diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 5c1712cb46..f48020f893 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -12065,7 +12065,6 @@ virDomainWatchdogDefParseXML(virDomainXMLOption *xmlopt, unsigned int flags) { virDomainWatchdogDef *def; - g_autofree char *action = NULL; def = g_new0(virDomainWatchdogDef, 1); @@ -12076,16 +12075,12 @@ virDomainWatchdogDefParseXML(virDomainXMLOption *xmlopt, goto error; } - action = virXMLPropString(node, "action"); - if (action == NULL) { - def->action = VIR_DOMAIN_WATCHDOG_ACTION_RESET; - } else { - def->action = virDomainWatchdogActionTypeFromString(action); - if (def->action < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown watchdog action '%1$s'"), action); - goto error; - } + if (virXMLPropEnumDefault(node, "action", + virDomainWatchdogActionTypeFromString, + VIR_XML_PROP_NONE, + &def->action, + VIR_DOMAIN_WATCHDOG_ACTION_RESET) < 0) { + goto error; } if (virDomainDeviceInfoParseXML(xmlopt, node, ctxt, &def->info, flags) < 0) diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index e7c663b0e9..77e5b26957 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1760,7 +1760,7 @@ typedef enum { struct _virDomainWatchdogDef { virDomainWatchdogModel model; - int action; + virDomainWatchdogAction action; virDomainDeviceInfo info; };