diff options
Some additional protection, it seems that responsedata needs to be locked, but I can't immediately see where it's being accessed from another thread. For now, this will protect the server
Diffstat (limited to 'OpenSim/Framework/Servers/HttpServer')
-rw-r--r-- | OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs index 36c6c75..c12d666 100644 --- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs +++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | |||
@@ -1523,11 +1523,20 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
1523 | } | 1523 | } |
1524 | else | 1524 | else |
1525 | { | 1525 | { |
1526 | 1526 | try | |
1527 | //m_log.Info("[BASE HTTP SERVER]: Doing HTTP Grunt work with response"); | 1527 | { |
1528 | responsecode = (int)responsedata["int_response_code"]; | 1528 | //m_log.Info("[BASE HTTP SERVER]: Doing HTTP Grunt work with response"); |
1529 | responseString = (string)responsedata["str_response_string"]; | 1529 | responsecode = (int)responsedata["int_response_code"]; |
1530 | contentType = (string)responsedata["content_type"]; | 1530 | responseString = (string)responsedata["str_response_string"]; |
1531 | contentType = (string)responsedata["content_type"]; | ||
1532 | } | ||
1533 | catch | ||
1534 | { | ||
1535 | responsecode = 500; | ||
1536 | responseString = "No response could be obtained"; | ||
1537 | contentType = "text/plain"; | ||
1538 | responsedata = new Hashtable(); | ||
1539 | } | ||
1531 | } | 1540 | } |
1532 | 1541 | ||
1533 | if (responsedata.ContainsKey("error_status_text")) | 1542 | if (responsedata.ContainsKey("error_status_text")) |