lxc: Fix failure on starting a domain with multiple interfaces

[Error message]
error: Failed to start domain lxc_test1
error: internal error Failed to create veth device pair: 512

The reason of the failure is that lxc driver unexpectedly re-uses
an auto-assigned veth name and tries to create the created veth
again. The failure will happen when a domain has multiple network
interfaces and the names of those are not specified in XML.

The patch fixes the problem by resetting buffers of veth names
in every iteration of creating veth.

* src/lxc/lxc_driver.c: prevent re-using auto-assigned veth name
  Reported by Kumar L Srikanth-B22348.
This commit is contained in:
Ryota Ozaki 2010-05-03 11:13:26 +02:00 committed by Daniel Veillard
parent 94f7144183
commit d2ac3c2fdd

View File

@ -786,14 +786,15 @@ static int lxcSetupInterfaces(virConnectPtr conn,
{
int rc = -1, i;
char *bridge = NULL;
char parentVeth[PATH_MAX] = "";
char containerVeth[PATH_MAX] = "";
brControl *brctl = NULL;
if (brInit(&brctl) != 0)
return -1;
for (i = 0 ; i < def->nnets ; i++) {
char parentVeth[PATH_MAX] = "";
char containerVeth[PATH_MAX] = "";
switch (def->nets[i]->type) {
case VIR_DOMAIN_NET_TYPE_NETWORK:
{