summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRicardo Cerqueira <ricardo@cyngn.com>2015-11-05 14:13:35 +0000
committerRicardo Cerqueira <ricardo@cyngn.com>2015-11-05 14:13:35 +0000
commitdb5d16dbc2a25835d471aaeceef6baa67ba0c187 (patch)
tree6cae42caf1bd8c96270b41395a89986cc07a3088
parentf10871477f5d72ef38b5b2c487db747b5be3cf70 (diff)
parent23a604e1c936ee39fd26a9475681e38519d71fa8 (diff)
downloadandroid_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.java8
-rw-r--r--src/com/android/mms/service/MmsHttpClient.java3
-rw-r--r--src/com/android/mms/service/MmsNetworkManager.java13
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();
}