From e594a76c9f113a3bdc2a128215c256e450b9f53f Mon Sep 17 00:00:00 2001 From: Robert Greenwalt Date: Mon, 23 Jun 2014 14:53:42 -0700 Subject: [PATCH] Refactor wifi p2p's startDhcpServer function Add getTetheredDhcpRanges() interface and call it before calling mNwService.startTethering to update dhcp ranges. This will allow p2p apps to run well concurently with other tethering apps. Manual import of AOSP change 81546 by jianzheng.zhou@freescale.com Change-Id: Iebc62f95bdcedde80e2c1d3e9580d3f625c3b50b --- core/java/android/net/ConnectivityManager.java | 14 ++++++++++++++ core/java/android/net/IConnectivityManager.aidl | 2 ++ .../com/android/server/ConnectivityService.java | 5 +++++ 3 files changed, 21 insertions(+) diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index fb4912f270..fcaf03f725 100644 --- a/core/java/android/net/ConnectivityManager.java +++ b/core/java/android/net/ConnectivityManager.java @@ -1461,6 +1461,20 @@ public class ConnectivityManager { } } + /** + * Get the set of tethered dhcp ranges. + * + * @return an array of 0 or more {@code String} of tethered dhcp ranges. + * {@hide} + */ + public String[] getTetheredDhcpRanges() { + try { + return mService.getTetheredDhcpRanges(); + } catch (RemoteException e) { + return new String[0]; + } + } + /** * Attempt to tether the named interface. This will setup a dhcp server * on the interface, forward and NAT IP packets and forward DNS requests diff --git a/core/java/android/net/IConnectivityManager.aidl b/core/java/android/net/IConnectivityManager.aidl index 51d9b8ca45..7d5dc416f1 100644 --- a/core/java/android/net/IConnectivityManager.aidl +++ b/core/java/android/net/IConnectivityManager.aidl @@ -91,6 +91,8 @@ interface IConnectivityManager String[] getTetheringErroredIfaces(); + String[] getTetheredDhcpRanges(); + String[] getTetherableUsbRegexs(); String[] getTetherableWifiRegexs(); diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 1083c4ccc6..03171380c7 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -3613,6 +3613,11 @@ public class ConnectivityService extends IConnectivityManager.Stub { return mTethering.getErroredIfaces(); } + public String[] getTetheredDhcpRanges() { + enforceConnectivityInternalPermission(); + return mTethering.getTetheredDhcpRanges(); + } + // if ro.tether.denied = true we default to no tethering // gservices could set the secure setting to 1 though to enable it on a build where it // had previously been turned off.