*** empty log message ***

This commit is contained in:
dlezcano 2008-09-03 12:06:19 +00:00
parent 5f59f4bae8
commit e14459fae5
2 changed files with 54 additions and 32 deletions

View File

@ -792,7 +792,7 @@ static int setup_ip6_addr(const char *dirname, const char *ifname)
static int setup_network_cb(const char *name, const char *dirname,
const char *file, void *data)
{
char *path;
char path[MAXPATHLEN];
char strindex[MAXINDEXLEN];
char ifname[IFNAMSIZ];
char newname[IFNAMSIZ];
@ -800,7 +800,7 @@ static int setup_network_cb(const char *name, const char *dirname,
char *current_ifname = ifname;
int ifindex, ret = -1;
asprintf(&path, "%s/%s", dirname, file);
snprintf(path, MAXPATHLEN, "%s/%s", dirname, file);
if (read_info(path, "ifindex", strindex, sizeof(strindex))) {
lxc_log_error("failed to read ifindex info");
@ -809,21 +809,25 @@ static int setup_network_cb(const char *name, const char *dirname,
ifindex = atoi(strindex);
if (!ifindex) {
lxc_log_error("bad index %s", strindex);
goto out;
if (!read_info(path, "up", strindex, sizeof(strindex))
if (device_up("lo")) {
lxc_log_error("failed to set the loopback up");
return -1;
}
return 0;
}
if (!if_indextoname(ifindex, current_ifname)) {
lxc_log_error("no interface corresponding to index '%d'",
ifindex);
goto out;
return -1;
}
if (!read_info(path, "name", newname, sizeof(newname))) {
if (device_rename(ifname, newname)) {
lxc_log_error("failed to rename %s->%s",
ifname, newname);
goto out;
return -1;
}
current_ifname = newname;
}
@ -832,38 +836,36 @@ static int setup_network_cb(const char *name, const char *dirname,
if (setup_hw_addr(hwaddr, current_ifname)) {
lxc_log_error("failed to setup hw address for '%s'",
current_ifname);
goto out;
return -1;
}
}
if (setup_ip_addr(path, current_ifname)) {
lxc_log_error("failed to setup ip addresses for '%s'",
ifname);
goto out;
return -1;
}
if (setup_ip6_addr(path, current_ifname)) {
lxc_log_error("failed to setup ipv6 addresses for '%s'",
ifname);
goto out;
return -1;
}
if (!read_info(path, "up", strindex, sizeof(strindex))) {
if (device_up(current_ifname)) {
lxc_log_error("failed to set '%s' up", current_ifname);
goto out;
return -1;
}
/* the network is up, make the loopback up too */
if (device_up("lo")) {
lxc_log_error("failed to set the loopback up");
goto out;
return -1;
}
}
ret = 0;
out:
return ret;
return 0;
}
static int setup_network(const char *name)
@ -1007,12 +1009,12 @@ out:
}
static int instanciate_macvlan(const char *dirname, const char *file, pid_t pid)
{
char *path = NULL, *strindex = NULL, *peer = NULL;
char path[MAXPATHLEN], *strindex = NULL, *peer = NULL;
char link[IFNAMSIZ];
int ifindex, ret = -1;
asprintf(&peer, "%s~%d", file, pid);
asprintf(&path, "%s/%s", dirname, file);
snprintf(path, MAXPATHLEN, "%s/%s", dirname, file);
if (read_info(path, "link", link, IFNAMSIZ)) {
lxc_log_error("failed to read bridge info");
goto out;
@ -1037,19 +1039,17 @@ static int instanciate_macvlan(const char *dirname, const char *file, pid_t pid)
ret = 0;
out:
free(path);
free(strindex);
free(peer);
return ret;
}
static int instanciate_phys(const char *dirname, const char *file, pid_t pid)
{
char *path = NULL, *strindex = NULL;
char path[MAXPATHLEN], *strindex = NULL;
char link[IFNAMSIZ];
int ifindex, ret = -1;
asprintf(&path, "%s/%s", dirname, file);
snprintf(path, MAXPATHLEN, "%s/%s", dirname, file);
if (read_info(path, "link", link, IFNAMSIZ)) {
lxc_log_error("failed to read link info");
goto out;
@ -1069,7 +1069,28 @@ static int instanciate_phys(const char *dirname, const char *file, pid_t pid)
ret = 0;
out:
free(path);
free(strindex);
return ret;
}
static int instanciate_empty(const char *dirname, const char *file, pid_t pid)
{
char path[MAXPATHLEN], *strindex = NULL;
int ret = -1;
snprintf(path, MAXPATHLEN, "%s/%s", dirname, file);
if (!asprintf(&strindex, "%d", 0)) {
lxc_log_error("not enough memory");
return -1;
}
if (write_info(path, "ifindex", strindex)) {
lxc_log_error("failed to write interface index to %s", path);
goto out;
}
ret = 0;
out:
free(strindex);
return ret;
}
@ -1085,7 +1106,8 @@ static int instanciate_netdev_cb(const char *name, const char *dirname,
return instanciate_macvlan(dirname, file, *pid);
else if (!strncmp("phys", file, strlen("phys")))
return instanciate_phys(dirname, file, *pid);
else if (!strncmp("empty", file, strlen("empty"))
return instanciate_empty(dirname, file, *pid);
return -1;
}
@ -1104,32 +1126,32 @@ static int instanciate_netdev(const char *name, pid_t pid)
static int move_netdev_cb(const char *name, const char *dirname,
const char *file, void *data)
{
char *path, ifname[IFNAMSIZ], strindex[MAXINDEXLEN];
char path[MAXPATHLEN], ifname[IFNAMSIZ], strindex[MAXINDEXLEN];
pid_t *pid = data;
int ifindex, ret = -1;
asprintf(&path, "%s/%s", dirname, file);
snprintf(path, MAXPATHLEN, "%s/%s", dirname, file);
if (read_info(path, "ifindex", strindex, MAXINDEXLEN) < 0) {
lxc_log_error("failed to read index to from %s", path);
goto out;
}
ifindex = atoi(strindex);
if (!ifindex)
return 0;
if (!if_indextoname(ifindex, ifname)) {
lxc_log_error("interface with index %d does not exist",
ifindex);
goto out;
return -1;
}
if (device_move(ifname, *pid)) {
lxc_log_error("failed to move %s to %d", ifname, *pid);
goto out;
return -1;
}
ret = 0;
out:
free(path);
return ret;
return 0;
}
static int move_netdev(const char *name, pid_t pid)

View File

@ -59,7 +59,7 @@ int main(int argc, char *argv[])
}
}
if (!name || !file)
if (!name)
usage(argv[0]);
if (lxc_config_init(&lxc_conf)) {
@ -67,7 +67,7 @@ int main(int argc, char *argv[])
return 1;
}
if (lxc_config_read(file, &lxc_conf)) {
if (file && lxc_config_read(file, &lxc_conf)) {
fprintf(stderr, "invalid configuration file\n");
return 1;
}