diff options
author | Thomas <thomas@linecorp.com> | 2021-03-26 15:56:37 +0900 |
---|---|---|
committer | Jens Geyer <jensg@apache.org> | 2021-03-26 22:25:04 +0100 |
commit | 2f158431656a59aa87fbe640562cc402da7a06d6 (patch) | |
tree | 36f22c06c132a4fc272022b8fdf984c2df7dfdac /lib/netstd | |
parent | eb0f1175a7e966812e8ddfc44006a7fc8df6102a (diff) | |
download | thrift-2f158431656a59aa87fbe640562cc402da7a06d6.tar.gz |
THRIFT-5236 THttpTransport.cs still has bad timeout code
Client: netstd
Patch: Thomas Bruggink
This closes #2360
Diffstat (limited to 'lib/netstd')
-rw-r--r-- | lib/netstd/Tests/Thrift.Tests/Transports/THttpTransportTests.cs | 40 | ||||
-rw-r--r-- | lib/netstd/Thrift/Transport/Client/THttpTransport.cs | 18 |
2 files changed, 57 insertions, 1 deletions
diff --git a/lib/netstd/Tests/Thrift.Tests/Transports/THttpTransportTests.cs b/lib/netstd/Tests/Thrift.Tests/Transports/THttpTransportTests.cs new file mode 100644 index 000000000..2a2d88420 --- /dev/null +++ b/lib/netstd/Tests/Thrift.Tests/Transports/THttpTransportTests.cs @@ -0,0 +1,40 @@ +// Licensed to the Apache Software Foundation(ASF) under one +// or more contributor license agreements.See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership.The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +using System.Net.Http; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Thrift.Transport.Client; + +namespace Thrift.Tests.Transports +{ + [TestClass] + public class THttpTransportTests + { + [TestMethod] + public void THttpTransport_Uses_Configured_ConnectionTimeout_Test() + { + var client = new HttpClient(); + var httpClientTransport = new THttpTransport(client, null) + { + ConnectTimeout = 5000 + }; + + Assert.IsTrue(client.Timeout.TotalMilliseconds == 5000); + Assert.IsTrue(httpClientTransport.ConnectTimeout == 5000); + } + } +} diff --git a/lib/netstd/Thrift/Transport/Client/THttpTransport.cs b/lib/netstd/Thrift/Transport/Client/THttpTransport.cs index 51f91ce8a..4ca439e4f 100644 --- a/lib/netstd/Thrift/Transport/Client/THttpTransport.cs +++ b/lib/netstd/Thrift/Transport/Client/THttpTransport.cs @@ -36,7 +36,7 @@ namespace Thrift.Transport.Client private readonly X509Certificate[] _certificates; private readonly Uri _uri; - private readonly int _connectTimeout = 30000; // Timeouts in milliseconds + private int _connectTimeout = 30000; // Timeouts in milliseconds private HttpClient _httpClient; private Stream _inputStream; private MemoryStream _outputStream = new MemoryStream(); @@ -92,6 +92,22 @@ namespace Thrift.Transport.Client // According to RFC 2616 section 3.8, the "User-Agent" header may not carry a version number public readonly string UserAgent = "Thrift netstd THttpClient"; + public int ConnectTimeout + { + set + { + _connectTimeout = value; + if(_httpClient != null) + _httpClient.Timeout = TimeSpan.FromMilliseconds(_connectTimeout); + } + get + { + if (_httpClient == null) + return _connectTimeout; + return (int)_httpClient.Timeout.TotalMilliseconds; + } + } + public override bool IsOpen => true; public HttpRequestHeaders RequestHeaders => _httpClient.DefaultRequestHeaders; |