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

Commit 70af574b authored by Robert Greenwalt's avatar Robert Greenwalt
Browse files

Some cleanup of Proxy class.

Switch to using InetSocketAddress.

Change-Id: Ibdb97fcd2d06eecaa1e847b78267180156089f27
parent 21e78449
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -46,6 +46,8 @@ public final class Proxy {
    // Set to true to enable extra debugging.
    private static final boolean DEBUG = false;

    // Used to notify an app that's caching the default connection proxy
    // that either the default connection or its proxy has changed
    public static final String PROXY_CHANGE_ACTION =
        "android.intent.action.PROXY_CHANGE";

@@ -74,9 +76,10 @@ public final class Proxy {
        EXCLLIST_PATTERN = Pattern.compile(EXCLLIST_REGEXP);
    }

    // useful because it holds the processed exclusion list - don't want to reparse it each time
    private static class ProxySpec {
        String[] exclusionList = null;
        InetSocketAddress proxyAddress = null;
        InetSocketAddress address = null;
        public ProxySpec() { };
    }

@@ -151,7 +154,7 @@ public final class Proxy {
                    retval = java.net.Proxy.NO_PROXY;
                } else {
                    retval =
                        new java.net.Proxy(java.net.Proxy.Type.HTTP, sGlobalProxySpec.proxyAddress);
                        new java.net.Proxy(java.net.Proxy.Type.HTTP, sGlobalProxySpec.address);
                }
            } else {
                // If network is WiFi, return no proxy.
@@ -187,7 +190,7 @@ public final class Proxy {
                parseGlobalProxyInfoReadLocked(ctx);
            }
            if (sGlobalProxySpec != null) {
                InetSocketAddress sa = sGlobalProxySpec.proxyAddress;
                InetSocketAddress sa = sGlobalProxySpec.address;
                return sa.getHostName();
            }
            return getDefaultHost();
@@ -210,7 +213,7 @@ public final class Proxy {
                parseGlobalProxyInfoReadLocked(ctx);
            }
            if (sGlobalProxySpec != null) {
                InetSocketAddress sa = sGlobalProxySpec.proxyAddress;
                InetSocketAddress sa = sGlobalProxySpec.address;
                return sa.getPort();
            }
            return getDefaultPort();
@@ -389,7 +392,7 @@ public final class Proxy {
        int port = parsePort(proxyHost);
        if (proxyHost != null) {
            sGlobalProxySpec = new ProxySpec();
            sGlobalProxySpec.proxyAddress = new InetSocketAddress(host, port);
            sGlobalProxySpec.address= new InetSocketAddress(host, port);
            if ((exclusionListSpec != null) && (exclusionListSpec.length() != 0)) {
                String[] exclusionListEntries = exclusionListSpec.toLowerCase().split(",");
                String[] processedEntries = new String[exclusionListEntries.length];
+15 −23
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.os.Parcel;
import android.os.Parcelable;

import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.UnknownHostException;

/**
@@ -29,8 +30,7 @@ import java.net.UnknownHostException;
 */
public class ProxyProperties implements Parcelable {

    private InetAddress mProxy;
    private int mPort;
    private InetSocketAddress mProxy;
    private String mExclusionList;

    public ProxyProperties() {
@@ -39,8 +39,7 @@ public class ProxyProperties implements Parcelable {
    // copy constructor instead of clone
    public ProxyProperties(ProxyProperties source) {
        if (source != null) {
            mProxy = source.getAddress();
            mPort = source.getPort();
            mProxy = source.getSocketAddress();
            String exclusionList = source.getExclusionList();
            if (exclusionList != null) {
                mExclusionList = new String(exclusionList);
@@ -48,22 +47,14 @@ public class ProxyProperties implements Parcelable {
        }
    }

    public InetAddress getAddress() {
    public InetSocketAddress getSocketAddress() {
        return mProxy;
    }

    public void setAddress(InetAddress proxy) {
    public void setSocketAddress(InetSocketAddress proxy) {
        mProxy = proxy;
    }

    public int getPort() {
        return mPort;
    }

    public void setPort(int port) {
        mPort = port;
    }

    public String getExclusionList() {
        return mExclusionList;
    }
@@ -76,7 +67,7 @@ public class ProxyProperties implements Parcelable {
    public String toString() {
        StringBuilder sb = new StringBuilder();
        if (mProxy != null) {
            sb.append(mProxy.getHostAddress()).append(":").append(mPort);
            sb.append(mProxy.toString());
            if (mExclusionList != null) {
                    sb.append(" xl=").append(mExclusionList);
            }
@@ -98,13 +89,15 @@ public class ProxyProperties implements Parcelable {
     */
    public void writeToParcel(Parcel dest, int flags) {
        if (mProxy != null) {
            InetAddress addr = mProxy.getAddress();
            if (addr != null) {
                dest.writeByte((byte)1);
            dest.writeString(mProxy.getHostName());
            dest.writeByteArray(mProxy.getAddress());
                dest.writeByteArray(addr.getAddress());
                dest.writeInt(mProxy.getPort());
            }
        } else {
            dest.writeByte((byte)0);
        }
        dest.writeInt(mPort);
        dest.writeString(mExclusionList);
    }

@@ -118,11 +111,10 @@ public class ProxyProperties implements Parcelable {
                ProxyProperties proxyProperties = new ProxyProperties();
                if (in.readByte() == 1) {
                    try {
                        proxyProperties.setAddress(InetAddress.getByAddress(in.readString(),
                                in.createByteArray()));
                        InetAddress addr = InetAddress.getByAddress(in.createByteArray());
                        proxyProperties.setSocketAddress(new InetSocketAddress(addr, in.readInt()));
                    } catch (UnknownHostException e) { }
                }
                proxyProperties.setPort(in.readInt());
                proxyProperties.setExclusionList(in.readString());
                return proxyProperties;
            }
+3 −2
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ import com.android.internal.telephony.DataConnection.FailCause;

import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;

@@ -1104,8 +1105,8 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
            if (apn.proxy != null && apn.proxy.length() != 0) {
                try {
                    ProxyProperties proxy = new ProxyProperties();
                    proxy.setAddress(InetAddress.getByName(apn.proxy));
                    proxy.setPort(Integer.parseInt(apn.port));
                    proxy.setSocketAddress(new InetSocketAddress(InetAddress.getByName(apn.proxy),
                            Integer.parseInt(apn.port)));
                    mLinkProperties.setHttpProxy(proxy);
                } catch (UnknownHostException e) {
                    Log.e(LOG_TAG, "UnknownHostException making ProxyProperties: " + e);