Skip to content

Commit

Permalink
lxccontainer: cleanup do_lxcapi_get_interfaces()
Browse files Browse the repository at this point in the history
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
  • Loading branch information
Christian Brauner committed Jul 29, 2018
1 parent de31cb5 commit 9f4866a
Showing 1 changed file with 13 additions and 15 deletions.
28 changes: 13 additions & 15 deletions src/lxc/lxccontainer.c
Expand Up @@ -2292,21 +2292,19 @@ static bool remove_from_array(char ***names, char *cname, int size)
return false;
}

static char ** do_lxcapi_get_interfaces(struct lxc_container *c)
static char **do_lxcapi_get_interfaces(struct lxc_container *c)
{
pid_t pid;
int i, count = 0, pipefd[2];
char **interfaces = NULL;
char interface[IFNAMSIZ];

if(pipe(pipefd) < 0) {
SYSERROR("pipe failed");
if (pipe(pipefd) < 0)
return NULL;
}

pid = fork();
if (pid < 0) {
SYSERROR("failed to fork task to get interfaces information");
SYSERROR("Failed to fork task to get interfaces information");
close(pipefd[0]);
close(pipefd[1]);
return NULL;
Expand All @@ -2320,23 +2318,23 @@ static char ** do_lxcapi_get_interfaces(struct lxc_container *c)
close(pipefd[0]);

if (!enter_net_ns(c)) {
SYSERROR("failed to enter namespace");
SYSERROR("Failed to enter network namespace");
goto out;
}

/* Grab the list of interfaces */
if (getifaddrs(&interfaceArray)) {
SYSERROR("failed to get interfaces list");
SYSERROR("Failed to get interfaces list");
goto out;
}

/* Iterate through the interfaces */
for (tempIfAddr = interfaceArray; tempIfAddr != NULL; tempIfAddr = tempIfAddr->ifa_next) {
for (tempIfAddr = interfaceArray; tempIfAddr != NULL;
tempIfAddr = tempIfAddr->ifa_next) {
nbytes = write(pipefd[1], tempIfAddr->ifa_name, IFNAMSIZ);
if (nbytes < 0) {
ERROR("write failed");
if (nbytes < 0)
goto out;
}

count++;
}

Expand All @@ -2358,16 +2356,16 @@ static char ** do_lxcapi_get_interfaces(struct lxc_container *c)
interface[IFNAMSIZ - 1] = '\0';

if (array_contains(&interfaces, interface, count))
continue;
continue;

if(!add_to_array(&interfaces, interface, count))
if (!add_to_array(&interfaces, interface, count))
ERROR("Failed to add \"%s\" to array", interface);

count++;
}

if (wait_for_pid(pid) != 0) {
for(i=0;i<count;i++)
for (i = 0; i < count; i++)
free(interfaces[i]);

free(interfaces);
Expand All @@ -2378,7 +2376,7 @@ static char ** do_lxcapi_get_interfaces(struct lxc_container *c)
close(pipefd[0]);

/* Append NULL to the array */
if(interfaces)
if (interfaces)
interfaces = (char **)lxc_append_null_to_array((void **)interfaces, count);

return interfaces;
Expand Down

0 comments on commit 9f4866a

Please sign in to comment.