Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c7e2c2c authored by Robert Greenwalt's avatar Robert Greenwalt
Browse files

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
parent 35d552f7
Loading
Loading
Loading
Loading
+14 −0
Original line number Original line Diff line number Diff line
@@ -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
     * Attempt to tether the named interface.  This will setup a dhcp server
     * on the interface, forward and NAT IP packets and forward DNS requests
     * on the interface, forward and NAT IP packets and forward DNS requests
+2 −0
Original line number Original line Diff line number Diff line
@@ -91,6 +91,8 @@ interface IConnectivityManager


    String[] getTetheringErroredIfaces();
    String[] getTetheringErroredIfaces();


    String[] getTetheredDhcpRanges();

    String[] getTetherableUsbRegexs();
    String[] getTetherableUsbRegexs();


    String[] getTetherableWifiRegexs();
    String[] getTetherableWifiRegexs();
+5 −0
Original line number Original line Diff line number Diff line
@@ -3613,6 +3613,11 @@ public class ConnectivityService extends IConnectivityManager.Stub {
        return mTethering.getErroredIfaces();
        return mTethering.getErroredIfaces();
    }
    }


    public String[] getTetheredDhcpRanges() {
        enforceConnectivityInternalPermission();
        return mTethering.getTetheredDhcpRanges();
    }

    // if ro.tether.denied = true we default to no tethering
    // 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
    // gservices could set the secure setting to 1 though to enable it on a build where it
    // had previously been turned off.
    // had previously been turned off.
+6 −1
Original line number Original line Diff line number Diff line
@@ -109,13 +109,14 @@ public class Tethering extends BaseNetworkObserver {
    // Wifi is 192.168.43.1 and 255.255.255.0
    // Wifi is 192.168.43.1 and 255.255.255.0
    // BT is limited to max default of 5 connections. 192.168.44.1 to 192.168.48.1
    // BT is limited to max default of 5 connections. 192.168.44.1 to 192.168.48.1
    // with 255.255.255.0
    // with 255.255.255.0
    // P2P is 192.168.49.1 and 255.255.255.0


    private String[] mDhcpRange;
    private String[] mDhcpRange;
    private static final String[] DHCP_DEFAULT_RANGE = {
    private static final String[] DHCP_DEFAULT_RANGE = {
        "192.168.42.2", "192.168.42.254", "192.168.43.2", "192.168.43.254",
        "192.168.42.2", "192.168.42.254", "192.168.43.2", "192.168.43.254",
        "192.168.44.2", "192.168.44.254", "192.168.45.2", "192.168.45.254",
        "192.168.44.2", "192.168.44.254", "192.168.45.2", "192.168.45.254",
        "192.168.46.2", "192.168.46.254", "192.168.47.2", "192.168.47.254",
        "192.168.46.2", "192.168.46.254", "192.168.47.2", "192.168.47.254",
        "192.168.48.2", "192.168.48.254",
        "192.168.48.2", "192.168.48.254", "192.168.49.2", "192.168.49.254",
    };
    };


    private String[] mDefaultDnsServers;
    private String[] mDefaultDnsServers;
@@ -701,6 +702,10 @@ public class Tethering extends BaseNetworkObserver {
        return retVal;
        return retVal;
    }
    }


    public String[] getTetheredDhcpRanges() {
        return mDhcpRange;
    }

    public String[] getErroredIfaces() {
    public String[] getErroredIfaces() {
        ArrayList<String> list = new ArrayList<String>();
        ArrayList<String> list = new ArrayList<String>();
        synchronized (mPublicSync) {
        synchronized (mPublicSync) {