lib: optimize apply_mask_ipv4()

This commit is contained in:
Denis Ovsienko 2011-10-18 18:33:53 +04:00
parent 3062d2dab6
commit ed7a62efea

View File

@ -545,27 +545,12 @@ ip_masklen (struct in_addr netmask)
return len;
}
/* Apply mask to IPv4 prefix. */
/* Apply mask to IPv4 prefix (network byte order). */
void
apply_mask_ipv4 (struct prefix_ipv4 *p)
{
u_char *pnt;
int index;
int offset;
index = p->prefixlen / 8;
if (index < 4)
{
pnt = (u_char *) &p->prefix;
offset = p->prefixlen % 8;
pnt[index] &= maskbit[offset];
index++;
while (index < 4)
pnt[index++] = 0;
}
assert (p->prefixlen >= 0 && p->prefixlen <= IPV4_MAX_BITLEN);
p->prefix.s_addr &= maskbytes_network[p->prefixlen];
}
/* If prefix is 0.0.0.0/0 then return 1 else return 0. */