diff options
author | Ye Wen <ywen@google.com> | 2016-07-18 14:37:34 -0700 |
---|---|---|
committer | Ye Wen <ywen@google.com> | 2016-07-19 08:30:05 -0700 |
commit | 44108eca8b4528a7ab68fe83e2a03c549ef57bb1 (patch) | |
tree | 132f771ce8f95b60e8cb05b54bd5496bacb70cd9 | |
parent | 6183385d3665d329fae1022fe0b165b07b59d194 (diff) | |
download | Mms-nougat-dr1-release.tar.gz |
Close connection after MMS request if configured by carrierandroid-7.1.0_r7android-7.1.0_r6android-7.1.0_r5android-7.1.0_r4android-7.1.0_r3android-7.1.0_r2android-7.1.0_r1nougat-dr1-release
b/29558615
Change-Id: I6ae922a3cfd5b342bffc22873173feaa65d61eaf
-rw-r--r-- | src/com/android/mms/service/MmsHttpClient.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/com/android/mms/service/MmsHttpClient.java b/src/com/android/mms/service/MmsHttpClient.java index 1c88bbf..b117086 100644 --- a/src/com/android/mms/service/MmsHttpClient.java +++ b/src/com/android/mms/service/MmsHttpClient.java @@ -21,6 +21,7 @@ import android.net.ConnectivityManager; import android.net.LinkProperties; import android.net.Network; import android.os.Bundle; +import android.telephony.CarrierConfigManager; import android.telephony.SmsManager; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; @@ -61,6 +62,7 @@ public class MmsHttpClient { private static final String HEADER_ACCEPT = "Accept"; private static final String HEADER_ACCEPT_LANGUAGE = "Accept-Language"; private static final String HEADER_USER_AGENT = "User-Agent"; + private static final String HEADER_CONNECTION = "Connection"; // The "Accept" header value private static final String HEADER_VALUE_ACCEPT = @@ -70,6 +72,7 @@ public class MmsHttpClient { "application/vnd.wap.mms-message; charset=utf-8"; private static final String HEADER_VALUE_CONTENT_TYPE_WITHOUT_CHARSET = "application/vnd.wap.mms-message"; + private static final String HEADER_CONNECTION_CLOSE = "close"; private static final int IPV4_WAIT_ATTEMPTS = 15; private static final long IPV4_WAIT_DELAY_MS = 1000; // 1 seconds @@ -146,6 +149,14 @@ public class MmsHttpClient { LogUtil.i(requestId, "HTTP: UaProfUrl=" + uaProfUrl); connection.setRequestProperty(uaProfUrlTagName, uaProfUrl); } + // Header: Connection: close (if needed) + // Some carriers require that the HTTP connection's socket is closed + // after an MMS request/response is complete. In these cases keep alive + // is disabled. See https://tools.ietf.org/html/rfc7230#section-6.6 + if (mmsConfig.getBoolean(SmsManager.MMS_CONFIG_CLOSE_CONNECTION, false)) { + LogUtil.i(requestId, "HTTP: Connection close after request"); + connection.setRequestProperty(HEADER_CONNECTION, HEADER_CONNECTION_CLOSE); + } // Add extra headers specified by mms_config.xml's httpparams addExtraHeaders(connection, mmsConfig, subId); // Different stuff for GET and POST |