Merge branch 'master' into lotix

This commit is contained in:
2026-03-01 05:47:46 +01:00
3 changed files with 18 additions and 10 deletions

View File

@@ -286,7 +286,8 @@ namespace OpenSim.Framework
responseMessage = client.Send(request, HttpCompletionOption.ResponseHeadersRead); responseMessage = client.Send(request, HttpCompletionOption.ResponseHeadersRead);
responseMessage.EnsureSuccessStatusCode(); responseMessage.EnsureSuccessStatusCode();
Stream respStream = responseMessage.Content.ReadAsStream(); using CancellationTokenSource cts = new(30000);
using Stream respStream = responseMessage.Content.ReadAsStream(cts.Token);
int length = respStream.Read(_readbuf, 0, BufferSize); int length = respStream.Read(_readbuf, 0, BufferSize);
while (length > 0) while (length > 0)
{ {

View File

@@ -37,6 +37,7 @@ using System.Net.Security;
using System.Security.Cryptography.X509Certificates; using System.Security.Cryptography.X509Certificates;
using System.Reflection; using System.Reflection;
using System.Text; using System.Text;
using System.Threading;
using System.Web; using System.Web;
using System.Xml; using System.Xml;
using System.Xml.Serialization; using System.Xml.Serialization;
@@ -424,7 +425,8 @@ namespace OpenSim.Framework
responseMessage = client.Send(request, HttpCompletionOption.ResponseHeadersRead); responseMessage = client.Send(request, HttpCompletionOption.ResponseHeadersRead);
responseMessage.EnsureSuccessStatusCode(); responseMessage.EnsureSuccessStatusCode();
Stream resStream = responseMessage.Content.ReadAsStream(); using CancellationTokenSource cts = new(30000);
Stream resStream = responseMessage.Content.ReadAsStream(cts.Token);
if (resStream is not null) if (resStream is not null)
{ {
using StreamReader reader = new(resStream); using StreamReader reader = new(resStream);
@@ -589,7 +591,8 @@ namespace OpenSim.Framework
responseMessage = client.Send(request, HttpCompletionOption.ResponseHeadersRead); responseMessage = client.Send(request, HttpCompletionOption.ResponseHeadersRead);
responseMessage.EnsureSuccessStatusCode(); responseMessage.EnsureSuccessStatusCode();
using StreamReader reader = new(responseMessage.Content.ReadAsStream()); using CancellationTokenSource cts = new(30000);
using StreamReader reader = new(responseMessage.Content.ReadAsStream(cts.Token));
string responseStr = reader.ReadToEnd(); string responseStr = reader.ReadToEnd();
rcvlen = responseStr.Length; rcvlen = responseStr.Length;
if (DebugLevel >= 5) if (DebugLevel >= 5)
@@ -1160,7 +1163,7 @@ namespace OpenSim.Framework
auth?.AddAuthorization(request.Headers); auth?.AddAuthorization(request.Headers);
request.Headers.ExpectContinue = false; request.Headers.ExpectContinue = false;
request.Headers.TransferEncodingChunked = false; if (timeoutsecs > 0) request.Headers.TransferEncodingChunked = false;
if (keepalive) if (keepalive)
{ {
@@ -1191,7 +1194,8 @@ namespace OpenSim.Framework
if ((responseMessage.Content.Headers.ContentLength is long contentLength) && contentLength != 0) if ((responseMessage.Content.Headers.ContentLength is long contentLength) && contentLength != 0)
{ {
using StreamReader reader = new(responseMessage.Content.ReadAsStream()); using CancellationTokenSource cts = new(30000);
using StreamReader reader = new(responseMessage.Content.ReadAsStream(cts.Token));
respstring = reader.ReadToEnd(); respstring = reader.ReadToEnd();
rcvlen = respstring.Length; rcvlen = respstring.Length;
} }
@@ -1276,7 +1280,8 @@ namespace OpenSim.Framework
if ((responseMessage.Content.Headers.ContentLength is long contentLength) && contentLength != 0) if ((responseMessage.Content.Headers.ContentLength is long contentLength) && contentLength != 0)
{ {
using StreamReader reader = new(responseMessage.Content.ReadAsStream()); using CancellationTokenSource cts = new(30000);
using StreamReader reader = new(responseMessage.Content.ReadAsStream(cts.Token));
respstring = reader.ReadToEnd(); respstring = reader.ReadToEnd();
} }
} }
@@ -1426,7 +1431,8 @@ namespace OpenSim.Framework
if ((responseMessage.Content.Headers.ContentLength is long contentLength) && contentLength != 0) if ((responseMessage.Content.Headers.ContentLength is long contentLength) && contentLength != 0)
{ {
rcvlen = (int)contentLength; rcvlen = (int)contentLength;
using Stream respStream = responseMessage.Content.ReadAsStream(); using CancellationTokenSource cts = new(30000);
using Stream respStream = responseMessage.Content.ReadAsStream(cts.Token);
deserial = XMLResponseHelper.LogAndDeserialize<TResponse>( deserial = XMLResponseHelper.LogAndDeserialize<TResponse>(
reqnum, respStream, contentLength); reqnum, respStream, contentLength);
} }
@@ -1520,7 +1526,8 @@ namespace OpenSim.Framework
if ((responseMessage.Content.Headers.ContentLength is long contentLength) && contentLength != 0) if ((responseMessage.Content.Headers.ContentLength is long contentLength) && contentLength != 0)
{ {
rcvlen = (int)contentLength; rcvlen = (int)contentLength;
using Stream respStream = responseMessage.Content.ReadAsStream(); using CancellationTokenSource cts = new(30000);
using Stream respStream = responseMessage.Content.ReadAsStream(cts.Token);
deserial = XMLResponseHelper.LogAndDeserialize<TResponse>( deserial = XMLResponseHelper.LogAndDeserialize<TResponse>(
reqnum, respStream, contentLength); reqnum, respStream, contentLength);
} }

View File

@@ -644,8 +644,8 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
else else
len = -1; len = -1;
Stream resStream = responseMessage.Content.ReadAsStream(); using CancellationTokenSource cts = new(30000);
Stream resStream = responseMessage.Content.ReadAsStream(cts.Token);
if(resStream is not null) if(resStream is not null)
{ {
int maxBytes = (len < 0 || len > HttpBodyMaxLen) ? HttpBodyMaxLen : len; int maxBytes = (len < 0 || len > HttpBodyMaxLen) ? HttpBodyMaxLen : len;