* Add a session concurrency option per key. Allows developer/config to specify number of concurrent requests on a service.

This commit is contained in:
teravus
2013-10-09 22:21:25 -05:00
parent e7ea053c4a
commit 75f63ecfcd
4 changed files with 102 additions and 23 deletions

View File

@@ -47,10 +47,18 @@ namespace OpenSim.Framework.Servers.HttpServer
}
public Hashtable Process(Hashtable request)
{
if (_dosProtector.Process(GetClientString(request), GetRemoteAddr(request)))
return _normalMethod(request);
Hashtable process = null;
string clientstring= GetClientString(request);
string endpoint = GetRemoteAddr(request);
if (_dosProtector.Process(clientstring, endpoint))
process = _normalMethod(request);
else
return _throttledMethod(request);
process = _throttledMethod(request);
if (_options.MaxConcurrentSessions>0)
_dosProtector.ProcessEnd(clientstring, endpoint);
return process;
}
private string GetRemoteAddr(Hashtable request)