From: Ted Lemon Date: Sat, 22 Nov 1997 00:45:55 +0000 (+0000) Subject: Add broadcast_addr function which produces the broadcast address of a subnet given... X-Git-Tag: DHCP-971122~26 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a3b267e970d4ed974dafe707a95433f767e20b62;p=thirdparty%2Fdhcp.git Add broadcast_addr function which produces the broadcast address of a subnet given the subnet number and subnet mask. --- 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;