mirror of
https://github.com/opensim/opensim.git
synced 2026-08-12 04:05:42 +08:00
change share of almost empty class httpclient, to just share of used SocketsHttpHandler, This simpifies handling of timeout, otherwise problematic
This commit is contained in:
@@ -42,6 +42,7 @@ using Nwc.XmlRpc;
|
||||
using log4net;
|
||||
|
||||
using OpenSim.Services.Connectors.Simulation;
|
||||
using System.Net.Http;
|
||||
|
||||
namespace OpenSim.Services.Connectors.Hypergrid
|
||||
{
|
||||
@@ -94,7 +95,8 @@ namespace OpenSim.Services.Connectors.Hypergrid
|
||||
XmlRpcResponse response = null;
|
||||
try
|
||||
{
|
||||
response = request.Send(info.ServerURI, WebUtil.SharedHttpClientWithRedir, 10000);
|
||||
using HttpClient hclient = WebUtil.GetNewGlobalHttpClient(10000);
|
||||
response = request.Send(info.ServerURI, hclient);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@@ -230,7 +232,8 @@ namespace OpenSim.Services.Connectors.Hypergrid
|
||||
XmlRpcResponse response = null;
|
||||
try
|
||||
{
|
||||
response = request.Send(gatekeeper.ServerURI, WebUtil.SharedHttpClientWithRedir, 10000);
|
||||
using HttpClient hclient = WebUtil.GetNewGlobalHttpClient(10000);
|
||||
response = request.Send(gatekeeper.ServerURI, hclient);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
@@ -41,6 +41,7 @@ using OpenMetaverse.StructuredData;
|
||||
using log4net;
|
||||
using Nwc.XmlRpc;
|
||||
using Nini.Config;
|
||||
using System.Net.Http;
|
||||
|
||||
namespace OpenSim.Services.Connectors.Hypergrid
|
||||
{
|
||||
@@ -162,7 +163,8 @@ namespace OpenSim.Services.Connectors.Hypergrid
|
||||
XmlRpcResponse response = null;
|
||||
try
|
||||
{
|
||||
response = request.Send(m_ServerURL, WebUtil.SharedHttpClientWithRedir, 10000);
|
||||
using HttpClient hclient = WebUtil.GetNewGlobalHttpClient(10000);
|
||||
response = request.Send(m_ServerURL, hclient);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@@ -336,7 +338,8 @@ namespace OpenSim.Services.Connectors.Hypergrid
|
||||
XmlRpcResponse response = null;
|
||||
try
|
||||
{
|
||||
response = request.Send(m_ServerURL, WebUtil.SharedHttpClientWithRedir, 6000);
|
||||
using HttpClient hclient = WebUtil.GetNewGlobalHttpClient(10000);
|
||||
response = request.Send(m_ServerURL, hclient);
|
||||
}
|
||||
catch
|
||||
{
|
||||
@@ -408,7 +411,8 @@ namespace OpenSim.Services.Connectors.Hypergrid
|
||||
XmlRpcResponse response = null;
|
||||
try
|
||||
{
|
||||
response = request.Send(m_ServerURL, WebUtil.SharedHttpClientWithRedir, 10000);
|
||||
using HttpClient hclient = WebUtil.GetNewGlobalHttpClient(10000);
|
||||
response = request.Send(m_ServerURL, hclient);
|
||||
}
|
||||
catch
|
||||
{
|
||||
@@ -558,7 +562,8 @@ namespace OpenSim.Services.Connectors.Hypergrid
|
||||
XmlRpcResponse response = null;
|
||||
try
|
||||
{
|
||||
response = request.Send(m_ServerURL, WebUtil.SharedHttpClientWithRedir, 10000);
|
||||
using HttpClient hclient = WebUtil.GetNewGlobalHttpClient(10000);
|
||||
response = request.Send(m_ServerURL, hclient);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
@@ -35,6 +35,7 @@ using Nwc.XmlRpc;
|
||||
using log4net;
|
||||
|
||||
using OpenSim.Framework;
|
||||
using System.Net.Http;
|
||||
|
||||
namespace OpenSim.Services.Connectors.InstantMessage
|
||||
{
|
||||
@@ -60,8 +61,8 @@ namespace OpenSim.Services.Connectors.InstantMessage
|
||||
XmlRpcRequest GridReq = new XmlRpcRequest("grid_instant_message", SendParams);
|
||||
try
|
||||
{
|
||||
|
||||
XmlRpcResponse GridResp = GridReq.Send(url, WebUtil.SharedHttpClientWithRedir, 10000);
|
||||
using HttpClient hclient = WebUtil.GetNewGlobalHttpClient(10000);
|
||||
XmlRpcResponse GridResp = GridReq.Send(url, hclient);
|
||||
|
||||
Hashtable responseData = (Hashtable)GridResp.Value;
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ namespace OpenSim.Services.Connectors
|
||||
/// <remarks>
|
||||
/// In this case, -1 is default timeout (100 seconds), not infinite.
|
||||
/// </remarks>
|
||||
private int m_requestTimeoutSecs = -1;
|
||||
private int m_requestTimeout = -1;
|
||||
private readonly string m_configName = "InventoryService";
|
||||
|
||||
private const double CACHE_EXPIRATION_SECONDS = 30.0;
|
||||
@@ -114,7 +114,7 @@ namespace OpenSim.Services.Connectors
|
||||
else
|
||||
m_InventoryURL = serviceURI + "/xinventory";
|
||||
|
||||
m_requestTimeoutSecs = config.GetInt("RemoteRequestTimeout", m_requestTimeoutSecs);
|
||||
m_requestTimeout = 1000 * config.GetInt("RemoteRequestTimeout", -1);
|
||||
|
||||
StatsManager.RegisterStat(
|
||||
new Stat(
|
||||
@@ -761,10 +761,10 @@ namespace OpenSim.Services.Connectors
|
||||
int rcvlen = 0;
|
||||
HttpResponseMessage responseMessage = null;
|
||||
HttpRequestMessage request = null;
|
||||
CancellationTokenSource cancellationToken = null;
|
||||
HttpClient client = null;
|
||||
try
|
||||
{
|
||||
HttpClient client = WebUtil.SharedHttpClientWithRedir;
|
||||
client = WebUtil.GetNewGlobalHttpClient(m_requestTimeout);
|
||||
|
||||
request = new(HttpMethod.Post, m_InventoryURL);
|
||||
|
||||
@@ -782,9 +782,6 @@ namespace OpenSim.Services.Connectors
|
||||
request.Headers.ExpectContinue = false;
|
||||
request.Headers.TransferEncodingChunked = false;
|
||||
|
||||
if (m_requestTimeoutSecs > 0)
|
||||
cancellationToken = new CancellationTokenSource(TimeSpan.FromSeconds(m_requestTimeoutSecs));
|
||||
|
||||
byte[] data = Util.UTF8NBGetbytes(obj);
|
||||
sendlen = data.Length;
|
||||
|
||||
@@ -792,10 +789,7 @@ namespace OpenSim.Services.Connectors
|
||||
request.Content.Headers.TryAddWithoutValidation("Content-Type", "application/x-www-form-urlencoded");
|
||||
request.Content.Headers.TryAddWithoutValidation("Content-Length", sendlen.ToString());
|
||||
|
||||
if (cancellationToken is null)
|
||||
responseMessage = client.Send(request, HttpCompletionOption.ResponseHeadersRead);
|
||||
else
|
||||
responseMessage = client.Send(request, HttpCompletionOption.ResponseHeadersRead, cancellationToken.Token);
|
||||
responseMessage = client.Send(request, HttpCompletionOption.ResponseHeadersRead);
|
||||
responseMessage.EnsureSuccessStatusCode();
|
||||
|
||||
if ((responseMessage.Content.Headers.ContentLength is long contentLength) && contentLength != 0)
|
||||
@@ -813,7 +807,7 @@ namespace OpenSim.Services.Connectors
|
||||
{
|
||||
request?.Dispose();
|
||||
responseMessage?.Dispose();
|
||||
cancellationToken?.Dispose();
|
||||
client?.Dispose();
|
||||
}
|
||||
|
||||
ticks = Util.EnvironmentTickCountSubtract(ticks);
|
||||
|
||||
@@ -38,6 +38,7 @@ using OpenSim.Services.Interfaces;
|
||||
using OpenMetaverse;
|
||||
using Nwc.XmlRpc;
|
||||
using GridRegion = OpenSim.Services.Interfaces.GridRegion;
|
||||
using System.Net.Http;
|
||||
|
||||
namespace OpenSim.Services.Connectors
|
||||
{
|
||||
@@ -92,7 +93,8 @@ namespace OpenSim.Services.Connectors
|
||||
paramList.Add(hash);
|
||||
|
||||
XmlRpcRequest request = new XmlRpcRequest("land_data", paramList);
|
||||
XmlRpcResponse response = request.Send(info.ServerURI, WebUtil.SharedHttpClientWithRedir, 10000);
|
||||
using HttpClient hclient = WebUtil.GetNewGlobalHttpClient(10000);
|
||||
XmlRpcResponse response = request.Send(info.ServerURI, hclient);
|
||||
if (response.IsFault)
|
||||
{
|
||||
m_log.ErrorFormat("[LAND CONNECTOR]: remote call returned an error: {0}", response.FaultString);
|
||||
|
||||
@@ -108,10 +108,10 @@ namespace OpenSim.Services.Connectors
|
||||
|
||||
HttpResponseMessage responseMessage = null;
|
||||
HttpRequestMessage request = null;
|
||||
CancellationTokenSource cancellationToken = null;
|
||||
HttpClient client = null;
|
||||
try
|
||||
{
|
||||
HttpClient client = WebUtil.SharedHttpClientWithRedir;
|
||||
client = WebUtil.GetNewGlobalHttpClient(10000);
|
||||
request = new(HttpMethod.Post, uri);
|
||||
request.Headers.ExpectContinue = false;
|
||||
request.Headers.TransferEncodingChunked = false;
|
||||
@@ -127,10 +127,9 @@ namespace OpenSim.Services.Connectors
|
||||
request.Content.Headers.TryAddWithoutValidation("Content-Type", "application/json");
|
||||
request.Content.Headers.TryAddWithoutValidation("Content-Length", buffer.Length.ToString());
|
||||
|
||||
cancellationToken = new CancellationTokenSource(TimeSpan.FromSeconds(10));
|
||||
//m_log.InfoFormat("[REST COMMS]: Posted HelloNeighbour request to remote sim {0}", uri);
|
||||
|
||||
responseMessage = client.Send(request, HttpCompletionOption.ResponseContentRead, cancellationToken.Token);
|
||||
responseMessage = client.Send(request, HttpCompletionOption.ResponseContentRead);
|
||||
responseMessage.EnsureSuccessStatusCode();
|
||||
|
||||
//using StreamReader sr = new(responseMessage.Content.ReadAsStream());
|
||||
@@ -149,7 +148,7 @@ namespace OpenSim.Services.Connectors
|
||||
{
|
||||
request?.Dispose();
|
||||
responseMessage?.Dispose();
|
||||
cancellationToken?.Dispose();
|
||||
client?.Dispose();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user