From 11046a2a4b46bc47811a9e95632772595283cd02 Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Mon, 13 Feb 2012 13:37:23 -0800 Subject: [PATCH] WifiStateTracker: add support for overriding DCHP max retry count in an overlay Bug: 5551068 Change-Id: I7817eeb1409af2056a63548104c3c64f93ee7def Signed-off-by: Mike Lockwood --- packages/SettingsProvider/res/values/defaults.xml | 4 ++++ .../src/com/android/providers/settings/DatabaseHelper.java | 3 +++ wifi/java/android/net/wifi/WifiStateMachine.java | 4 +++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml index 4d58e6ac8b393..cdb16a0926ea9 100644 --- a/packages/SettingsProvider/res/values/defaults.xml +++ b/packages/SettingsProvider/res/values/defaults.xml @@ -142,4 +142,8 @@ false + + + 9 diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java index 02fded4e301da..2081b95b49606 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java @@ -1565,6 +1565,9 @@ public class DatabaseHelper extends SQLiteOpenHelper { loadBooleanSetting(stmt, Settings.Secure.NETSTATS_ENABLED, R.bool.def_netstats_enabled); + + loadIntegerSetting(stmt, Settings.Secure.WIFI_MAX_DHCP_RETRY_COUNT, + R.integer.def_max_dhcp_retries); } finally { if (stmt != null) stmt.close(); } diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java index 82abe3ace9f28..b272e5555115b 100644 --- a/wifi/java/android/net/wifi/WifiStateMachine.java +++ b/wifi/java/android/net/wifi/WifiStateMachine.java @@ -1742,7 +1742,9 @@ public class WifiStateMachine extends StateMachine { * If we've exceeded the maximum number of retries for DHCP * to a given network, disable the network */ - if (++mReconnectCount > getMaxDhcpRetries()) { + int maxRetries = getMaxDhcpRetries(); + // maxRetries == 0 means keep trying forever + if (maxRetries > 0 && ++mReconnectCount > maxRetries) { loge("Failed " + mReconnectCount + " times, Disabling " + mLastNetworkId); WifiConfigStore.disableNetwork(mLastNetworkId,