CID-1116483 cidr to netmask bitshifts guarded with casts

and simple test
This commit is contained in:
Daan Hoogland 2015-11-10 14:54:52 +01:00
parent 2fadfe93dc
commit f9d5c6918c
2 changed files with 9 additions and 2 deletions

View File

@ -921,7 +921,7 @@ public class NetUtils {
}
public static String getCidrNetmask(final long cidrSize) {
final long numericNetmask = 0xffffffff >> MAX_CIDR - cidrSize << MAX_CIDR - cidrSize;
final long numericNetmask = (long)0xffffffff >> MAX_CIDR - cidrSize << MAX_CIDR - cidrSize;
return long2Ip(numericNetmask);
}

View File

@ -419,6 +419,13 @@ public class NetUtilsTest {
assertTrue("It should pass! 31 bit prefix.", is31PrefixCidr);
}
@Test
public void testGetCidrNetMask() {
final String cidr = "10.10.0.0/16";
String netmask = NetUtils.getCidrNetmask("10.10.10.10/16");
assertTrue(cidr + " does not generate valid netmask " + netmask,NetUtils.isValidNetmask(netmask));
}
@Test
public void testGetCidrSubNet() {
final String cidr = "10.10.0.0/16";
@ -430,6 +437,6 @@ public class NetUtilsTest {
public void testGetCidrSubNetWithWidth() {
final String cidr = "10.10.0.0/16";
String subnet = NetUtils.getCidrSubNet("10.10.10.10", 16);
assertTrue(NetUtils.isIpWithtInCidrRange(subnet, cidr));
assertTrue(cidr + " does not contain " + subnet,NetUtils.isIpWithtInCidrRange(subnet, cidr));
}
}