aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorTom2011-01-29 12:45:53 -0800
committerTom2011-01-29 12:45:53 -0800
commit188bdfc87860dbd5d6d616337c203c55c7a0b80a (patch)
treed77f485029267ba4e5922fa4991ba096624eb0bc /OpenSim
parentSignificantly increase the total number of URL's available. In second life, ... (diff)
downloadopensim-SC_OLD-188bdfc87860dbd5d6d616337c203c55c7a0b80a.zip
opensim-SC_OLD-188bdfc87860dbd5d6d616337c203c55c7a0b80a.tar.gz
opensim-SC_OLD-188bdfc87860dbd5d6d616337c203c55c7a0b80a.tar.bz2
opensim-SC_OLD-188bdfc87860dbd5d6d616337c203c55c7a0b80a.tar.xz
Ignore duplicate llHTTPResponse calls to the same request. Prevents response corruption. Only the first llHTTPResponse call is obeyed, akin to SL.
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs13
1 files changed, 9 insertions, 4 deletions
diff --git a/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs b/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs
index b83eb90..4851b33 100644
--- a/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs
+++ b/OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs
@@ -48,6 +48,7 @@ namespace OpenSim.Region.CoreModules.Scripting.LSLHttp
48 public string url; 48 public string url;
49 public UUID urlcode; 49 public UUID urlcode;
50 public Dictionary<UUID, RequestData> requests; 50 public Dictionary<UUID, RequestData> requests;
51 public bool responseSent;
51 } 52 }
52 53
53 public class RequestData 54 public class RequestData
@@ -199,10 +200,14 @@ namespace OpenSim.Region.CoreModules.Scripting.LSLHttp
199 if (m_RequestMap.ContainsKey(request)) 200 if (m_RequestMap.ContainsKey(request))
200 { 201 {
201 UrlData urlData = m_RequestMap[request]; 202 UrlData urlData = m_RequestMap[request];
202 urlData.requests[request].responseCode = status; 203 if (!urlData.responseSent)
203 urlData.requests[request].responseBody = body; 204 {
204 //urlData.requests[request].ev.Set(); 205 urlData.requests[request].responseCode = status;
205 urlData.requests[request].requestDone =true; 206 urlData.requests[request].responseBody = body;
207 //urlData.requests[request].ev.Set();
208 urlData.requests[request].requestDone = true;
209 urlData.responseSent = true;
210 }
206 } 211 }
207 else 212 else
208 { 213 {