cache bad folders requests for 30s. Suitcase can induce a ton of this, and viewers keep requesting

This commit is contained in:
UbitUmarov
2020-07-16 18:23:17 +01:00
parent 7a55f82f74
commit ce92ee1057
6 changed files with 82 additions and 23 deletions

View File

@@ -28,7 +28,9 @@
using Mono.Addins;
using Nini.Config;
using OpenMetaverse;
using OpenMetaverse.StructuredData;
using OpenSim.Capabilities.Handlers;
using OpenSim.Framework;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
@@ -53,6 +55,7 @@ namespace OpenSim.Region.ClientStack.Linden
private IInventoryService m_inventoryService = null;
private ILibraryService m_LibraryService = null;
private string m_fetchInventory2Url;
private ExpiringKey<UUID> m_badRequests;
#region ISharedRegionModule Members
@@ -83,6 +86,8 @@ namespace OpenSim.Region.ClientStack.Linden
{
m_inventoryService = null;
m_LibraryService = null;
m_badRequests.Dispose();
m_badRequests = null;
}
}
@@ -96,6 +101,9 @@ namespace OpenSim.Region.ClientStack.Linden
if(m_LibraryService == null)
m_LibraryService = s.LibraryService;
if(m_badRequests == null)
m_badRequests = new ExpiringKey<UUID>(30000);
if (m_inventoryService != null)
{
s.EventManager.OnRegisterCaps += RegisterCaps;
@@ -122,7 +130,11 @@ namespace OpenSim.Region.ClientStack.Linden
{
FetchInventory2Handler fetchHandler = new FetchInventory2Handler(m_inventoryService, agentID);
caps.RegisterSimpleHandler("FetchInventory2",
new SimpleOSDMapHandler("POST", "/" + UUID.Random(), fetchHandler.FetchInventorySimpleRequest));
new SimpleOSDMapHandler("POST", "/" + UUID.Random(), delegate (IOSHttpRequest httpRequest, IOSHttpResponse httpResponse, OSDMap map)
{
fetchHandler.FetchInventorySimpleRequest(httpRequest, httpResponse, map, m_badRequests);
}
));
}
else
{