diff options
author | Ricardo Cerqueira <ricardo@cyngn.com> | 2015-11-05 14:13:35 +0000 |
---|---|---|
committer | Ricardo Cerqueira <ricardo@cyngn.com> | 2015-11-05 14:13:35 +0000 |
commit | db5d16dbc2a25835d471aaeceef6baa67ba0c187 (patch) | |
tree | 6cae42caf1bd8c96270b41395a89986cc07a3088 | |
parent | f10871477f5d72ef38b5b2c487db747b5be3cf70 (diff) | |
parent | 23a604e1c936ee39fd26a9475681e38519d71fa8 (diff) | |
download | android_packages_services_Mms-db5d16dbc2a25835d471aaeceef6baa67ba0c187.tar.gz android_packages_services_Mms-db5d16dbc2a25835d471aaeceef6baa67ba0c187.tar.bz2 android_packages_services_Mms-db5d16dbc2a25835d471aaeceef6baa67ba0c187.zip |
Merge tag 'android-6.0.0_r26' into cm-13.0
Android 6.0.0 release 26
-rw-r--r-- | src/com/android/mms/service/ApnSettings.java | 8 | ||||
-rw-r--r-- | src/com/android/mms/service/MmsHttpClient.java | 3 | ||||
-rw-r--r-- | src/com/android/mms/service/MmsNetworkManager.java | 13 |
3 files changed, 18 insertions, 6 deletions
diff --git a/src/com/android/mms/service/ApnSettings.java b/src/com/android/mms/service/ApnSettings.java index 9a2b7ca..48383c1 100644 --- a/src/com/android/mms/service/ApnSettings.java +++ b/src/com/android/mms/service/ApnSettings.java @@ -113,7 +113,8 @@ public class ApnSettings { if (cursor != null) { String mmscUrl = null; String proxyAddress = null; - int proxyPort = -1; + // Default proxy port to 80 + int proxyPort = 80; while (cursor.moveToNext()) { // Read values from APN settings if (isValidApnType( @@ -133,12 +134,11 @@ public class ApnSettings { proxyAddress = NetworkUtils.trimV4AddrZeros(proxyAddress); final String portString = trimWithNullCheck(cursor.getString(COLUMN_MMSPORT)); - if (portString != null) { + if (!TextUtils.isEmpty(portString)) { try { proxyPort = Integer.parseInt(portString); } catch (NumberFormatException e) { - LogUtil.e(requestId, "Invalid port " + portString); - throw new ApnException("Invalid port " + portString); + LogUtil.e(requestId, "Invalid port " + portString + ", use 80"); } } } diff --git a/src/com/android/mms/service/MmsHttpClient.java b/src/com/android/mms/service/MmsHttpClient.java index e09695c..f6d3d1b 100644 --- a/src/com/android/mms/service/MmsHttpClient.java +++ b/src/com/android/mms/service/MmsHttpClient.java @@ -109,7 +109,8 @@ public class MmsHttpClient { try { Proxy proxy = Proxy.NO_PROXY; if (isProxySet) { - proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort)); + proxy = new Proxy(Proxy.Type.HTTP, + new InetSocketAddress(mNetwork.getByName(proxyHost), proxyPort)); } final URL url = new URL(urlString); // Now get the connection diff --git a/src/com/android/mms/service/MmsNetworkManager.java b/src/com/android/mms/service/MmsNetworkManager.java index ea2fa90..ed78258 100644 --- a/src/com/android/mms/service/MmsNetworkManager.java +++ b/src/com/android/mms/service/MmsNetworkManager.java @@ -185,7 +185,18 @@ public class MmsNetworkManager { private void releaseRequestLocked(ConnectivityManager.NetworkCallback callback) { if (callback != null) { final ConnectivityManager connectivityManager = getConnectivityManager(); - connectivityManager.unregisterNetworkCallback(callback); + try { + connectivityManager.unregisterNetworkCallback(callback); + } catch (IllegalArgumentException e) { + // It is possible ConnectivityManager.requestNetwork may fail silently due + // to RemoteException. When that happens, we may get an invalid + // NetworkCallback, which causes an IllegalArgumentexception when we try to + // unregisterNetworkCallback. This exception in turn causes + // MmsNetworkManager to skip resetLocked() in the below. Thus MMS service + // would get stuck in the bad state until the device restarts. This fix + // catches the exception so that state clean up can be executed. + LogUtil.w("Unregister network callback exception", e); + } } resetLocked(); } |