From 8cd11a0f0f4ca05199e1166f6a07472b296f7455 Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Sun, 17 Nov 2013 21:01:20 +0100 Subject: networkd: store netmask and mac address explicitly --- src/network/networkd-address.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/network/networkd-address.c') diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index e02b1df864..75a9bae201 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -78,8 +78,7 @@ int address_configure(Manager *manager, Address *address, Link *link) { if (address->family == AF_INET) { struct in_addr broadcast; - broadcast.s_addr = address->in_addr.in.s_addr | - htonl(0xfffffffflu >> address->prefixlen); + broadcast.s_addr = address->in_addr.in.s_addr | address->netmask.s_addr; r = sd_rtnl_message_append(req, IFA_BROADCAST, &broadcast); if (r < 0) { @@ -147,6 +146,8 @@ int config_parse_address(const char *unit, } n->prefixlen = (unsigned char) i; + n->netmask.s_addr = htonl(0xfffffffflu >> n->prefixlen); + address = strndup(rvalue, e - rvalue); if (!address) return log_oom(); -- cgit v1.2.3-54-g00ecf