diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index f0a45089cc..72f6a7d8dd 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -2535,6 +2535,9 @@ virVMXParseEthernet(virConfPtr conf, int controller, virDomainNetDefPtr *def) char generatedAddress_name[48] = ""; char *generatedAddress = NULL; + char checkMACAddress_name[48] = ""; + char *checkMACAddress = NULL; + char address_name[48] = ""; char *address = NULL; @@ -2564,6 +2567,7 @@ virVMXParseEthernet(virConfPtr conf, int controller, virDomainNetDefPtr *def) VMX_BUILD_NAME(connectionType); VMX_BUILD_NAME(addressType); VMX_BUILD_NAME(generatedAddress); + VMX_BUILD_NAME(checkMACAddress); VMX_BUILD_NAME(address); VMX_BUILD_NAME(virtualDev); VMX_BUILD_NAME(features); @@ -2598,7 +2602,9 @@ virVMXParseEthernet(virConfPtr conf, int controller, virDomainNetDefPtr *def) true) < 0 || virVMXGetConfigString(conf, generatedAddress_name, &generatedAddress, true) < 0 || - virVMXGetConfigString(conf, address_name, &address, true) < 0) { + virVMXGetConfigString(conf, address_name, &address, true) < 0 || + virVMXGetConfigString(conf, checkMACAddress_name, &checkMACAddress, + true) < 0) { goto cleanup; } @@ -2613,6 +2619,8 @@ virVMXParseEthernet(virConfPtr conf, int controller, virDomainNetDefPtr *def) goto cleanup; } } + if (addressType != NULL) + (*def)->mac_type = VIR_DOMAIN_NET_MAC_TYPE_GENERATED; } else if (STRCASEEQ(addressType, "static")) { if (address != NULL) { if (virMacAddrParse(address, &(*def)->mac) < 0) { @@ -2622,6 +2630,7 @@ virVMXParseEthernet(virConfPtr conf, int controller, virDomainNetDefPtr *def) goto cleanup; } } + (*def)->mac_type = VIR_DOMAIN_NET_MAC_TYPE_STATIC; } else { virReportError(VIR_ERR_INTERNAL_ERROR, _("Expecting VMX entry '%s' to be 'generated' or 'static' or " diff --git a/tests/vmx2xmldata/vmx2xml-case-insensitive-1.xml b/tests/vmx2xmldata/vmx2xml-case-insensitive-1.xml index fd38cfd67f..7cb6413941 100644 --- a/tests/vmx2xmldata/vmx2xml-case-insensitive-1.xml +++ b/tests/vmx2xmldata/vmx2xml-case-insensitive-1.xml @@ -22,7 +22,7 @@ - +