From 00114d2e7759765dc93a675b302c7ff00acec0ed Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Thu, 27 Aug 2020 13:59:07 +0100 Subject: [PATCH] add a global expiring bad urls --- OpenSim/Framework/WebUtil.cs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/OpenSim/Framework/WebUtil.cs b/OpenSim/Framework/WebUtil.cs index 2d5bbf50e3..96855dcaed 100644 --- a/OpenSim/Framework/WebUtil.cs +++ b/OpenSim/Framework/WebUtil.cs @@ -44,6 +44,7 @@ using System.Xml.Linq; using log4net; using Nwc.XmlRpc; using OpenMetaverse.StructuredData; +using OpenSim.Framework; using OpenSim.Framework.ServiceAuth; namespace OpenSim.Framework @@ -51,10 +52,13 @@ namespace OpenSim.Framework /// /// Miscellaneous static methods and extension methods related to the web /// + /// + public static class WebUtil { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + public static ExpiringKey GlobalExpiringBadURLs = new ExpiringKey(30000); /// /// Control the printing of certain debug messages. /// @@ -221,11 +225,15 @@ namespace OpenSim.Framework // If there is some input, write it into the request if (data != null) { - string strBuffer = OSDParser.SerializeJsonString(data); + byte[] buffer; if (DebugLevel >= 5) + { + string strBuffer = OSDParser.SerializeJsonString(data); LogOutgoingDetail(method, reqnum, strBuffer); - - byte[] buffer = Util.UTF8Getbytes(strBuffer); + buffer = Util.UTF8Getbytes(strBuffer); + } + else + buffer = OSDParser.SerializeJsonToBytes(data); request.ContentType = rpc ? "application/json-rpc" : "application/json"; @@ -247,6 +255,7 @@ namespace OpenSim.Framework request.ContentLength = buffer.Length; //Count bytes to send using (Stream requestStream = request.GetRequestStream()) requestStream.Write(buffer, 0, buffer.Length); //Send it + buffer = null; } using (WebResponse response = request.GetResponse()) @@ -395,6 +404,7 @@ namespace OpenSim.Framework LogOutgoingDetail("SEND", reqnum, queryString); byte[] buffer = System.Text.Encoding.UTF8.GetBytes(queryString); + queryString = null; request.ContentLength = buffer.Length; sendlen = buffer.Length; @@ -995,6 +1005,7 @@ namespace OpenSim.Framework { using(Stream requestStream = request.GetRequestStream()) requestStream.Write(data, 0, sendlen); + data = null; } catch (Exception e) {