summaryrefslogtreecommitdiff
path: root/lib/prefix.c
diff options
context:
space:
mode:
authorRuss White <russ@riw.us>2020-01-28 11:42:45 -0500
committerGitHub <noreply@github.com>2020-01-28 11:42:45 -0500
commitb27b58be24d3f6f1cb8b8375544007fdfcfef9b3 (patch)
tree5cd863d056387c599a3e7f1137bd5f332ac82f8d /lib/prefix.c
parent1746db70adeca9daa1e39da0031dab061089cb69 (diff)
parent2d48474e03798c6bf5281301fa818b94a0b5597d (diff)
Merge pull request #4773 from thozza/31-prefix-bcast-addr
ipv4_broadcast_addr() didn't comply with RFC3021
Diffstat (limited to 'lib/prefix.c')
-rw-r--r--lib/prefix.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/prefix.c b/lib/prefix.c
index 219f798dcc..806df0b4c6 100644
--- a/lib/prefix.c
+++ b/lib/prefix.c
@@ -1113,11 +1113,11 @@ in_addr_t ipv4_broadcast_addr(in_addr_t hostaddr, int masklen)
masklen2ip(masklen, &mask);
return (masklen != IPV4_MAX_PREFIXLEN - 1) ?
- /* normal case */
- (hostaddr | ~mask.s_addr)
- :
- /* special case for /31 */
- (hostaddr ^ ~mask.s_addr);
+ /* normal case */
+ (hostaddr | ~mask.s_addr)
+ :
+ /* For prefix 31 return 255.255.255.255 (RFC3021) */
+ htonl(0xFFFFFFFF);
}
/* Utility function to convert ipv4 netmask to prefixes