On Thursday 13 November 2014 10:33:02 Cédric Bosdonnat wrote: > Uses the new virDomainNetDef ips to set the IP addresses on the network > interfaces in the container. > --- > src/lxc/lxc_container.c | 19 ++++++++++++++++++- > 1 file changed, 18 insertions(+), 1 deletion(-) > > diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c > index 8aba3ba..4aeb19c 100644 > --- a/src/lxc/lxc_container.c > +++ b/src/lxc/lxc_container.c > @@ -496,7 +496,7 @@ static int > lxcContainerRenameAndEnableInterfaces(virDomainDefPtr vmDef, char **veths) > { > int rc = 0; > - size_t i; > + size_t i, j; > char *newname = NULL; > virDomainNetDefPtr netDef; > bool privNet = vmDef->features[VIR_DOMAIN_FEATURE_PRIVNET] == > @@ -517,6 +517,23 @@ static int > lxcContainerRenameAndEnableInterfaces(virDomainDefPtr vmDef, if (rc < 0) > goto error_out; > > + for (j = 0; j < netDef->nips; j++) { > + virDomainNetIpDefPtr ip = netDef->ips[j]; > + unsigned int prefix = (ip->prefix > 0) ? ip->prefix : 24; Why is default prefix hardcoded here? I think we should add a constant for it in some common header file. > + char *ipStr = virSocketAddrFormat(&ip->address); > + > + VIR_DEBUG("Adding IP address '%s/%u' to '%s'", > + ipStr, ip->prefix, newname); > + if (virNetDevSetIPv4Address(newname, &ip->address, prefix) < 0) > { + virReportError(VIR_ERR_SYSTEM_ERROR, > + _("Failed to set IP address '%s' on %s"), > + ipStr, newname); > + VIR_FREE(ipStr); > + goto error_out; > + } > + VIR_FREE(ipStr); > + } > + > VIR_DEBUG("Enabling %s", newname); > rc = virNetDevSetOnline(newname, true); > if (rc < 0) -- Dmitry Guryanov -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list