aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-01-14 22:26:12 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-01-14 22:26:12 +0000
commit1292d43ed10c3c773a86a9b2b9bfec1eaadaba8e (patch)
tree7ef9f066910b17d8ac46297a54be2b2a0c64d407
parentb9822af3d7bff431ec187b5d2f2d57929f29184a (diff)
parented17a4bf8ddf9c6248d08954a1412aa265296f9b (diff)
downloadtelephony-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.java14
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.