From f1b66e1be1fecc7f74f34ae2e43451975984542d Mon Sep 17 00:00:00 2001 From: Robert Greenwalt Date: Thu, 25 Feb 2010 12:29:30 -0800 Subject: [PATCH] Add build options for tethering. Dun-required bool and list of allowed upstream ifaces. --- .../com/android/server/ConnectivityService.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index 19f4b8ae1f..71f80d95b3 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -66,6 +66,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { private Tethering mTethering; + private boolean mTetheringConfigValid = false; /** * Sometimes we want to refer to the individual network state @@ -320,6 +321,12 @@ public class ConnectivityService extends IConnectivityManager.Stub { } mTethering = new Tethering(mContext); + mTetheringConfigValid = (((mNetTrackers[ConnectivityManager.TYPE_MOBILE_DUN] != null) || + !mTethering.isDunRequired()) && + (mTethering.getTetherableUsbRegexs().length != 0 || + mTethering.getTetherableWifiRegexs().length != 0) && + mTethering.getUpstreamIfaceRegexs().length != 0); + } @@ -1498,8 +1505,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { public boolean isTetheringSupported() { enforceTetherAccessPermission(); int defaultVal = (SystemProperties.get("ro.tether.denied").equals("true") ? 0 : 1); - return ((Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.TETHER_SUPPORTED, defaultVal) != 0) && - (mNetTrackers[ConnectivityManager.TYPE_MOBILE_DUN] != null)); + boolean tetherEnabledInSettings = (Settings.Secure.getInt(mContext.getContentResolver(), + Settings.Secure.TETHER_SUPPORTED, defaultVal) != 0); + return tetherEnabledInSettings && mTetheringConfigValid; } }