]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: don't set/clear NetDef IP addresses in qemuConnectDomainXMLToNative()
authorLaine Stump <laine@laine.org>
Tue, 7 Jun 2016 23:59:10 +0000 (19:59 -0400)
committerLaine Stump <laine@laine.org>
Sun, 26 Jun 2016 23:33:08 +0000 (19:33 -0400)
This patch removes the expanded and duplicated code that all sprung
out of two well-intentioned-but-useless settings of
net->data.(bridge|ethernet).ipaddr.

qemu has never supported even a single IP address in the interface
config, much less a list of them. All of the instances of "clearing
out the IP addresses" that are now in this function originated with
commit d8dbd6 "Basic domain XML conversions for Xen/QEMU drivers" in
May 2009, but even then the single "ipaddr" in the struct for
type='ethernet' and type='bridge' wasn't used in the qemu driver (only
in xen and openvz). Since then anyone who added a new interface type
also tacked on another unnecessary clearing of ipaddr, and when it was
made into a list of IPs (so far supported only by the LXC driver) this
simple setting was turned into a loop (well, multiple loops) to clear
them all.

src/qemu/qemu_driver.c

index d993b030a52870c61be097d3bd0bd8b1952137f5..a9c791aa92cd04dd41884eaca30278a83372c1c1 100644 (file)
@@ -6938,7 +6938,6 @@ static char *qemuConnectDomainXMLToNative(virConnectPtr conn,
                 (brname = virDomainNetGetActualBridgeName(net))) {
 
                 char *brnamecopy;
-                size_t j;
 
                 if (VIR_STRDUP(brnamecopy, brname) < 0)
                     goto cleanup;
@@ -6950,29 +6949,18 @@ static char *qemuConnectDomainXMLToNative(virConnectPtr conn,
                 net->type = VIR_DOMAIN_NET_TYPE_ETHERNET;
                 net->script = NULL;
                 net->data.ethernet.dev = brnamecopy;
-                for (j = 0; j < net->nips; j++)
-                    VIR_FREE(net->ips[j]);
-                VIR_FREE(net->ips);
-                net->nips = 0;
-
             } else {
                 /* actualType is either NETWORK or DIRECT. In either
                  * case, the best we can do is NULL everything out.
                  */
-                size_t j;
                 virDomainActualNetDefFree(net->data.network.actual);
                 memset(net, 0, sizeof(*net));
 
                 net->type = VIR_DOMAIN_NET_TYPE_ETHERNET;
                 net->script = NULL;
                 net->data.ethernet.dev = NULL;
-                for (j = 0; j < net->nips; j++)
-                    VIR_FREE(net->ips[j]);
-                VIR_FREE(net->ips);
-                net->nips = 0;
             }
         } else if (net->type == VIR_DOMAIN_NET_TYPE_DIRECT) {
-            size_t j;
             VIR_FREE(net->data.direct.linkdev);
 
             memset(net, 0, sizeof(*net));
@@ -6980,23 +6968,15 @@ static char *qemuConnectDomainXMLToNative(virConnectPtr conn,
             net->type = VIR_DOMAIN_NET_TYPE_ETHERNET;
             net->script = NULL;
             net->data.ethernet.dev = NULL;
-            for (j = 0; j < net->nips; j++)
-                VIR_FREE(net->ips[j]);
-            VIR_FREE(net->ips);
-            net->nips = 0;
         } else if (net->type == VIR_DOMAIN_NET_TYPE_BRIDGE) {
             char *script = net->script;
             char *brname = net->data.bridge.brname;
-            size_t nips = net->nips;
-            virDomainNetIPDefPtr *ips = net->ips;
 
             memset(net, 0, sizeof(*net));
 
             net->type = VIR_DOMAIN_NET_TYPE_ETHERNET;
             net->script = script;
             net->data.ethernet.dev = brname;
-            net->nips = nips;
-            net->ips = ips;
         }
 
         VIR_FREE(net->virtPortProfile);