diff options
author | teravus | 2013-10-09 22:21:25 -0500 |
---|---|---|
committer | teravus | 2013-10-09 22:21:25 -0500 |
commit | 75f63ecfcd885ae71bca130ee0db1ecc997b86cd (patch) | |
tree | d7eea5746c154ed8b6b6e9a4bd0c1b0ba98cc320 /OpenSim/Framework/Servers/HttpServer | |
parent | * Remove a test *cleanup* (diff) | |
download | opensim-SC-75f63ecfcd885ae71bca130ee0db1ecc997b86cd.zip opensim-SC-75f63ecfcd885ae71bca130ee0db1ecc997b86cd.tar.gz opensim-SC-75f63ecfcd885ae71bca130ee0db1ecc997b86cd.tar.bz2 opensim-SC-75f63ecfcd885ae71bca130ee0db1ecc997b86cd.tar.xz |
* Add a session concurrency option per key. Allows developer/config to specify number of concurrent requests on a service.
Diffstat (limited to 'OpenSim/Framework/Servers/HttpServer')
3 files changed, 21 insertions, 8 deletions
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseStreamHandlerBasicDOSProtector.cs b/OpenSim/Framework/Servers/HttpServer/BaseStreamHandlerBasicDOSProtector.cs index 9b8b8c2..1b88545 100644 --- a/OpenSim/Framework/Servers/HttpServer/BaseStreamHandlerBasicDOSProtector.cs +++ b/OpenSim/Framework/Servers/HttpServer/BaseStreamHandlerBasicDOSProtector.cs | |||
@@ -55,12 +55,14 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
55 | { | 55 | { |
56 | byte[] result; | 56 | byte[] result; |
57 | RequestsReceived++; | 57 | RequestsReceived++; |
58 | 58 | string clientstring = GetClientString(httpRequest); | |
59 | if (_dosProtector.Process(GetClientString(httpRequest), GetRemoteAddr(httpRequest))) | 59 | string endpoint = GetRemoteAddr(httpRequest); |
60 | if (_dosProtector.Process(clientstring, endpoint)) | ||
60 | result = ProcessRequest(path, request, httpRequest, httpResponse); | 61 | result = ProcessRequest(path, request, httpRequest, httpResponse); |
61 | else | 62 | else |
62 | result = ThrottledRequest(path, request, httpRequest, httpResponse); | 63 | result = ThrottledRequest(path, request, httpRequest, httpResponse); |
63 | 64 | if (_options.MaxConcurrentSessions > 0) | |
65 | _dosProtector.ProcessEnd(clientstring, endpoint); | ||
64 | 66 | ||
65 | RequestsHandled++; | 67 | RequestsHandled++; |
66 | 68 | ||
diff --git a/OpenSim/Framework/Servers/HttpServer/GenericHTTPBasicDOSProtector.cs b/OpenSim/Framework/Servers/HttpServer/GenericHTTPBasicDOSProtector.cs index 39c98b4..cd4b8ff 100644 --- a/OpenSim/Framework/Servers/HttpServer/GenericHTTPBasicDOSProtector.cs +++ b/OpenSim/Framework/Servers/HttpServer/GenericHTTPBasicDOSProtector.cs | |||
@@ -47,10 +47,18 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
47 | } | 47 | } |
48 | public Hashtable Process(Hashtable request) | 48 | public Hashtable Process(Hashtable request) |
49 | { | 49 | { |
50 | if (_dosProtector.Process(GetClientString(request), GetRemoteAddr(request))) | 50 | Hashtable process = null; |
51 | return _normalMethod(request); | 51 | string clientstring= GetClientString(request); |
52 | string endpoint = GetRemoteAddr(request); | ||
53 | if (_dosProtector.Process(clientstring, endpoint)) | ||
54 | process = _normalMethod(request); | ||
52 | else | 55 | else |
53 | return _throttledMethod(request); | 56 | process = _throttledMethod(request); |
57 | |||
58 | if (_options.MaxConcurrentSessions>0) | ||
59 | _dosProtector.ProcessEnd(clientstring, endpoint); | ||
60 | |||
61 | return process; | ||
54 | } | 62 | } |
55 | 63 | ||
56 | private string GetRemoteAddr(Hashtable request) | 64 | private string GetRemoteAddr(Hashtable request) |
diff --git a/OpenSim/Framework/Servers/HttpServer/XmlRpcBasicDOSProtector.cs b/OpenSim/Framework/Servers/HttpServer/XmlRpcBasicDOSProtector.cs index bc7efb6..f212208 100644 --- a/OpenSim/Framework/Servers/HttpServer/XmlRpcBasicDOSProtector.cs +++ b/OpenSim/Framework/Servers/HttpServer/XmlRpcBasicDOSProtector.cs | |||
@@ -53,11 +53,14 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
53 | { | 53 | { |
54 | 54 | ||
55 | XmlRpcResponse resp = null; | 55 | XmlRpcResponse resp = null; |
56 | if (_dosProtector.Process(GetClientString(request, client), GetEndPoint(request, client))) | 56 | string clientstring = GetClientString(request, client); |
57 | string endpoint = GetEndPoint(request, client); | ||
58 | if (_dosProtector.Process(clientstring, endpoint)) | ||
57 | resp = _normalMethod(request, client); | 59 | resp = _normalMethod(request, client); |
58 | else | 60 | else |
59 | resp = _throttledMethod(request, client); | 61 | resp = _throttledMethod(request, client); |
60 | 62 | if (_options.MaxConcurrentSessions > 0) | |
63 | _dosProtector.ProcessEnd(clientstring, endpoint); | ||
61 | return resp; | 64 | return resp; |
62 | } | 65 | } |
63 | 66 | ||