From 8213c19c508f556b326d35a3a1a3d5229ccd1db5 Mon Sep 17 00:00:00 2001 From: rpm-build Date: Dec 09 2020 17:21:02 +0000 Subject: 0002-add-support-for-RFC3021.patch patch_name: 0002-add-support-for-RFC3021.patch present_in_specfile: true location_in_specfile: 2 --- diff --git a/ipcalc.c b/ipcalc.c index f2bc47a..04c9372 100644 --- a/ipcalc.c +++ b/ipcalc.c @@ -146,7 +146,12 @@ static struct in_addr calc_broadcast(struct in_addr addr, int prefix) mask.s_addr = prefix2mask(prefix); memset(&broadcast, 0, sizeof(broadcast)); - broadcast.s_addr = (addr.s_addr & mask.s_addr) | ~mask.s_addr; + + /* if prefix is set to 31 return 255.255.255.255 (RFC3021) */ + if (mask.s_addr == htonl(0xFFFFFFFE)) + broadcast.s_addr = htonl(0xFFFFFFFF); + else + broadcast.s_addr = (addr.s_addr & mask.s_addr) | ~mask.s_addr; return broadcast; } diff --git a/tests/192.168.1.5-31 b/tests/192.168.1.5-31 index fee8227..b720b56 100644 --- a/tests/192.168.1.5-31 +++ b/tests/192.168.1.5-31 @@ -1,4 +1,4 @@ NETMASK=255.255.255.254 PREFIX=31 -BROADCAST=192.168.1.5 +BROADCAST=255.255.255.255 NETWORK=192.168.1.4