mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-14 15:29:56 +00:00
Fix network prefix
Fix the missing network prefix. When no network prefix is specified, the prefix is computed from the network class specified. Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
This commit is contained in:
parent
a1511e8d15
commit
a059591e9f
@ -134,6 +134,18 @@ static int config_network_type(const char *key, char *value, struct lxc_conf *lx
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int config_ip_prefix(struct in_addr *addr)
|
||||||
|
{
|
||||||
|
if (IN_CLASSA(addr->s_addr))
|
||||||
|
return 32 - IN_CLASSA_NSHIFT;
|
||||||
|
if (IN_CLASSB(addr->s_addr))
|
||||||
|
return 32 - IN_CLASSB_NSHIFT;
|
||||||
|
if (IN_CLASSC(addr->s_addr))
|
||||||
|
return 32 - IN_CLASSC_NSHIFT;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int config_network_flags(const char *key, char *value, struct lxc_conf *lxc_conf)
|
static int config_network_flags(const char *key, char *value, struct lxc_conf *lxc_conf)
|
||||||
{
|
{
|
||||||
struct lxc_list *network = &lxc_conf->network;
|
struct lxc_list *network = &lxc_conf->network;
|
||||||
@ -308,8 +320,10 @@ static int config_network_ipv4(const char *key, char *value, struct lxc_conf *lx
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prefix)
|
/* no prefix specified, determine it from the network class */
|
||||||
inetdev->prefix = atoi(prefix);
|
inetdev->prefix = prefix ? atoi(prefix) :
|
||||||
|
config_ip_prefix(&inetdev->addr);
|
||||||
|
|
||||||
|
|
||||||
lxc_list_add(&netdev->ipv4, list);
|
lxc_list_add(&netdev->ipv4, list);
|
||||||
|
|
||||||
@ -352,6 +366,7 @@ static int config_network_ipv6(const char *key, char *value, struct lxc_conf *lx
|
|||||||
lxc_list_init(list);
|
lxc_list_init(list);
|
||||||
list->elem = inet6dev;
|
list->elem = inet6dev;
|
||||||
|
|
||||||
|
inet6dev->prefix = 64;
|
||||||
slash = strstr(value, "/");
|
slash = strstr(value, "/");
|
||||||
if (slash) {
|
if (slash) {
|
||||||
*slash = '\0';
|
*slash = '\0';
|
||||||
|
Loading…
Reference in New Issue
Block a user