mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-23 04:55:18 +00:00
virml: Introduce VIR_XML_PROP_NONNEGATIVE flag
For easier attribute parsing we have virXMLProp*() family of functions. These accept flags through which a caller can pose some conditions onto the attribute value, for instance: VIR_XML_PROP_NONZERO when the attribute may not be zero, etc. What we are missing is VIR_XML_PROP_NONNEGATIVE when the attribute value may be non-negative. Obviously, this flag makes sense only for some members of the virXMLProp*() family. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
parent
ae2dabe5ed
commit
95c95f1b75
@ -643,6 +643,13 @@ virXMLPropInt(xmlNodePtr node,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((flags & VIR_XML_PROP_NONNEGATIVE) && (val < 0)) {
|
||||
virReportError(VIR_ERR_XML_ERROR,
|
||||
_("Invalid value for attribute '%s' in element '%s': '%s'. Expected non-negative value"),
|
||||
name, node->name, tmp);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((flags & VIR_XML_PROP_NONZERO) && (val == 0)) {
|
||||
virReportError(VIR_ERR_XML_ERROR,
|
||||
_("Invalid value for attribute '%s' in element '%s': Zero is not permitted"),
|
||||
|
@ -38,6 +38,9 @@ typedef enum {
|
||||
VIR_XML_PROP_NONE = 0,
|
||||
VIR_XML_PROP_REQUIRED = 1 << 0, /* Attribute may not be absent */
|
||||
VIR_XML_PROP_NONZERO = 1 << 1, /* Attribute may not be zero */
|
||||
VIR_XML_PROP_NONNEGATIVE = 1 << 2, /* Attribute may not be negative, makes
|
||||
sense only for some virXMLProp*()
|
||||
functions. */
|
||||
} virXMLPropFlags;
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user