am 76a118dd: Merge "Fix initialization of RouteInfo" into honeycomb-LTE

* commit '76a118dd9e1bc8be33e1e22b7264b7f918f6f050':
  Fix initialization of RouteInfo
This commit is contained in:
Wink Saville
2011-05-12 14:03:31 -07:00
committed by Android Git Automerger

View File

@@ -47,13 +47,25 @@ public class RouteInfo implements Parcelable {
public RouteInfo(LinkAddress destination, InetAddress gateway) { public RouteInfo(LinkAddress destination, InetAddress gateway) {
if (destination == null) { if (destination == null) {
try { try {
if ((gateway != null) || (gateway instanceof Inet4Address)) { if (gateway != null) {
destination = new LinkAddress(Inet4Address.ANY, 0); if (gateway instanceof Inet4Address) {
destination = new LinkAddress(Inet4Address.ANY, 0);
} else {
destination = new LinkAddress(Inet6Address.ANY, 0);
}
} else { } else {
destination = new LinkAddress(Inet6Address.ANY, 0); // no destination, no gateway. invalid.
throw new RuntimeException("Invalid arguments passed in.");
} }
} catch (Exception e) {} } catch (Exception e) {}
} }
if (gateway == null) {
if (destination.getAddress() instanceof Inet4Address) {
gateway = Inet4Address.ANY;
} else {
gateway = Inet6Address.ANY;
}
}
mDestination = new LinkAddress(NetworkUtils.getNetworkPart(destination.getAddress(), mDestination = new LinkAddress(NetworkUtils.getNetworkPart(destination.getAddress(),
destination.getNetworkPrefixLength()), destination.getNetworkPrefixLength()); destination.getNetworkPrefixLength()), destination.getNetworkPrefixLength());
mGateway = gateway; mGateway = gateway;