Merge "Allow WiFi components to manage interface up state"

This commit is contained in:
Treehugger Robot
2016-09-20 21:27:54 +00:00
committed by Gerrit Code Review
2 changed files with 18 additions and 3 deletions

View File

@@ -80,6 +80,14 @@ public class InterfaceConfiguration implements Parcelable {
mFlags.add(FLAG_DOWN);
}
/**
* Set flags so that no changes will be made to the up/down status.
*/
public void ignoreInterfaceUpDownStatus() {
mFlags.remove(FLAG_UP);
mFlags.remove(FLAG_DOWN);
}
public LinkAddress getLinkAddress() {
return mAddr;
}

View File

@@ -136,10 +136,17 @@ public class TetherInterfaceStateMachine extends StateMachine {
if (ifcg != null) {
InetAddress addr = NetworkUtils.numericToInetAddress(ipAsString);
ifcg.setLinkAddress(new LinkAddress(addr, prefixLen));
if (enabled) {
ifcg.setInterfaceUp();
if (mInterfaceType == ConnectivityManager.TETHERING_WIFI) {
// The WiFi stack has ownership of the interface up/down state.
// It is unclear whether the bluetooth or USB stacks will manage their own
// state.
ifcg.ignoreInterfaceUpDownStatus();
} else {
ifcg.setInterfaceDown();
if (enabled) {
ifcg.setInterfaceUp();
} else {
ifcg.setInterfaceDown();
}
}
ifcg.clearFlag("running");
mNMService.setInterfaceConfig(mIfaceName, ifcg);