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

Commit 594eeb08 authored by Robert Greenwalt's avatar Robert Greenwalt Committed by Android (Google) Code Review
Browse files

Merge "Fix for the invalid Global Proxy Setting" into klp-dev

parents 1f0f9fa9 92d02491
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -139,6 +139,17 @@ public class ProxyProperties implements Parcelable {
        return false;
    }

    public boolean isValid() {
        if (!TextUtils.isEmpty(mPacFileUrl)) return true;
        try {
            Proxy.validate(mHost == null ? "" : mHost, mPort == 0 ? "" : Integer.toString(mPort),
                    mExclusionList == null ? "" : mExclusionList);
        } catch (IllegalArgumentException e) {
            return false;
        }
        return true;
    }

    public java.net.Proxy makeProxy() {
        java.net.Proxy proxy = java.net.Proxy.NO_PROXY;
        if (mHost != null) {
+14 −0
Original line number Diff line number Diff line
@@ -3380,6 +3380,11 @@ public class ConnectivityService extends IConnectivityManager.Stub {
            String pacFileUrl = "";
            if (proxyProperties != null && (!TextUtils.isEmpty(proxyProperties.getHost()) ||
                    !TextUtils.isEmpty(proxyProperties.getPacFileUrl()))) {
                if (!proxyProperties.isValid()) {
                    if (DBG)
                        log("Invalid proxy properties, ignoring: " + proxyProperties.toString());
                    return;
                }
                mGlobalProxy = new ProxyProperties(proxyProperties);
                host = mGlobalProxy.getHost();
                port = mGlobalProxy.getPort();
@@ -3423,6 +3428,11 @@ public class ConnectivityService extends IConnectivityManager.Stub {
            } else {
                proxyProperties = new ProxyProperties(host, port, exclList);
            }
            if (!proxyProperties.isValid()) {
                if (DBG) log("Invalid proxy properties, ignoring: " + proxyProperties.toString());
                return;
            }

            synchronized (mProxyLock) {
                mGlobalProxy = proxyProperties;
            }
@@ -3447,6 +3457,10 @@ public class ConnectivityService extends IConnectivityManager.Stub {
        synchronized (mProxyLock) {
            if (mDefaultProxy != null && mDefaultProxy.equals(proxy)) return;
            if (mDefaultProxy == proxy) return; // catches repeated nulls
            if (!proxy.isValid()) {
                if (DBG) log("Invalid proxy properties, ignoring: " + proxy.toString());
                return;
            }
            mDefaultProxy = proxy;

            if (mGlobalProxy != null) return;
+7 −0
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ import android.content.pm.Signature;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
import android.content.pm.UserInfo;
import android.net.ProxyProperties;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Binder;
@@ -2464,6 +2465,12 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
        }
        exclusionList = exclusionList.trim();
        ContentResolver res = mContext.getContentResolver();

        ProxyProperties proxyProperties = new ProxyProperties(data[0], proxyPort, exclusionList);
        if (!proxyProperties.isValid()) {
            Slog.e(TAG, "Invalid proxy properties, ignoring: " + proxyProperties.toString());
            return;
        }
        Settings.Global.putString(res, Settings.Global.GLOBAL_HTTP_PROXY_HOST, data[0]);
        Settings.Global.putInt(res, Settings.Global.GLOBAL_HTTP_PROXY_PORT, proxyPort);
        Settings.Global.putString(res, Settings.Global.GLOBAL_HTTP_PROXY_EXCLUSION_LIST,