diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-01-14 22:26:12 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-01-14 22:26:12 +0000 |
commit | 1292d43ed10c3c773a86a9b2b9bfec1eaadaba8e (patch) | |
tree | 7ef9f066910b17d8ac46297a54be2b2a0c64d407 | |
parent | b9822af3d7bff431ec187b5d2f2d57929f29184a (diff) | |
parent | ed17a4bf8ddf9c6248d08954a1412aa265296f9b (diff) | |
download | telephony-1292d43ed10c3c773a86a9b2b9bfec1eaadaba8e.tar.gz |
Snap for 9491515 from ed17a4bf8ddf9c6248d08954a1412aa265296f9b to tm-qpr3-release
Change-Id: Ib79c4ede5f28036244a86ba8f19d3e2c9e56fa3d
-rw-r--r-- | src/java/com/android/internal/telephony/data/DataNetwork.java | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/java/com/android/internal/telephony/data/DataNetwork.java b/src/java/com/android/internal/telephony/data/DataNetwork.java index 85728918f5..7efd2fde01 100644 --- a/src/java/com/android/internal/telephony/data/DataNetwork.java +++ b/src/java/com/android/internal/telephony/data/DataNetwork.java @@ -2361,7 +2361,7 @@ public class DataNetwork extends StateMachine { logl("onSetupResponse: resultCode=" + DataServiceCallback.resultCodeToString(resultCode) + ", response=" + response); mFailCause = getFailCauseFromDataCallResponse(resultCode, response); - validateDataCallResponse(response); + validateDataCallResponse(response, true /*isSetupResponse*/); if (mFailCause == DataFailCause.NONE) { if (mDataNetworkController.isNetworkInterfaceExisting(response.getInterfaceName())) { logl("Interface " + response.getInterfaceName() + " already existing. Silently " @@ -2431,8 +2431,10 @@ public class DataNetwork extends StateMachine { * If the {@link DataCallResponse} contains invalid info, triggers an anomaly report. * * @param response The response to be validated + * @param isSetupResponse {@code true} if the response is for initial data call setup */ - private void validateDataCallResponse(@Nullable DataCallResponse response) { + private void validateDataCallResponse(@Nullable DataCallResponse response, + boolean isSetupResponse) { if (response == null || response.getLinkStatus() == DataCallResponse.LINK_STATUS_INACTIVE) return; int failCause = response.getCause(); @@ -2452,8 +2454,10 @@ public class DataNetwork extends StateMachine { reportAnomaly("Invalid DataCallResponse detected", "1f273e9d-b09c-46eb-ad1c-421d01f61164"); } + // Check IP for initial setup response NetworkRegistrationInfo nri = getNetworkRegistrationInfo(); - if (mDataProfile.getApnSetting() != null && nri != null && nri.isInService()) { + if (isSetupResponse + && mDataProfile.getApnSetting() != null && nri != null && nri.isInService()) { boolean isRoaming = nri.getInitialRegistrationState() == NetworkRegistrationInfo.REGISTRATION_STATE_ROAMING; int protocol = isRoaming ? mDataProfile.getApnSetting().getRoamingProtocol() @@ -2612,7 +2616,7 @@ public class DataNetwork extends StateMachine { if (response != null) { if (!response.equals(mDataCallResponse)) { log("onDataStateChanged: " + response); - validateDataCallResponse(response); + validateDataCallResponse(response, false /*isSetupResponse*/); mDataCallResponse = response; if (response.getLinkStatus() != DataCallResponse.LINK_STATUS_INACTIVE) { updateDataNetwork(response); @@ -3190,7 +3194,7 @@ public class DataNetwork extends StateMachine { logl("onHandoverResponse: resultCode=" + DataServiceCallback.resultCodeToString(resultCode) + ", response=" + response); mFailCause = getFailCauseFromDataCallResponse(resultCode, response); - validateDataCallResponse(response); + validateDataCallResponse(response, false /*isSetupResponse*/); if (mFailCause == DataFailCause.NONE) { // Handover succeeded. |