diff options
author | Erik Kline <ek@google.com> | 2016-02-01 22:24:28 +0900 |
---|---|---|
committer | Erik Kline <ek@google.com> | 2016-02-02 12:12:42 +0900 |
commit | 6728555d8e533b3ae2efe7e48f4a0bac3809d959 (patch) | |
tree | 297b45a98b4885f2a78fbd8f1d342b6504ab428b | |
parent | 5c175abc314bbb32c7d9fb542c97577f39a910f8 (diff) |
Move static IP configuration into IpManager
Also, stop passing around "reason" for IPv4 provisioning success
or failure.
Bug: 17345682
Change-Id: Ib7f2e1ba7ce5d8c17427e21ad9035b06750d2452
-rw-r--r-- | service/java/com/android/server/wifi/WifiStateMachine.java | 55 | ||||
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java | 6 |
2 files changed, 31 insertions, 30 deletions
diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java index 0f0655144..c7992e190 100644 --- a/service/java/com/android/server/wifi/WifiStateMachine.java +++ b/service/java/com/android/server/wifi/WifiStateMachine.java @@ -1419,13 +1419,13 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiPno } @Override - public void onIPv4ProvisioningSuccess(DhcpResults dhcpResults, int reason) { - sendMessage(CMD_IPV4_PROVISIONING_SUCCESS, reason, 0, dhcpResults); + public void onIPv4ProvisioningSuccess(DhcpResults dhcpResults) { + sendMessage(CMD_IPV4_PROVISIONING_SUCCESS, dhcpResults); } @Override - public void onIPv4ProvisioningFailure(int reason) { - sendMessage(CMD_IPV4_PROVISIONING_FAILURE, reason); + public void onIPv4ProvisioningFailure() { + sendMessage(CMD_IPV4_PROVISIONING_FAILURE); } @Override @@ -8117,8 +8117,7 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiPno handlePostDhcpSetup(); if (message.arg1 == DhcpStateMachine.DHCP_SUCCESS) { if (DBG) log("DHCP successful"); - mIpManager.updateWithDhcpResults( - (DhcpResults) message.obj, DhcpStateMachine.DHCP_SUCCESS); + mIpManager.updateWithDhcpResults((DhcpResults) message.obj); // We advance to mConnectedState because IpManager will send back a // CMD_IPV4_PROVISIONING_SUCCESS message, which calls handleIPv4Success(), // which calls updateLinkProperties, which then sends @@ -8137,17 +8136,35 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiPno } mWifiMetrics.endConnectionEvent(0, WifiMetricsProto.ConnectionEvent.HLF_DHCP); - mIpManager.updateWithDhcpResults(null, DhcpStateMachine.DHCP_FAILURE); + mIpManager.updateWithDhcpResults(null); // As above, we transition to mDisconnectingState via messages send back // from IpManager. } break; - case CMD_IPV4_PROVISIONING_SUCCESS: - handleIPv4Success((DhcpResults) message.obj, message.arg1); + case CMD_IPV4_PROVISIONING_SUCCESS: { + int reason; + // TODO: Figure out what to do if we switch static/dynamic + // before we get handle this message. + if (mWifiConfigStore.isUsingStaticIp(mLastNetworkId)) { + reason = CMD_STATIC_IP_SUCCESS; + } else { + reason = DhcpStateMachine.DHCP_SUCCESS; + } + handleIPv4Success((DhcpResults) message.obj, reason); break; - case CMD_IPV4_PROVISIONING_FAILURE: - handleIPv4Failure(message.arg1); + } + case CMD_IPV4_PROVISIONING_FAILURE: { + int reason; + // TODO: Figure out what to do if we switch static/dynamic + // before we get handle this message. + if (mWifiConfigStore.isUsingStaticIp(mLastNetworkId)) { + reason = CMD_STATIC_IP_FAILURE; + } else { + reason = DhcpStateMachine.DHCP_FAILURE; + } + handleIPv4Failure(reason); break; + } case CMD_IP_CONFIGURATION_SUCCESSFUL: handleSuccessfulIpConfiguration(); mWifiMetrics.endConnectionEvent(0, WifiMetricsProto.ConnectionEvent.HLF_NONE); @@ -8500,7 +8517,6 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiPno // roaming, we don't have a usable address. clearIPv4Address(mInterfaceName); - // TODO: be better about static vs DHCP vs ... mIpManager.startProvisioning(); startDhcp(); @@ -8521,21 +8537,6 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiPno sendMessage(CMD_STATIC_IP_FAILURE); } else { mIpManager.startProvisioning(config); - InterfaceConfiguration ifcg = new InterfaceConfiguration(); - ifcg.setLinkAddress(config.ipAddress); - ifcg.setInterfaceUp(); - try { - mNwService.setInterfaceConfig(mInterfaceName, ifcg); - if (DBG) log("Static IP configuration succeeded"); - mIpManager.updateWithDhcpResults( - new DhcpResults(config), CMD_STATIC_IP_SUCCESS); - } catch (RemoteException re) { - loge("Static IP configuration failed: " + re); - mIpManager.updateWithDhcpResults(null, CMD_STATIC_IP_FAILURE); - } catch (IllegalStateException e) { - loge("Static IP configuration failed: " + e); - mIpManager.updateWithDhcpResults(null, CMD_STATIC_IP_FAILURE); - } } } } diff --git a/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java b/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java index 14bead771..41951f99a 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java @@ -138,11 +138,11 @@ public class WifiStateMachineTest { public void confirmConfiguration() {} @Override - public void updateWithDhcpResults(DhcpResults dhcpResults, int reason) { + public void updateWithDhcpResults(DhcpResults dhcpResults) { if (dhcpResults != null) { - mCallback.onIPv4ProvisioningSuccess(dhcpResults, reason); + mCallback.onIPv4ProvisioningSuccess(dhcpResults); } else { - mCallback.onIPv4ProvisioningFailure(reason); + mCallback.onIPv4ProvisioningFailure(); } } } |