diff --git a/OpenSim/Framework/Servers/HttpServer/Interfaces/IOSHttpRequest.cs b/OpenSim/Framework/Servers/HttpServer/Interfaces/IOSHttpRequest.cs index 1f3bc516f6..875f04b353 100644 --- a/OpenSim/Framework/Servers/HttpServer/Interfaces/IOSHttpRequest.cs +++ b/OpenSim/Framework/Servers/HttpServer/Interfaces/IOSHttpRequest.cs @@ -51,7 +51,8 @@ namespace OpenSim.Framework.Servers.HttpServer bool IsSecured { get; } bool KeepAlive { get; } NameValueCollection QueryString { get; } - Dictionary Query { get; } + Hashtable Query { get; } + Dictionary QueryAsDictionary { get; } //faster than Query string RawUrl { get; } IPEndPoint RemoteIPEndPoint { get; } Uri Url { get; } diff --git a/OpenSim/Framework/Servers/HttpServer/OSHttpRequest.cs b/OpenSim/Framework/Servers/HttpServer/OSHttpRequest.cs index 284fee63d3..0da0577a4a 100644 --- a/OpenSim/Framework/Servers/HttpServer/OSHttpRequest.cs +++ b/OpenSim/Framework/Servers/HttpServer/OSHttpRequest.cs @@ -123,17 +123,28 @@ namespace OpenSim.Framework.Servers.HttpServer get { return _request.QueryString;} } - public Dictionary Query + private Hashtable _queryAsHashtable = null; + public Hashtable Query { get { - if (_queryKeyValues == null) - BuildQueryDictionary(); - return _queryKeyValues; + if (_queryAsHashtable == null) + BuildQueryHashtable(); + return _queryAsHashtable; } } - private Dictionary _queryKeyValues = null; + //faster than Query + private Dictionary _queryAsDictionay = null; + public Dictionary QueryAsDictionary + { + get + { + if (_queryAsDictionay == null) + BuildQueryDictionary(); + return _queryAsDictionay; + } + } /// /// POST request values, if applicable @@ -150,6 +161,11 @@ namespace OpenSim.Framework.Servers.HttpServer get { return _request.RemoteIPEndPoint; } } + public IPEndPoint LocalIPEndPoint + { + get { return _request.LocalIPEndPoint; } + } + public Uri Url { get { return _request.Uri; } @@ -216,19 +232,35 @@ namespace OpenSim.Framework.Servers.HttpServer private void BuildQueryDictionary() { NameValueCollection q = _request.QueryString; - _queryKeyValues = new Dictionary(); // only key value pairs + _queryAsDictionay = new Dictionary(); // only key value pairs for(int i = 0; i Query + public Hashtable Query { get { - throw new NotImplementedException (); + throw new NotImplementedException(); + } + } + + public Dictionary QueryAsDictionary + { + get + { + throw new NotImplementedException(); } }