[PATCH] XML <source bridge='VMnet0'/> update in <interface type='bridge'/>

Kristina Hanicova khanicov at redhat.com
Wed Mar 24 16:47:44 UTC 2021


Previously, we accepted empty bridge name, because some old versions of
VMWare Workstation did not put it into the config. But this doesn't make
much sense - to have an interface type bridge with no name. We
circumvented this problem by generating an empty name but that is
equally wrong.

Therefore, fill in missing bridge names (according to the documentation
[1] the default bridge name is VMnet0) and error out if bridge name is
missing.

This partially reverts f246cdb5aca13ac9409b2ad43087e3078615ffcb

1: https://docs.vmware.com/en/VMware-Workstation-Player-for-Linux/16.0/com.vmware.player.linux.using.doc/GUID-BAFA66C3-81F0-4FCA-84C4-D9F7D258A60A.html

Signed-off-by: Kristina Hanicova <khanicov at redhat.com>
---
 src/vmx/vmx.c                                      | 10 +++-------
 tests/vmx2xmldata/vmx2xml-fusion-in-the-wild-1.vmx |  2 ++
 tests/vmx2xmldata/vmx2xml-fusion-in-the-wild-1.xml |  4 ++--
 tests/vmx2xmldata/vmx2xml-ws-in-the-wild-2.vmx     |  1 +
 tests/vmx2xmldata/vmx2xml-ws-in-the-wild-2.xml     |  2 +-
 tests/xml2vmxdata/xml2vmx-fusion-in-the-wild-1.vmx |  2 ++
 tests/xml2vmxdata/xml2vmx-fusion-in-the-wild-1.xml |  4 ++--
 tests/xml2vmxdata/xml2vmx-ws-in-the-wild-2.vmx     |  1 +
 tests/xml2vmxdata/xml2vmx-ws-in-the-wild-2.xml     |  2 +-
 9 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c
index 76d01a36de..82d3409c79 100644
--- a/src/vmx/vmx.c
+++ b/src/vmx/vmx.c
@@ -2803,11 +2803,8 @@ virVMXParseEthernet(virConfPtr conf, int controller, virDomainNetDefPtr *def)
         STRCASEEQ(connectionType, "bridged") ||
         STRCASEEQ(connectionType, "custom")) {
         if (virVMXGetConfigString(conf, networkName_name, &networkName,
-                                  true) < 0)
+                                  false) < 0)
             goto cleanup;
-
-        if (!networkName)
-            networkName = g_strdup("");
     }
 
     /* vmx:vnet -> def:data.ifname */
@@ -3924,9 +3921,8 @@ virVMXFormatEthernet(virDomainNetDefPtr def, int controller,
     /* def:type, def:ifname -> vmx:connectionType */
     switch (def->type) {
       case VIR_DOMAIN_NET_TYPE_BRIDGE:
-        if (STRNEQ(def->data.bridge.brname, ""))
-            virBufferAsprintf(buffer, "ethernet%d.networkName = \"%s\"\n",
-                              controller, def->data.bridge.brname);
+        virBufferAsprintf(buffer, "ethernet%d.networkName = \"%s\"\n",
+                          controller, def->data.bridge.brname);
 
         if (def->ifname != NULL) {
             virBufferAsprintf(buffer, "ethernet%d.connectionType = \"custom\"\n",
diff --git a/tests/vmx2xmldata/vmx2xml-fusion-in-the-wild-1.vmx b/tests/vmx2xmldata/vmx2xml-fusion-in-the-wild-1.vmx
index ef6af19b49..75583bdc53 100644
--- a/tests/vmx2xmldata/vmx2xml-fusion-in-the-wild-1.vmx
+++ b/tests/vmx2xmldata/vmx2xml-fusion-in-the-wild-1.vmx
@@ -12,9 +12,11 @@ sound.filename = "-1"
 sound.autodetect = "TRUE"
 usb.present = "TRUE"
 ethernet0.present = "TRUE"
+ethernet0.networkName = "VMnet0"
 ethernet0.addressType = "generated"
 ethernet0.connectionType = "bridged"
 ethernet1.present = "TRUE"
+ethernet1.networkName = "VMnet0"
 ethernet1.addressType = "generated"
 ethernet1.connectionType = "bridged"
 scsi0:0.present = "TRUE"
diff --git a/tests/vmx2xmldata/vmx2xml-fusion-in-the-wild-1.xml b/tests/vmx2xmldata/vmx2xml-fusion-in-the-wild-1.xml
index 2dd46eb2b1..f6e9f4acdf 100644
--- a/tests/vmx2xmldata/vmx2xml-fusion-in-the-wild-1.xml
+++ b/tests/vmx2xmldata/vmx2xml-fusion-in-the-wild-1.xml
@@ -26,11 +26,11 @@
     <controller type='ide' index='0'/>
     <interface type='bridge'>
       <mac address='00:0c:29:3b:64:ea' type='generated'/>
-      <source bridge=''/>
+      <source bridge='VMnet0'/>
     </interface>
     <interface type='bridge'>
       <mac address='00:0c:29:3b:64:f4' type='generated'/>
-      <source bridge=''/>
+      <source bridge='VMnet0'/>
     </interface>
     <video>
       <model type='vmvga' vram='4096' primary='yes'/>
diff --git a/tests/vmx2xmldata/vmx2xml-ws-in-the-wild-2.vmx b/tests/vmx2xmldata/vmx2xml-ws-in-the-wild-2.vmx
index 6e078d4d92..172aa686ed 100644
--- a/tests/vmx2xmldata/vmx2xml-ws-in-the-wild-2.vmx
+++ b/tests/vmx2xmldata/vmx2xml-ws-in-the-wild-2.vmx
@@ -18,6 +18,7 @@ floppy0.startConnected = "FALSE"
 floppy0.fileName = ""
 floppy0.autodetect = "TRUE"
 ethernet0.present = "TRUE"
+ethernet0.networkName = "VMnet0"
 ethernet0.connectionType = "bridged"
 ethernet0.virtualDev = "e1000"
 ethernet0.wakeOnPcktRcv = "FALSE"
diff --git a/tests/vmx2xmldata/vmx2xml-ws-in-the-wild-2.xml b/tests/vmx2xmldata/vmx2xml-ws-in-the-wild-2.xml
index 628dfbaff0..6f8f30393c 100644
--- a/tests/vmx2xmldata/vmx2xml-ws-in-the-wild-2.xml
+++ b/tests/vmx2xmldata/vmx2xml-ws-in-the-wild-2.xml
@@ -26,7 +26,7 @@
     <controller type='ide' index='0'/>
     <interface type='bridge'>
       <mac address='00:50:56:2f:d3:46' type='static'/>
-      <source bridge=''/>
+      <source bridge='VMnet0'/>
       <model type='e1000'/>
     </interface>
     <video>
diff --git a/tests/xml2vmxdata/xml2vmx-fusion-in-the-wild-1.vmx b/tests/xml2vmxdata/xml2vmx-fusion-in-the-wild-1.vmx
index 9605e2d6ac..2a81cc0137 100644
--- a/tests/xml2vmxdata/xml2vmx-fusion-in-the-wild-1.vmx
+++ b/tests/xml2vmxdata/xml2vmx-fusion-in-the-wild-1.vmx
@@ -18,11 +18,13 @@ ide0:0.fileName = "auto detect"
 floppy0.present = "false"
 floppy1.present = "false"
 ethernet0.present = "true"
+ethernet0.networkName = "VMnet0"
 ethernet0.connectionType = "bridged"
 ethernet0.addressType = "generated"
 ethernet0.generatedAddress = "00:0c:29:3b:64:ea"
 ethernet0.generatedAddressOffset = "0"
 ethernet1.present = "true"
+ethernet1.networkName = "VMnet0"
 ethernet1.connectionType = "bridged"
 ethernet1.addressType = "generated"
 ethernet1.generatedAddress = "00:0c:29:3b:64:f4"
diff --git a/tests/xml2vmxdata/xml2vmx-fusion-in-the-wild-1.xml b/tests/xml2vmxdata/xml2vmx-fusion-in-the-wild-1.xml
index 0bfc7e88af..3052abd740 100644
--- a/tests/xml2vmxdata/xml2vmx-fusion-in-the-wild-1.xml
+++ b/tests/xml2vmxdata/xml2vmx-fusion-in-the-wild-1.xml
@@ -27,11 +27,11 @@
     <controller type='ide' index='0'/>
     <interface type='bridge'>
       <mac address='00:0c:29:3b:64:ea'/>
-      <source bridge=''/>
+      <source bridge='VMnet0'/>
     </interface>
     <interface type='bridge'>
       <mac address='00:0c:29:3b:64:f4'/>
-      <source bridge=''/>
+      <source bridge='VMnet0'/>
     </interface>
     <video>
       <model type='vmvga' vram='4096'/>
diff --git a/tests/xml2vmxdata/xml2vmx-ws-in-the-wild-2.vmx b/tests/xml2vmxdata/xml2vmx-ws-in-the-wild-2.vmx
index f7f40ec300..eba18eb320 100644
--- a/tests/xml2vmxdata/xml2vmx-ws-in-the-wild-2.vmx
+++ b/tests/xml2vmxdata/xml2vmx-ws-in-the-wild-2.vmx
@@ -15,6 +15,7 @@ floppy0.present = "false"
 floppy1.present = "false"
 ethernet0.present = "true"
 ethernet0.virtualDev = "e1000"
+ethernet0.networkName = "VMnet0"
 ethernet0.connectionType = "bridged"
 ethernet0.addressType = "static"
 ethernet0.address = "00:90:b9:dc:ea:81"
diff --git a/tests/xml2vmxdata/xml2vmx-ws-in-the-wild-2.xml b/tests/xml2vmxdata/xml2vmx-ws-in-the-wild-2.xml
index 30fb76c818..2bf8699149 100644
--- a/tests/xml2vmxdata/xml2vmx-ws-in-the-wild-2.xml
+++ b/tests/xml2vmxdata/xml2vmx-ws-in-the-wild-2.xml
@@ -20,7 +20,7 @@
     <controller type='scsi' index='0' model='lsilogic'/>
     <interface type='bridge'>
       <mac address='00:90:b9:dc:ea:81'/>
-      <source bridge=''/>
+      <source bridge='VMnet0'/>
       <model type='e1000'/>
     </interface>
     <video>
-- 
2.30.2




More information about the libvir-list mailing list