diff options
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/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs | 13 |
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 | { |