summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYe Wen <ywen@google.com>2016-07-18 14:37:34 -0700
committerYe Wen <ywen@google.com>2016-07-19 08:30:05 -0700
commit44108eca8b4528a7ab68fe83e2a03c549ef57bb1 (patch)
tree132f771ce8f95b60e8cb05b54bd5496bacb70cd9
parent6183385d3665d329fae1022fe0b165b07b59d194 (diff)
downloadMms-nougat-dr1-release.tar.gz
b/29558615 Change-Id: I6ae922a3cfd5b342bffc22873173feaa65d61eaf
-rw-r--r--src/com/android/mms/service/MmsHttpClient.java11
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