diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index eacbae71a1..063352d051 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -4690,7 +4690,7 @@ public class ConnectivityService extends IConnectivityManager.Stub // The NetworkAgentInfo does not know whether clatd is running on its network or not. Before // we do anything else, make sure its LinkProperties are accurate. if (networkAgent.clatd != null) { - networkAgent.clatd.fixupLinkProperties(oldLp); + networkAgent.clatd.fixupLinkProperties(oldLp, newLp); } updateInterfaces(newLp, oldLp, netId, networkAgent.networkCapabilities); diff --git a/services/core/java/com/android/server/connectivity/Nat464Xlat.java b/services/core/java/com/android/server/connectivity/Nat464Xlat.java index fceacba423..f523d594aa 100644 --- a/services/core/java/com/android/server/connectivity/Nat464Xlat.java +++ b/services/core/java/com/android/server/connectivity/Nat464Xlat.java @@ -224,15 +224,14 @@ public class Nat464Xlat extends BaseNetworkObserver { } /** - * Copies the stacked clat link in oldLp, if any, to the LinkProperties in mNetwork. + * Copies the stacked clat link in oldLp, if any, to the passed LinkProperties. * This is necessary because the LinkProperties in mNetwork come from the transport layer, which * has no idea that 464xlat is running on top of it. */ - public void fixupLinkProperties(LinkProperties oldLp) { + public void fixupLinkProperties(LinkProperties oldLp, LinkProperties lp) { if (!isRunning()) { return; } - LinkProperties lp = mNetwork.linkProperties; if (lp == null || lp.getAllInterfaceNames().contains(mIface)) { return; }