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

Commit b979f791 authored by Robert Greenwalt's avatar Robert Greenwalt
Browse files

Remove more use of netmask

bug:2542681
Change-Id: Ifd75672739ee8262d4df22afd8173e4f3f67260d
parent b495eb90
Loading
Loading
Loading
Loading
+7 −17
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package android.net;
import android.os.Parcel;
import android.os.Parcelable;

import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.InterfaceAddress;
import java.net.UnknownHostException;
@@ -38,12 +39,13 @@ public class LinkAddress implements Parcelable {
     */
    private final int prefixLength;

    public LinkAddress(InetAddress address, InetAddress mask) {
        this.address = address;
        this.prefixLength = computeprefixLength(mask);
    }

    public LinkAddress(InetAddress address, int prefixLength) {
        if (address == null || prefixLength < 0 ||
                ((address instanceof Inet4Address) && prefixLength > 32) ||
                (prefixLength > 128)) {
            throw new IllegalArgumentException("Bad LinkAddress params " + address +
                    prefixLength);
        }
        this.address = address;
        this.prefixLength = prefixLength;
    }
@@ -53,18 +55,6 @@ public class LinkAddress implements Parcelable {
        this.prefixLength = interfaceAddress.getNetworkPrefixLength();
    }

    private static int computeprefixLength(InetAddress mask) {
        int count = 0;
        for (byte b : mask.getAddress()) {
            for (int i = 0; i < 8; ++i) {
                if ((b & (1 << i)) != 0) {
                    ++count;
                }
            }
        }
        return count;
    }

    @Override
    public String toString() {
        return (address == null ? "" : (address.getHostAddress() + "/" + prefixLength));
+2 −3
Original line number Diff line number Diff line
@@ -130,7 +130,7 @@ public class BluetoothService extends IBluetooth.Stub {

    private static final String BLUETOOTH_IFACE_ADDR_START= "192.168.44.1";
    private static final int BLUETOOTH_MAX_PAN_CONNECTIONS = 5;
    private static final String BLUETOOTH_NETMASK        = "255.255.255.0";
    private static final int BLUETOOTH_PREFIX_LENGTH    = 24;

    // The timeout used to sent the UUIDs Intent
    // This timeout should be greater than the page timeout
@@ -1704,7 +1704,6 @@ public class BluetoothService extends IBluetooth.Stub {
        try {
            ifcg = service.getInterfaceConfig(iface);
            if (ifcg != null) {
                InetAddress mask = InetAddress.getByName(BLUETOOTH_NETMASK);
                InetAddress addr = null;
                if (ifcg.addr == null || (addr = ifcg.addr.getAddress()) == null ||
                        addr.equals(InetAddress.getByName("0.0.0.0")) ||
@@ -1712,7 +1711,7 @@ public class BluetoothService extends IBluetooth.Stub {
                    addr = InetAddress.getByName(address);
                }
                ifcg.interfaceFlags = ifcg.interfaceFlags.replace("down", "up");
                ifcg.addr = new LinkAddress(addr, mask);
                ifcg.addr = new LinkAddress(addr, BLUETOOTH_PREFIX_LENGTH);
                ifcg.interfaceFlags = ifcg.interfaceFlags.replace("running", "");
                ifcg.interfaceFlags = ifcg.interfaceFlags.replace("  "," ");
                service.setInterfaceConfig(iface, ifcg);
+4 −20
Original line number Diff line number Diff line
@@ -46,8 +46,8 @@ import java.util.List;
 * <accesspoint></accesspoint>. The supported configuration includes: ssid,
 * security, eap, phase2, identity, password, anonymousidentity, cacert, usercert,
 * in which each is included in the corresponding tags. Static IP setting is also supported.
 * Tags that can be used include: ip, gateway, netmask, dns1, dns2. All access points have to be
 * enclosed in tags of <resources></resources>.
 * Tags that can be used include: ip, gateway, networkprefixlength, dns1, dns2. All access points
 * have to be enclosed in tags of <resources></resources>.
 *
 * The following is a sample configuration file for an access point using EAP-PEAP with MSCHAP2.
 * <resources>
@@ -62,7 +62,8 @@ import java.util.List;
 * </resources>
 *
 * Note:ssid and security have to be the first two tags
 *      for static ip setting, tag "ip" should be listed before other fields: dns, gateway, netmask.
 *      for static ip setting, tag "ip" should be listed before other fields: dns, gateway,
 *      networkprefixlength.
 */
public class AccessPointParserHelper {
    private static final String KEYSTORE_SPACE = "keystore://";
@@ -106,7 +107,6 @@ public class AccessPointParserHelper {
        boolean ip = false;
        boolean gateway = false;
        boolean networkprefix = false;
        boolean netmask = false;
        boolean dns1 = false;
        boolean dns2 = false;
        boolean eap = false;
@@ -163,9 +163,6 @@ public class AccessPointParserHelper {
            if (tagName.equalsIgnoreCase("networkprefixlength")) {
                networkprefix = true;
            }
            if (tagName.equalsIgnoreCase("netmask")) {
                netmask = true;
            }
            if (tagName.equalsIgnoreCase("dns1")) {
                dns1 = true;
            }
@@ -321,19 +318,6 @@ public class AccessPointParserHelper {
                }
                networkprefix = false;
            }
            if (netmask) {
                try {
                    String netMaskStr = new String(ch, start, length);
                    if (!InetAddress.isNumeric(netMaskStr)) {
                        throw new SAXException();
                    }
                    InetAddress netMaskAddr = InetAddress.getByName(netMaskStr);
                    mLinkProperties.addLinkAddress(new LinkAddress(mInetAddr, netMaskAddr));
                } catch (UnknownHostException e) {
                    throw new SAXException();
                }
                netmask = false;
            }
            if (dns1) {
                try {
                    String dnsAddr = new String(ch, start, length);
+2 −3
Original line number Diff line number Diff line
@@ -90,7 +90,7 @@ public class Tethering extends INetworkManagementEventObserver.Stub {
    private BroadcastReceiver mStateReceiver;

    private static final String USB_NEAR_IFACE_ADDR      = "192.168.42.129";
    private static final String USB_NETMASK              = "255.255.255.0";
    private static final int USB_PREFIX_LENGTH        = 24;

    // USB is  192.168.42.1 and 255.255.255.0
    // Wifi is 192.168.43.1 and 255.255.255.0
@@ -568,8 +568,7 @@ public class Tethering extends INetworkManagementEventObserver.Stub {
                    ifcg = service.getInterfaceConfig(iface);
                    if (ifcg != null) {
                        InetAddress addr = InetAddress.getByName(USB_NEAR_IFACE_ADDR);
                        InetAddress mask = InetAddress.getByName(USB_NETMASK);
                        ifcg.addr = new LinkAddress(addr, mask);
                        ifcg.addr = new LinkAddress(addr, USB_PREFIX_LENGTH);
                        if (enabled) {
                            ifcg.interfaceFlags = ifcg.interfaceFlags.replace("down", "up");
                        } else {