From a3b267e970d4ed974dafe707a95433f767e20b62 Mon Sep 17 00:00:00 2001 From: Ted Lemon Date: Sat, 22 Nov 1997 00:45:55 +0000 Subject: [PATCH] Add broadcast_addr function which produces the broadcast address of a subnet given the subnet number and subnet mask. --- common/inet.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/common/inet.c b/common/inet.c index 000d97183..b7c4ba438 100644 --- a/common/inet.c +++ b/common/inet.c @@ -106,6 +106,30 @@ struct iaddr ip_addr (subnet, mask, host_address) return rv; } +/* Given a subnet number and netmask, return the address on that subnet + for which the host portion of the address is all ones (the standard + broadcast address). */ + +struct iaddr broadcast_addr (subnet, mask) + struct iaddr subnet; + struct iaddr mask; +{ + int i, j, k; + struct iaddr rv; + + if (subnet.len != mask.len) { + rv.len = 0; + return rv; + } + + for (i = 0; i < subnet.len; i++) { + rv.iabuf [i] = subnet.iabuf [i] | (~mask.iabuf [i] & 255); + } + rv.len = subnet.len; + + return rv; +} + u_int32_t host_addr (addr, mask) struct iaddr addr; struct iaddr mask; -- 2.47.3