Loading services/core/java/com/android/server/connectivity/Nat464Xlat.java +1 −1 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ public class Nat464Xlat extends BaseNetworkObserver { final boolean hasIPv4Address = (nai.linkProperties != null) && nai.linkProperties.hasIPv4Address(); final boolean skip464xlat = (nai.networkMisc != null) && nai.networkMisc.skip464xlat; (nai.netMisc() != null) && nai.netMisc().skip464xlat; return supported && connected && !hasIPv4Address && !skip464xlat; } Loading services/core/java/com/android/server/connectivity/NetworkAgentInfo.java +4 −0 Original line number Diff line number Diff line Loading @@ -266,6 +266,10 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> { return mConnService; } public NetworkMisc netMisc() { return networkMisc; } public Handler handler() { return mHandler; } Loading tests/net/java/com/android/server/connectivity/Nat464XlatTest.java +13 −3 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.net.InterfaceConfiguration; import android.net.LinkAddress; import android.net.LinkProperties; import android.net.NetworkInfo; import android.net.NetworkMisc; import android.os.Handler; import android.os.INetworkManagementService; import android.os.test.TestLooper; Loading @@ -55,6 +56,7 @@ public class Nat464XlatTest { static final LinkAddress ADDR = new LinkAddress("192.0.2.5/29"); @Mock ConnectivityService mConnectivity; @Mock NetworkMisc mMisc; @Mock INetworkManagementService mNms; @Mock InterfaceConfiguration mConfig; @Mock NetworkAgentInfo mNai; Loading @@ -78,6 +80,7 @@ public class Nat464XlatTest { mNai.networkInfo = new NetworkInfo(null); mNai.networkInfo.setType(ConnectivityManager.TYPE_WIFI); when(mNai.connService()).thenReturn(mConnectivity); when(mNai.netMisc()).thenReturn(mMisc); when(mNai.handler()).thenReturn(mHandler); when(mNms.getInterfaceConfig(eq(STACKED_IFACE))).thenReturn(mConfig); Loading @@ -103,9 +106,16 @@ public class Nat464XlatTest { mNai.networkInfo.setType(type); for (NetworkInfo.DetailedState state : supportedDetailedStates) { mNai.networkInfo.setDetailedState(state, "reason", "extraInfo"); assertTrue( String.format("requiresClat expected for type=%d state=%s", type, state), Nat464Xlat.requiresClat(mNai)); String msg = String.format("requiresClat expected for type=%d state=%s", type, state); mMisc.skip464xlat = true; String errorMsg = msg + String.format(" skip464xlat=%b", mMisc.skip464xlat); assertFalse(errorMsg, Nat464Xlat.requiresClat(mNai)); mMisc.skip464xlat = false; errorMsg = msg + String.format(" skip464xlat=%b", mMisc.skip464xlat); assertTrue(errorMsg, Nat464Xlat.requiresClat(mNai)); } } } Loading Loading
services/core/java/com/android/server/connectivity/Nat464Xlat.java +1 −1 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ public class Nat464Xlat extends BaseNetworkObserver { final boolean hasIPv4Address = (nai.linkProperties != null) && nai.linkProperties.hasIPv4Address(); final boolean skip464xlat = (nai.networkMisc != null) && nai.networkMisc.skip464xlat; (nai.netMisc() != null) && nai.netMisc().skip464xlat; return supported && connected && !hasIPv4Address && !skip464xlat; } Loading
services/core/java/com/android/server/connectivity/NetworkAgentInfo.java +4 −0 Original line number Diff line number Diff line Loading @@ -266,6 +266,10 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> { return mConnService; } public NetworkMisc netMisc() { return networkMisc; } public Handler handler() { return mHandler; } Loading
tests/net/java/com/android/server/connectivity/Nat464XlatTest.java +13 −3 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.net.InterfaceConfiguration; import android.net.LinkAddress; import android.net.LinkProperties; import android.net.NetworkInfo; import android.net.NetworkMisc; import android.os.Handler; import android.os.INetworkManagementService; import android.os.test.TestLooper; Loading @@ -55,6 +56,7 @@ public class Nat464XlatTest { static final LinkAddress ADDR = new LinkAddress("192.0.2.5/29"); @Mock ConnectivityService mConnectivity; @Mock NetworkMisc mMisc; @Mock INetworkManagementService mNms; @Mock InterfaceConfiguration mConfig; @Mock NetworkAgentInfo mNai; Loading @@ -78,6 +80,7 @@ public class Nat464XlatTest { mNai.networkInfo = new NetworkInfo(null); mNai.networkInfo.setType(ConnectivityManager.TYPE_WIFI); when(mNai.connService()).thenReturn(mConnectivity); when(mNai.netMisc()).thenReturn(mMisc); when(mNai.handler()).thenReturn(mHandler); when(mNms.getInterfaceConfig(eq(STACKED_IFACE))).thenReturn(mConfig); Loading @@ -103,9 +106,16 @@ public class Nat464XlatTest { mNai.networkInfo.setType(type); for (NetworkInfo.DetailedState state : supportedDetailedStates) { mNai.networkInfo.setDetailedState(state, "reason", "extraInfo"); assertTrue( String.format("requiresClat expected for type=%d state=%s", type, state), Nat464Xlat.requiresClat(mNai)); String msg = String.format("requiresClat expected for type=%d state=%s", type, state); mMisc.skip464xlat = true; String errorMsg = msg + String.format(" skip464xlat=%b", mMisc.skip464xlat); assertFalse(errorMsg, Nat464Xlat.requiresClat(mNai)); mMisc.skip464xlat = false; errorMsg = msg + String.format(" skip464xlat=%b", mMisc.skip464xlat); assertTrue(errorMsg, Nat464Xlat.requiresClat(mNai)); } } } Loading