diff --git a/OpenSim/Framework/Servers/HttpServer/OSHttpRequest.cs b/OpenSim/Framework/Servers/HttpServer/OSHttpRequest.cs index 49b728400a..de54dd5e03 100644 --- a/OpenSim/Framework/Servers/HttpServer/OSHttpRequest.cs +++ b/OpenSim/Framework/Servers/HttpServer/OSHttpRequest.cs @@ -33,84 +33,97 @@ using System.IO; using System.Net; using System.Reflection; using System.Text; -using System.Web; using OSHttpServer; using log4net; +using System.Runtime.CompilerServices; + namespace OpenSim.Framework.Servers.HttpServer { public class OSHttpRequest : IOSHttpRequest { - private static readonly ILog _log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + //private static readonly ILog _log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - protected IHttpRequest m_request = null; - protected IHttpClientContext m_context = null; + protected readonly IHttpRequest m_request = null; public string[] AcceptTypes { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return m_request.AcceptTypes; } } public Encoding ContentEncoding { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return m_contentEncoding; } } private Encoding m_contentEncoding; public long ContentLength { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return m_request.ContentLength; } } public long ContentLength64 { - get { return ContentLength; } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return m_request.ContentLength; } } public string ContentType { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return m_contentType; } } private string m_contentType; public bool HasEntityBody { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return m_request.ContentLength != 0; } } public NameValueCollection Headers { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return m_request.Headers; } } public string HttpMethod { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return m_request.Method; } } public Stream InputStream { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return m_request.Body; } } public bool IsSecured { - get { return m_context.IsSecured; } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return m_request.Context.IsSecured; } } public bool KeepAlive { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return ConnectionType.KeepAlive == m_request.Connection; } } public NameValueCollection QueryString { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return m_request.QueryString;} } private Hashtable m_queryAsHashtable = null; public Hashtable Query { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { if (m_queryAsHashtable == null) @@ -123,6 +136,7 @@ namespace OpenSim.Framework.Servers.HttpServer private Dictionary _queryAsDictionay = null; public Dictionary QueryAsDictionary { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { if (_queryAsDictionay == null) @@ -134,6 +148,7 @@ namespace OpenSim.Framework.Servers.HttpServer private HashSet m_queryFlags = null; public HashSet QueryFlags { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { if (m_queryFlags == null) @@ -148,48 +163,57 @@ namespace OpenSim.Framework.Servers.HttpServer public string RawUrl { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return m_request.Uri.AbsolutePath; } } public IPEndPoint RemoteIPEndPoint { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return m_request.RemoteIPEndPoint; } } public IPEndPoint LocalIPEndPoint { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return m_request.LocalIPEndPoint; } } public Uri Url { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return m_request.Uri; } } public string UriPath { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return m_request.UriPath; } } public string UserAgent { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return m_userAgent; } } private string m_userAgent; public double ArrivalTS { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return m_request.ArrivalTS;} } internal IHttpRequest IHttpRequest { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return m_request; } } internal IHttpClientContext IHttpClientContext { - get { return m_context; } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return m_request.Context; } } /// @@ -198,6 +222,7 @@ namespace OpenSim.Framework.Servers.HttpServer /// internal Dictionary Whiteboard { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return _whiteboard; } } private Dictionary _whiteboard = new Dictionary(); @@ -207,7 +232,6 @@ namespace OpenSim.Framework.Servers.HttpServer public OSHttpRequest(IHttpRequest req) { m_request = req; - m_context = req.Context; if (null != req.Headers["content-encoding"]) { @@ -226,12 +250,12 @@ namespace OpenSim.Framework.Servers.HttpServer if (null != req.Headers["user-agent"]) m_userAgent = req.Headers["user-agent"]; -// Form = new Hashtable(); -// foreach (HttpInputItem item in req.Form) -// { -// _log.DebugFormat("[OSHttpRequest]: Got form item {0}={1}", item.Name, item.Value); -// Form.Add(item.Name, item.Value); -// } + //Form = new Hashtable(); + //foreach (HttpInputItem item in req.Form) + //{ + // _log.DebugFormat("[OSHttpRequest]: Got form item {0}={1}", item.Name, item.Value); + // Form.Add(item.Name, item.Value); + //} } private void BuildQueryDictionary() @@ -275,14 +299,14 @@ namespace OpenSim.Framework.Servers.HttpServer public override string ToString() { StringBuilder me = new StringBuilder(); - me.Append(String.Format("OSHttpRequest: {0} {1}\n", HttpMethod, RawUrl)); + me.Append($"OSHttpRequest: {HttpMethod} {RawUrl}\n"); foreach (string k in Headers.AllKeys) { - me.Append(String.Format(" {0}: {1}\n", k, Headers[k])); + me.Append($" {k}: {Headers[k]}\n"); } if (null != RemoteIPEndPoint) { - me.Append(String.Format(" IP: {0}\n", RemoteIPEndPoint)); + me.Append($" IP: {RemoteIPEndPoint}\n"); } return me.ToString(); diff --git a/OpenSim/Framework/Servers/HttpServer/OSHttpResponse.cs b/OpenSim/Framework/Servers/HttpServer/OSHttpResponse.cs index 0015c10dc1..23dfb798ab 100644 --- a/OpenSim/Framework/Servers/HttpServer/OSHttpResponse.cs +++ b/OpenSim/Framework/Servers/HttpServer/OSHttpResponse.cs @@ -29,6 +29,7 @@ using System.IO; using System.Net; using System.Text; using OSHttpServer; +using System.Runtime.CompilerServices; namespace OpenSim.Framework.Servers.HttpServer { @@ -47,15 +48,11 @@ namespace OpenSim.Framework.Servers.HttpServer /// public virtual string ContentType { - get - { - return _httpResponse.ContentType; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return _httpResponse.ContentType; } - set - { - _httpResponse.ContentType = value; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set { _httpResponse.ContentType = value; } } /// @@ -77,15 +74,11 @@ namespace OpenSim.Framework.Servers.HttpServer /// public long ContentLength { - get - { - return _httpResponse.ContentLength; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return _httpResponse.ContentLength; } - set - { - _httpResponse.ContentLength = value; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set { _httpResponse.ContentLength = value; } } /// @@ -93,7 +86,10 @@ namespace OpenSim.Framework.Servers.HttpServer /// public long ContentLength64 { + [MethodImpl(MethodImplOptions.AggressiveInlining)] get { return ContentLength; } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] set { ContentLength = value; } } @@ -102,31 +98,20 @@ namespace OpenSim.Framework.Servers.HttpServer /// public Encoding ContentEncoding { - get - { - return _httpResponse.Encoding; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return _httpResponse.Encoding; } - set - { - _httpResponse.Encoding = value; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set { _httpResponse.Encoding = value; } } public bool KeepAlive { - get - { - return _httpResponse.Connection == ConnectionType.KeepAlive; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return _httpResponse.Connection == ConnectionType.KeepAlive; } - set - { - if (value) - _httpResponse.Connection = ConnectionType.KeepAlive; - else - _httpResponse.Connection = ConnectionType.Close; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set { _httpResponse.Connection = value ? ConnectionType.KeepAlive : ConnectionType.Close; } } /// @@ -136,11 +121,10 @@ namespace OpenSim.Framework.Servers.HttpServer /// public int KeepAliveTimeout { - get - { - return _httpResponse.KeepAlive; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return _httpResponse.KeepAlive; } + [MethodImpl(MethodImplOptions.AggressiveInlining)] set { if (value == 0) @@ -148,7 +132,6 @@ namespace OpenSim.Framework.Servers.HttpServer _httpResponse.Connection = ConnectionType.Close; _httpResponse.KeepAlive = 0; } - else { _httpResponse.Connection = ConnectionType.KeepAlive; @@ -165,23 +148,17 @@ namespace OpenSim.Framework.Servers.HttpServer /// public Stream OutputStream { - get - { - return _httpResponse.Body; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return _httpResponse.Body; } } public string ProtocolVersion { - get - { - return _httpResponse.ProtocolVersion; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return _httpResponse.ProtocolVersion; } - set - { - _httpResponse.ProtocolVersion = value; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set { _httpResponse.ProtocolVersion = value; } } /// @@ -189,58 +166,44 @@ namespace OpenSim.Framework.Servers.HttpServer /// public Stream Body { - get - { - return _httpResponse.Body; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return _httpResponse.Body; } } public byte[] RawBuffer { - get - { - return _httpResponse.RawBuffer; - } - set - { - _httpResponse.RawBuffer = value; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return _httpResponse.RawBuffer; } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set { _httpResponse.RawBuffer = value; } } public int RawBufferStart { - get - { - return _httpResponse.RawBufferStart; - } - set - { - _httpResponse.RawBufferStart = value; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return _httpResponse.RawBufferStart; } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set { _httpResponse.RawBufferStart = value; } } public int RawBufferLen { - get - { - return _httpResponse.RawBufferLen; - } - set - { - _httpResponse.RawBufferLen = value; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return _httpResponse.RawBufferLen; } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set { _httpResponse.RawBufferLen = value; } } public int Priority { - get - { - return _httpResponse.Priority; - } - set - { - _httpResponse.Priority = value; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return _httpResponse.Priority; } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set { _httpResponse.Priority = value; } } /// @@ -248,15 +211,11 @@ namespace OpenSim.Framework.Servers.HttpServer /// public bool SendChunked { - get - { - return _httpResponse.Chunked; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return _httpResponse.Chunked; } - set - { - _httpResponse.Chunked = value; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set { _httpResponse.Chunked = value; } } /// @@ -264,20 +223,17 @@ namespace OpenSim.Framework.Servers.HttpServer /// public virtual int StatusCode { - get - { - return (int)_httpResponse.Status; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return (int)_httpResponse.Status; } - set - { - _httpResponse.Status = (HttpStatusCode)value; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set { _httpResponse.Status = (HttpStatusCode)value; } } public double RequestTS { - get {return _httpResponse.RequestTS; } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return _httpResponse.RequestTS; } } /// @@ -285,18 +241,14 @@ namespace OpenSim.Framework.Servers.HttpServer /// public string StatusDescription { - get - { - return _httpResponse.Reason; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get { return _httpResponse.Reason; } - set - { - _httpResponse.Reason = value; - } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set { _httpResponse.Reason = value; } } - protected IHttpResponse _httpResponse; + protected readonly IHttpResponse _httpResponse; public OSHttpResponse() {} @@ -326,6 +278,7 @@ namespace OpenSim.Framework.Servers.HttpServer /// /// redirection target url /// the response Status, must be Found, Redirect, Moved,MovedPermanently,RedirectKeepVerb, RedirectMethod, TemporaryRedirect. Defaults to Redirect + [MethodImpl(MethodImplOptions.AggressiveInlining)] public void Redirect(string url, HttpStatusCode redirStatusCode = HttpStatusCode.Redirect) { _httpResponse.Redirect(url, redirStatusCode); @@ -338,6 +291,7 @@ namespace OpenSim.Framework.Servers.HttpServer /// name /// string containing the header field /// value + [MethodImpl(MethodImplOptions.AggressiveInlining)] public void AddHeader(string key, string value) { _httpResponse.AddHeader(key, value); @@ -346,6 +300,7 @@ namespace OpenSim.Framework.Servers.HttpServer /// /// Send the response back to the remote client /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] public void Send() { _httpResponse.Chunked = false; diff --git a/OpenSim/Region/ClientStack/Linden/Caps/ServerReleaseNotesModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/ServerReleaseNotesModule.cs index 4a92ae98ec..56e840b0e0 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/ServerReleaseNotesModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/ServerReleaseNotesModule.cs @@ -113,14 +113,10 @@ namespace OpenSim.Region.ClientStack.LindenCaps public void RegisterCaps(UUID agentID, Caps caps) { string capPath = "/" + UUID.Random(); - caps.RegisterSimpleHandler("ServerReleaseNotes", - new SimpleStreamHandler(capPath, delegate (IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) - { - ProcessServerReleaseNotes(httpResponse); - })); + caps.RegisterSimpleHandler("ServerReleaseNotes", new SimpleStreamHandler(capPath, ProcessServerReleaseNotes)); } - private void ProcessServerReleaseNotes(IOSHttpResponse httpResponse) + public void ProcessServerReleaseNotes(IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) { httpResponse.Redirect(m_ServerReleaseNotesURL); }