am 594eeb08: Merge "Fix for the invalid Global Proxy Setting" into klp-dev
* commit '594eeb082e548617ff5092496888c43457593c2b': Fix for the invalid Global Proxy Setting
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user