diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2020-04-03 03:17:40 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-04-03 03:17:40 +0000 |
commit | 87f896aa4ba047370585ab7705167e84b98de6ef (patch) | |
tree | 489410afff56f3c27384d2709a7a4c471e7a3ca1 /src | |
parent | 24f8cd78e06a95e29f3491a80c5a992ea37bdcb7 (diff) | |
parent | 56b911573b6b1bceb268dbbd3c735da4917c3129 (diff) |
Merge "Getting interface params in ClearingIpAddressState#enter." into rvc-dev
Diffstat (limited to 'src')
-rw-r--r-- | src/android/net/ip/IpClient.java | 19 |
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 |