On 10/22/2014 06:05 AM, Daniel P. Berrange wrote: > On Fri, Oct 10, 2014 at 02:03:55PM +0200, 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 | 24 +++++++++++++++++++++++- >> 1 file changed, 23 insertions(+), 1 deletion(-) >> >> diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c >> index 2af2674..608d39f 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,28 @@ 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; >> + virSocketAddr address; >> + int family = AF_INET; >> + >> + if (strchr(ip->address, ':')) >> + family = AF_INET6; >> + >> + if (virSocketAddrParse(&address, ip->address, family) < 0) >> + goto error_out; > > Hmm, so this again makes me think we should have another patch in the series > just before this, but after the first XML patch, which converts the > virDomainConf > to use virSocketAddr directly. I think it would be good practice for us to > extend > the XML to include teh address family too, instead of just doing strchr for > ':' > to detect IPv6. >
FYI: See virSocketAddrNumericFamily >> + >> + VIR_DEBUG("Adding IP address '%s/%u' to '%s'", >> + ip->address, ip->prefix, newname); >> + if (virNetDevSetIPv4Address(newname, &address, prefix) < 0) { >> + virReportError(VIR_ERR_SYSTEM_ERROR, >> + _("Failed to set IP address '%s' on %s"), >> + ip->address, newname); >> + goto error_out; >> + } >> + } >> + > > Regards, > Daniel > -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list