summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2020-04-03 03:17:40 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-04-03 03:17:40 +0000
commit87f896aa4ba047370585ab7705167e84b98de6ef (patch)
tree489410afff56f3c27384d2709a7a4c471e7a3ca1 /src
parent24f8cd78e06a95e29f3491a80c5a992ea37bdcb7 (diff)
parent56b911573b6b1bceb268dbbd3c735da4917c3129 (diff)
Merge "Getting interface params in ClearingIpAddressState#enter." into rvc-dev
Diffstat (limited to 'src')
-rw-r--r--src/android/net/ip/IpClient.java19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/android/net/ip/IpClient.java b/src/android/net/ip/IpClient.java
index ebb31c6..74a4070 100644
--- a/src/android/net/ip/IpClient.java
+++ b/src/android/net/ip/IpClient.java
@@ -765,14 +765,6 @@ public class IpClient extends StateMachine {
return;
}
- mInterfaceParams = mDependencies.getInterfaceParams(mInterfaceName);
- if (mInterfaceParams == null) {
- logError("Failed to find InterfaceParams for " + mInterfaceName);
- doImmediateProvisioningFailure(IpManagerEvent.ERROR_INTERFACE_NOT_FOUND);
- return;
- }
-
- mCallback.setNeighborDiscoveryOffload(true);
sendMessage(CMD_START, new android.net.shared.ProvisioningConfiguration(req));
}
@@ -1636,6 +1628,17 @@ public class IpClient extends StateMachine {
// tethering or during an IpClient restart.
stopAllIP();
}
+
+ // Ensure that interface parameters are fetched on the handler thread so they are
+ // properly ordered with other events, such as restoring the interface MTU on teardown.
+ mInterfaceParams = mDependencies.getInterfaceParams(mInterfaceName);
+ if (mInterfaceParams == null) {
+ logError("Failed to find InterfaceParams for " + mInterfaceName);
+ doImmediateProvisioningFailure(IpManagerEvent.ERROR_INTERFACE_NOT_FOUND);
+ transitionTo(mStoppedState);
+ return;
+ }
+ mCallback.setNeighborDiscoveryOffload(true);
}
@Override