From 5e4d6cab00cb29cd088ab7b62ab13aff103b64cb Mon Sep 17 00:00:00 2001 From: onefang Date: Sun, 19 May 2019 21:24:15 +1000 Subject: Dump OpenSim 0.9.0.1 into it's own branch. --- .../Services/Connectors/Grid/GridServicesConnector.cs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'OpenSim/Services/Connectors/Grid') diff --git a/OpenSim/Services/Connectors/Grid/GridServicesConnector.cs b/OpenSim/Services/Connectors/Grid/GridServicesConnector.cs index 596f867..ded7806 100644 --- a/OpenSim/Services/Connectors/Grid/GridServicesConnector.cs +++ b/OpenSim/Services/Connectors/Grid/GridServicesConnector.cs @@ -49,6 +49,9 @@ namespace OpenSim.Services.Connectors private string m_ServerURI = String.Empty; + private ExpiringCache m_regionCache = + new ExpiringCache(); + public GridServicesConnector() { } @@ -275,6 +278,13 @@ namespace OpenSim.Services.Connectors public GridRegion GetRegionByPosition(UUID scopeID, int x, int y) { + GridRegion rinfo = null; + ulong regionHandle = Util.UIntsToLong((uint)x, (uint)y); + + // this cache includes NULL regions + if (m_regionCache.TryGetValue(regionHandle, out rinfo)) + return rinfo; + Dictionary sendData = new Dictionary(); sendData["SCOPEID"] = scopeID.ToString(); @@ -296,7 +306,6 @@ namespace OpenSim.Services.Connectors return null; } - GridRegion rinfo = null; if (reply != string.Empty) { Dictionary replyData = ServerUtils.ParseXmlResponse(reply); @@ -316,6 +325,8 @@ namespace OpenSim.Services.Connectors else m_log.DebugFormat("[GRID CONNECTOR]: GetRegionByPosition received null reply"); + m_regionCache.Add(regionHandle, rinfo, TimeSpan.FromSeconds(600)); + return rinfo; } @@ -672,7 +683,7 @@ namespace OpenSim.Services.Connectors return rinfos; } - + public int GetRegionFlags(UUID scopeID, UUID regionID) { Dictionary sendData = new Dictionary(); @@ -744,7 +755,7 @@ namespace OpenSim.Services.Connectors if (reply != string.Empty) { Dictionary replyData = ServerUtils.ParseXmlResponse(reply); - + if ((replyData != null) && replyData.Count > 0) { foreach (string key in replyData.Keys) -- cgit v1.1