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

Commit 742056ee authored by Lorenzo Colitti's avatar Lorenzo Colitti Committed by Android Git Automerger
Browse files

am 2fb669e6: Merge "Stop clat if it\'s no longer in use." into jb-mr2-dev

* commit '2fb669e6':
  Stop clat if it's no longer in use.
parents 8706df1c 2fb669e6
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -2285,9 +2285,17 @@ public class ConnectivityService extends IConnectivityManager.Stub {
        }

        // Update 464xlat state.
        // TODO: Move to handleConnect()
        NetworkStateTracker tracker = mNetTrackers[netType];
        if (mClat.requiresClat(netType, tracker)) {
            // If the connection was previously using clat, but is not using it now, stop the clat
            // daemon. Normally, this happens automatically when the connection disconnects, but if
            // the disconnect is not reported, or if the connection's LinkProperties changed for
            // some other reason (e.g., handoff changes the IP addresses on the link), it would
            // still be running. If it's not running, then stopping it is a no-op.
            if (Nat464Xlat.isRunningClat(curLp) && !Nat464Xlat.isRunningClat(newLp)) {
                mClat.stopClat();
            }
            // If the link requires clat to be running, then start the daemon now.
            if (mNetTrackers[netType].getNetworkInfo().isConnected()) {
                mClat.startClat(tracker);
            } else {
+4 −0
Original line number Diff line number Diff line
@@ -87,6 +87,10 @@ public class Nat464Xlat extends BaseNetworkObserver {
        return netType == TYPE_MOBILE && !lp.hasIPv4Address();
    }

    public static boolean isRunningClat(LinkProperties lp) {
      return lp != null && lp.getAllInterfaceNames().contains(CLAT_INTERFACE_NAME);
    }

    /**
     * Starts the clat daemon.
     * @param lp The link properties of the interface to start clatd on.