Remove more use of netmask
bug:2542681 Change-Id: Ifd75672739ee8262d4df22afd8173e4f3f67260d
This commit is contained in:
@@ -19,6 +19,7 @@ package android.net;
|
|||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
import java.net.Inet4Address;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.net.InterfaceAddress;
|
import java.net.InterfaceAddress;
|
||||||
import java.net.UnknownHostException;
|
import java.net.UnknownHostException;
|
||||||
@@ -38,12 +39,13 @@ public class LinkAddress implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
private final int prefixLength;
|
private final int prefixLength;
|
||||||
|
|
||||||
public LinkAddress(InetAddress address, InetAddress mask) {
|
|
||||||
this.address = address;
|
|
||||||
this.prefixLength = computeprefixLength(mask);
|
|
||||||
}
|
|
||||||
|
|
||||||
public LinkAddress(InetAddress address, int prefixLength) {
|
public LinkAddress(InetAddress address, int prefixLength) {
|
||||||
|
if (address == null || prefixLength < 0 ||
|
||||||
|
((address instanceof Inet4Address) && prefixLength > 32) ||
|
||||||
|
(prefixLength > 128)) {
|
||||||
|
throw new IllegalArgumentException("Bad LinkAddress params " + address +
|
||||||
|
prefixLength);
|
||||||
|
}
|
||||||
this.address = address;
|
this.address = address;
|
||||||
this.prefixLength = prefixLength;
|
this.prefixLength = prefixLength;
|
||||||
}
|
}
|
||||||
@@ -53,18 +55,6 @@ public class LinkAddress implements Parcelable {
|
|||||||
this.prefixLength = interfaceAddress.getNetworkPrefixLength();
|
this.prefixLength = interfaceAddress.getNetworkPrefixLength();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int computeprefixLength(InetAddress mask) {
|
|
||||||
int count = 0;
|
|
||||||
for (byte b : mask.getAddress()) {
|
|
||||||
for (int i = 0; i < 8; ++i) {
|
|
||||||
if ((b & (1 << i)) != 0) {
|
|
||||||
++count;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return count;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return (address == null ? "" : (address.getHostAddress() + "/" + prefixLength));
|
return (address == null ? "" : (address.getHostAddress() + "/" + prefixLength));
|
||||||
|
|||||||
Reference in New Issue
Block a user