Make isHostRoute match only host routes
Currently, isHostRoute returns true iff the gateway address is the unspecified address (0.0.0.0 or ::). Thus, it will return true for any route that has no gateway (e.g., a route pointing at a point-to-point interface), even if the route is not a host route. Fix this by checking the prefix length instead. This should be safe because: 1. mDestination cannot be null, since it's created using new. 2. Host routes created using makeHostRoute (which is what ConnectivityService calls) always have the correct prefix lengths (/32 or /128) set. Bug: 8276725 Change-Id: I14285398823fa6c312349128c7cc216cad4a84c9
This commit is contained in:
parent
5371dbf5ad
commit
aff5413507
1 changed files with 38 additions and 1 deletions
|
|
@ -132,7 +132,10 @@ public class RouteInfo implements Parcelable {
|
|||
}
|
||||
|
||||
private boolean isHost() {
|
||||
return (mGateway.equals(Inet4Address.ANY) || mGateway.equals(Inet6Address.ANY));
|
||||
return (mDestination.getAddress() instanceof Inet4Address &&
|
||||
mDestination.getNetworkPrefixLength() == 32) ||
|
||||
(mDestination.getAddress() instanceof Inet6Address &&
|
||||
mDestination.getNetworkPrefixLength() == 128);
|
||||
}
|
||||
|
||||
private boolean isDefault() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue