
On 5/24/22 13:50, Boris Fiuczynski wrote:
On 5/23/22 3:08 PM, Michal Privoznik wrote:
@@ -6709,21 +6709,13 @@ static int virDomainDeviceAddressParseXML(xmlNodePtr address, virDomainDeviceInfo *info) { - g_autofree char *type = virXMLPropString(address, "type"); - - if (type) { - if ((info->type = virDomainDeviceAddressTypeFromString(type)) <= 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown address type '%s'"), type); - return -1; - } - } else { - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("No type specified for device address")); + if (virXMLPropEnum(address, "type", + virDomainDeviceAddressTypeFromString, + VIR_XML_PROP_NONZERO | VIR_XML_PROP_REQUIRED, + &info->type) < 0) return -1; - }
For my taste the resulting generic error messages look a bit different and besides the different message texts the error numbers change:
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unknown address type '%s'"), type); turns into virReportError(VIR_ERR_XML_ERROR, _("Invalid value for attribute '%s' in element '%s': '%s'."), name, node->name, NULLSTR(tmp));
and
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("No type specified for device address")); turns into virReportError(VIR_ERR_XML_ERROR, _("Missing required attribute '%s' in element '%s'"), name, node->name);
Don't changes like this have an impact on the user?
They do. We don't really guarantee error codes stability though. But okay, let me postpone pushing these until there's a broader agreement. Michal