aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Lezcano <daniel.lezcano@free.fr>2011-02-06 21:29:13 +0100
committerDaniel Lezcano <dlezcano@fr.ibm.com>2011-02-06 21:29:13 +0100
commitd8948a52c3055d6c06bea9551a622ebcc8a32e4b (patch)
treeef2d47d726312eecf9683b33bf5066088b6346a6
parentfix empty network configuration (diff)
downloadlxc-d8948a52c3055d6c06bea9551a622ebcc8a32e4b.tar.gz
lxc-d8948a52c3055d6c06bea9551a622ebcc8a32e4b.tar.bz2
lxc-d8948a52c3055d6c06bea9551a622ebcc8a32e4b.zip
fix broadcast compution
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
-rw-r--r--src/lxc/confile.c5
-rw-r--r--src/lxc/network.c2
2 files changed, 3 insertions, 4 deletions
diff --git a/src/lxc/confile.c b/src/lxc/confile.c
index 4d81ac6..7c72752 100644
--- a/src/lxc/confile.c
+++ b/src/lxc/confile.c
@@ -423,9 +423,8 @@ static int config_network_ipv4(const char *key, char *value,
* prefix and address
*/
if (!bcast) {
- inetdev->bcast.s_addr =
- htonl(INADDR_BROADCAST << (32 - inetdev->prefix));
- inetdev->bcast.s_addr &= inetdev->addr.s_addr;
+ int mask = htonl(INADDR_BROADCAST << (32 - inetdev->prefix));
+ inetdev->bcast.s_addr = (inetdev->addr.s_addr & mask) | ~mask;
}
lxc_list_add(&netdev->ipv4, list);
diff --git a/src/lxc/network.c b/src/lxc/network.c
index b691dd6..a172968 100644
--- a/src/lxc/network.c
+++ b/src/lxc/network.c
@@ -742,7 +742,7 @@ static int ip_addr_add(int family, int ifindex,
if (nla_put_buffer(nlmsg, IFA_ADDRESS, addr, addrlen))
goto out;
- if (bcast && nla_put_buffer(nlmsg, IFA_BROADCAST, bcast, addrlen))
+ if (nla_put_buffer(nlmsg, IFA_BROADCAST, bcast, addrlen))
goto out;
/* TODO : multicast, anycast with ipv6 */