diff options
| author | 2017-04-30 04:32:35 +0000 | |
|---|---|---|
| committer | 2017-04-30 04:32:41 +0000 | |
| commit | d0e65f5ef076e4498fe8667c2adafe4c5869a60d (patch) | |
| tree | 4d5fe1a2ed8c4a9fa22672b83ad9bc0861ab39ae | |
| parent | 34c226d6024cb324f2acf8800d29abb3a69c1c53 (diff) | |
| parent | 7c7ef6ee5c6abb2297516284c6c89a72f7f0eeb9 (diff) | |
Merge "Use ConnectivityService's NETWORK_STACK permission for SoftAp operations" into oc-dev
| -rw-r--r-- | services/core/java/com/android/server/connectivity/Tethering.java | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/connectivity/Tethering.java b/services/core/java/com/android/server/connectivity/Tethering.java index b42242eb4423..9c5930b71d87 100644 --- a/services/core/java/com/android/server/connectivity/Tethering.java +++ b/services/core/java/com/android/server/connectivity/Tethering.java @@ -398,15 +398,21 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering } private int setWifiTethering(final boolean enable) { - synchronized (mPublicSync) { - mWifiTetherRequested = enable; - final WifiManager wifiManager = getWifiManager(); - if ((enable && wifiManager.startSoftAp(null /* use existing wifi config */)) || - (!enable && wifiManager.stopSoftAp())) { - return ConnectivityManager.TETHER_ERROR_NO_ERROR; + int rval = ConnectivityManager.TETHER_ERROR_MASTER_ERROR; + final long ident = Binder.clearCallingIdentity(); + try { + synchronized (mPublicSync) { + mWifiTetherRequested = enable; + final WifiManager mgr = getWifiManager(); + if ((enable && mgr.startSoftAp(null /* use existing wifi config */)) || + (!enable && mgr.stopSoftAp())) { + rval = ConnectivityManager.TETHER_ERROR_NO_ERROR; + } } - return ConnectivityManager.TETHER_ERROR_MASTER_ERROR; + } finally { + Binder.restoreCallingIdentity(ident); } + return rval; } private void setBluetoothTethering(final boolean enable, final ResultReceiver receiver) { |