From 4d2b4eae674eac77acef09c5b4d1aeffcb93b793 Mon Sep 17 00:00:00 2001 From: Troy Larson Date: Thu, 10 Aug 2017 17:04:39 -0400 Subject: [PATCH 1/2] Add KeepAlive flag to allow toggle between Keep-Alive/close Connection header --- .../Elasticsearch.Net.Aws/AwsHttpConnection.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/AwsHttpConnection.cs b/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/AwsHttpConnection.cs index 09c1652..30d0625 100644 --- a/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/AwsHttpConnection.cs +++ b/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/AwsHttpConnection.cs @@ -1,5 +1,6 @@ -using System; +using System; using System.IO; +using System.Net; using System.Net.Http; namespace Elasticsearch.Net.Aws @@ -12,6 +13,8 @@ public class AwsHttpConnection : HttpConnection private readonly ICredentialsProvider _credentialsProvider; private readonly string _region; + public bool KeepAlive { get; set; } + /// /// Initializes a new instance of the AwsHttpConnection class with the specified AccessKey, SecretKey and Token. /// @@ -19,6 +22,7 @@ public class AwsHttpConnection : HttpConnection [Obsolete("Use AwsHttpConnection(string region, ICredentialsProvider credentialsProvider)")] public AwsHttpConnection(AwsSettings awsSettings) { + KeepAlive = false; if (awsSettings == null) throw new ArgumentNullException(nameof(awsSettings)); if (string.IsNullOrWhiteSpace(awsSettings.Region)) throw new ArgumentException("awsSettings.Region is invalid.", nameof(awsSettings)); _region = awsSettings.Region.ToLowerInvariant(); @@ -41,7 +45,6 @@ public AwsHttpConnection(string region) { } - /// /// Initializes a new instance of the AwsHttpConnection class with credentials from the Instance Profile service /// @@ -60,6 +63,8 @@ public AwsHttpConnection(string region, ICredentialsProvider credentialsProvider protected override System.Net.HttpWebRequest CreateHttpWebRequest(RequestData requestData) { var request = base.CreateHttpWebRequest(requestData); + request.Headers.Remove("Connection"); + request.Headers.Add("Connection", KeepAlive ? "Keep-Alive" : "close"); SignRequest(new HttpWebRequestAdapter(request), requestData); return request; } @@ -67,6 +72,8 @@ protected override System.Net.HttpWebRequest CreateHttpWebRequest(RequestData re protected override HttpRequestMessage CreateHttpRequestMessage(RequestData requestData) { var request = base.CreateHttpRequestMessage(requestData); + request.Headers.Remove("Connection"); + request.Headers.Add("Connection", KeepAlive ? "Keep-Alive" : "close"); SignRequest(new HttpRequestMessageAdapter(request), requestData); return request; } From 32eea5be6405dad8d748a5b780e3430af3ef8d49 Mon Sep 17 00:00:00 2001 From: Troy Larson Date: Thu, 10 Aug 2017 17:08:33 -0400 Subject: [PATCH 2/2] Removed unnecessary using --- .../Elasticsearch.Net.Aws/AwsHttpConnection.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/AwsHttpConnection.cs b/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/AwsHttpConnection.cs index 30d0625..fb0d281 100644 --- a/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/AwsHttpConnection.cs +++ b/src/Elasticsearch.Net.Aws/Elasticsearch.Net.Aws/AwsHttpConnection.cs @@ -1,6 +1,5 @@ using System; using System.IO; -using System.Net; using System.Net.Http; namespace Elasticsearch.Net.Aws @@ -102,3 +101,4 @@ private void SignRequest(IRequest request, RequestData requestData) } } } +