From 134f86e8d5c414409631b25b8c6f0ee45fbd8631 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Thu, 3 Nov 2016 21:44:39 +1000
Subject: Initial update to OpenSim 0.8.2.1 source code.
---
.../Communications/Limit/IRequestLimitStrategy.cs | 66 ----------
.../Communications/Limit/NullLimitStrategy.cs | 40 ------
.../Communications/Limit/RepeatLimitStrategy.cs | 109 ----------------
.../Communications/Limit/TimeLimitStrategy.cs | 140 ---------------------
4 files changed, 355 deletions(-)
delete mode 100644 OpenSim/Framework/Communications/Limit/IRequestLimitStrategy.cs
delete mode 100644 OpenSim/Framework/Communications/Limit/NullLimitStrategy.cs
delete mode 100644 OpenSim/Framework/Communications/Limit/RepeatLimitStrategy.cs
delete mode 100644 OpenSim/Framework/Communications/Limit/TimeLimitStrategy.cs
(limited to 'OpenSim/Framework/Communications/Limit')
diff --git a/OpenSim/Framework/Communications/Limit/IRequestLimitStrategy.cs b/OpenSim/Framework/Communications/Limit/IRequestLimitStrategy.cs
deleted file mode 100644
index 070d106..0000000
--- a/OpenSim/Framework/Communications/Limit/IRequestLimitStrategy.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-namespace OpenSim.Framework.Communications.Limit
-{
- ///
- /// Interface for strategies that can limit requests from the client. Currently only used in the
- /// texture modules to deal with repeated requests for certain textures. However, limiting strategies
- /// could be used with other requests.
- ///
- public interface IRequestLimitStrategy
- {
- ///
- /// Should the request be allowed? If the id is not monitored, then the request is always allowed.
- /// Otherwise, the strategy criteria will be applied.
- ///
- ///
- ///
- bool AllowRequest(TId id);
-
- ///
- /// Has the request been refused just once?
- ///
- /// False if the request has not yet been refused, or if the request has been refused more
- /// than once.
- bool IsFirstRefusal(TId id);
-
- ///
- /// Start monitoring for future AllowRequest calls. If the id is already monitored, then monitoring
- /// continues.
- ///
- ///
- void MonitorRequests(TId id);
-
- ///
- /// Is the id being monitored?
- ///
- ///
- ///
- bool IsMonitoringRequests(TId id);
- }
-}
diff --git a/OpenSim/Framework/Communications/Limit/NullLimitStrategy.cs b/OpenSim/Framework/Communications/Limit/NullLimitStrategy.cs
deleted file mode 100644
index 7672653..0000000
--- a/OpenSim/Framework/Communications/Limit/NullLimitStrategy.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-namespace OpenSim.Framework.Communications.Limit
-{
- ///
- /// Strategy which polices no limits
- ///
- public class NullLimitStrategy : IRequestLimitStrategy
- {
- public bool AllowRequest(TId id) { return true; }
- public bool IsFirstRefusal(TId id) { return false; }
- public void MonitorRequests(TId id) { /* intentionally blank */ }
- public bool IsMonitoringRequests(TId id) { return false; }
- }
-}
diff --git a/OpenSim/Framework/Communications/Limit/RepeatLimitStrategy.cs b/OpenSim/Framework/Communications/Limit/RepeatLimitStrategy.cs
deleted file mode 100644
index 44dd592..0000000
--- a/OpenSim/Framework/Communications/Limit/RepeatLimitStrategy.cs
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System.Collections.Generic;
-
-namespace OpenSim.Framework.Communications.Limit
-{
- ///
- /// Limit requests by discarding them after they've been repeated a certain number of times.
- ///
- public class RepeatLimitStrategy : IRequestLimitStrategy
- {
- ///
- /// Record each asset request that we're notified about.
- ///
- private readonly Dictionary requestCounts = new Dictionary();
-
- ///
- /// The maximum number of requests that can be made before we drop subsequent requests.
- ///
- private readonly int m_maxRequests;
- public int MaxRequests
- {
- get { return m_maxRequests; }
- }
-
- ///
- /// The maximum number of requests that may be served before all further
- /// requests are dropped.
- public RepeatLimitStrategy(int maxRequests)
- {
- m_maxRequests = maxRequests;
- }
-
- ///
- ///
- ///
- public bool AllowRequest(TId id)
- {
- if (requestCounts.ContainsKey(id))
- {
- requestCounts[id] += 1;
-
- if (requestCounts[id] > m_maxRequests)
- {
- return false;
- }
- }
-
- return true;
- }
-
- ///
- ///
- ///
- public bool IsFirstRefusal(TId id)
- {
- if (requestCounts.ContainsKey(id) && m_maxRequests + 1 == requestCounts[id])
- {
- return true;
- }
-
- return false;
- }
-
- ///
- ///
- ///
- public void MonitorRequests(TId id)
- {
- if (!IsMonitoringRequests(id))
- {
- requestCounts.Add(id, 1);
- }
- }
-
- ///
- ///
- ///
- public bool IsMonitoringRequests(TId id)
- {
- return requestCounts.ContainsKey(id);
- }
- }
-}
diff --git a/OpenSim/Framework/Communications/Limit/TimeLimitStrategy.cs b/OpenSim/Framework/Communications/Limit/TimeLimitStrategy.cs
deleted file mode 100644
index 7ac8293..0000000
--- a/OpenSim/Framework/Communications/Limit/TimeLimitStrategy.cs
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-
-namespace OpenSim.Framework.Communications.Limit
-{
- ///
- /// Limit requests by discarding repeat attempts that occur within a given time period
- ///
- /// XXX Don't use this for limiting texture downloading, at least not until we better handle multiple requests
- /// for the same texture at different resolutions.
- ///
- public class TimeLimitStrategy : IRequestLimitStrategy
- {
- ///
- /// Record the time at which an asset request occurs.
- ///
- private readonly Dictionary requests = new Dictionary();
-
- ///
- /// The minimum time period between which requests for the same data will be serviced.
- ///
- private readonly TimeSpan m_repeatPeriod;
- public TimeSpan RepeatPeriod
- {
- get { return m_repeatPeriod; }
- }
-
- ///
- ///
- public TimeLimitStrategy(TimeSpan repeatPeriod)
- {
- m_repeatPeriod = repeatPeriod;
- }
-
- ///
- ///
- ///
- public bool AllowRequest(TId id)
- {
- if (IsMonitoringRequests(id))
- {
- DateTime now = DateTime.Now;
- TimeSpan elapsed = now - requests[id].Time;
-
- if (elapsed < RepeatPeriod)
- {
- requests[id].Refusals += 1;
- return false;
- }
-
- requests[id].Time = now;
- }
-
- return true;
- }
-
- ///
- ///
- ///
- public bool IsFirstRefusal(TId id)
- {
- if (IsMonitoringRequests(id))
- {
- if (1 == requests[id].Refusals)
- {
- return true;
- }
- }
-
- return false;
- }
-
- ///
- ///
- ///
- public void MonitorRequests(TId id)
- {
- if (!IsMonitoringRequests(id))
- {
- requests.Add(id, new Request(DateTime.Now));
- }
- }
-
- ///
- ///
- ///
- public bool IsMonitoringRequests(TId id)
- {
- return requests.ContainsKey(id);
- }
- }
-
- ///
- /// Private request details.
- ///
- class Request
- {
- ///
- /// Time of last request
- ///
- public DateTime Time;
-
- ///
- /// Number of refusals associated with this request
- ///
- public int Refusals;
-
- public Request(DateTime time)
- {
- Time = time;
- }
- }
-}
--
cgit v1.1