mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-11 09:17:52 +03:00
conf: Make net model enum compare case insensitive
vbox and vmx drivers do net case insensitive net model comparisons, so for example 'VMXNET3' and 'vmxnet3' and 'VmxNeT3' in the XML will translate to the same driver configuration. To convert these drivers to use net model enum, we will need to do case insensitive comparisons as well. Essentially we implement virEnumToString, but with case insensitive comparison. XML will always be formatted with the enum model string we track internally, but we will accept any case insensitive variant. Acked-by: Michal Privoznik <mprivozn@redhat.com> Signed-off-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
parent
41b002f934
commit
79c8bc7d6e
@ -29503,14 +29503,20 @@ int
|
||||
virDomainNetSetModelString(virDomainNetDefPtr net,
|
||||
const char *model)
|
||||
{
|
||||
VIR_FREE(net->modelstr);
|
||||
if ((net->model = virDomainNetModelTypeFromString(model)) >= 0)
|
||||
return 0;
|
||||
size_t i;
|
||||
|
||||
VIR_FREE(net->modelstr);
|
||||
net->model = VIR_DOMAIN_NET_MODEL_UNKNOWN;
|
||||
if (!model)
|
||||
return 0;
|
||||
|
||||
for (i = 0; i < ARRAY_CARDINALITY(virDomainNetModelTypeList); i++) {
|
||||
if (STRCASEEQ(virDomainNetModelTypeList[i], model)) {
|
||||
net->model = i;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (strspn(model, NET_MODEL_CHARS) < strlen(model)) {
|
||||
virReportError(VIR_ERR_INVALID_ARG, "%s",
|
||||
_("Model name contains invalid characters"));
|
||||
|
@ -21,7 +21,8 @@
|
||||
</interface>
|
||||
<interface type='user'>
|
||||
<mac address='00:11:22:33:44:58'/>
|
||||
<model type='virtio'/>
|
||||
<!-- explicitly testing case insensitive model compare -->
|
||||
<model type='ViRtIo'/>
|
||||
</interface>
|
||||
<interface type='user'>
|
||||
<mac address='00:11:22:33:44:58'/>
|
||||
|
Loading…
Reference in New Issue
Block a user