Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ca441ee2 authored by Robert Greenwalt's avatar Robert Greenwalt
Browse files

Add new route.hasGateway() api

Fixes issues brought in by change to isHostRoute.  isHostRoute
was technically correct, but the callers really wanted hasNextHop
behavior.

bug:8597268b
Change-Id: I360761ccfa98b2ba34642f717a78fa71ec1bae4f
parent bd286426
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ public class RouteInfo implements Parcelable {

    private final boolean mIsDefault;
    private final boolean mIsHost;
    private final boolean mHasGateway;

    /**
     * Constructs a RouteInfo object.
@@ -97,6 +98,8 @@ public class RouteInfo implements Parcelable {
                gateway = Inet6Address.ANY;
            }
        }
        mHasGateway = (!gateway.isAnyLocalAddress());

        mDestination = new LinkAddress(NetworkUtils.getNetworkPart(destination.getAddress(),
                destination.getNetworkPrefixLength()), destination.getNetworkPrefixLength());
        mGateway = gateway;
@@ -171,6 +174,10 @@ public class RouteInfo implements Parcelable {
        return mIsHost;
    }

    public boolean hasGateway() {
        return mHasGateway;
    }

    public String toString() {
        String val = "";
        if (mDestination != null) val = mDestination.toString();
+1 −2
Original line number Diff line number Diff line
@@ -1470,8 +1470,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
            loge("Error modifying route - no interface name");
            return false;
        }

        if (r.isHostRoute() == false) {
        if (r.hasGateway()) {
            RouteInfo bestRoute = RouteInfo.selectBestRoute(lp.getAllRoutes(), r.getGateway());
            if (bestRoute != null) {
                if (bestRoute.getGateway().equals(r.getGateway())) {
+1 −1
Original line number Diff line number Diff line
@@ -734,7 +734,7 @@ public final class WifiService extends IWifiManager.Stub {
                if (gateway instanceof Inet4Address) {
                    info.gateway = NetworkUtils.inetAddressToInt((Inet4Address)gateway);
                }
            } else if (r.isHostRoute()) {
            } else if (r.hasGateway() == false) {
                LinkAddress dest = r.getDestination();
                if (dest.getAddress() instanceof Inet4Address) {
                    info.netmask = NetworkUtils.prefixLengthToNetmaskInt(