mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-07-27 09:48:32 +00:00
added locally modified files for broadcast support
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
This commit is contained in:
parent
1f1b18e754
commit
0093bb8ced
@ -943,8 +943,8 @@ static int setup_ipv4_addr(struct lxc_list *ip, int ifindex)
|
||||
|
||||
inetdev = iterator->elem;
|
||||
|
||||
err = lxc_ip_addr_add(AF_INET, ifindex,
|
||||
&inetdev->addr, inetdev->prefix);
|
||||
err = lxc_ipv4_addr_add(ifindex, &inetdev->addr,
|
||||
&inetdev->bcast, inetdev->prefix);
|
||||
if (err) {
|
||||
ERROR("failed to setup_ipv4_addr ifindex %d : %s",
|
||||
ifindex, strerror(-err));
|
||||
@ -965,8 +965,9 @@ static int setup_ipv6_addr(struct lxc_list *ip, int ifindex)
|
||||
|
||||
inet6dev = iterator->elem;
|
||||
|
||||
err = lxc_ip_addr_add(AF_INET6, ifindex,
|
||||
&inet6dev->addr, inet6dev->prefix);
|
||||
err = lxc_ipv6_addr_add(ifindex, &inet6dev->addr,
|
||||
&inet6dev->mcast, &inet6dev->acast,
|
||||
inet6dev->prefix);
|
||||
if (err) {
|
||||
ERROR("failed to setup_ipv6_addr ifindex %d : %s",
|
||||
ifindex, strerror(-err));
|
||||
|
@ -62,7 +62,7 @@ struct lxc_route {
|
||||
*/
|
||||
struct lxc_inet6dev {
|
||||
struct in6_addr addr;
|
||||
struct in6_addr bcast;
|
||||
struct in6_addr mcast;
|
||||
struct in6_addr acast;
|
||||
int prefix;
|
||||
};
|
||||
|
@ -405,9 +405,8 @@ static int config_network_ipv4(const char *key, char *value,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (bcast)
|
||||
if (!inet_pton(AF_INET, bcast, &inetdev->bcast)) {
|
||||
SYSERROR("invalid ipv4 address: %s", value);
|
||||
if (bcast && !inet_pton(AF_INET, bcast, &inetdev->bcast)) {
|
||||
SYSERROR("invalid ipv4 broadcast address: %s", value);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -415,6 +414,14 @@ static int config_network_ipv4(const char *key, char *value,
|
||||
inetdev->prefix = prefix ? atoi(prefix) :
|
||||
config_ip_prefix(&inetdev->addr);
|
||||
|
||||
/* if no broadcast address, let compute one from the
|
||||
* prefix and address
|
||||
*/
|
||||
if (!bcast) {
|
||||
inetdev->bcast.s_addr =
|
||||
htonl(INADDR_BROADCAST << (32 - inetdev->prefix));
|
||||
inetdev->bcast.s_addr &= inetdev->addr.s_addr;
|
||||
}
|
||||
|
||||
lxc_list_add(&netdev->ipv4, list);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user