aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Servers/HttpServer
diff options
context:
space:
mode:
authorteravus2013-03-16 03:14:11 -0400
committerteravus2013-03-16 03:14:11 -0400
commit6e1b3f9951b5ae9fbc0dc65e8404cb878206c68d (patch)
tree7dd6383368b33d8e2c2f10ab13d00570eef7922a /OpenSim/Framework/Servers/HttpServer
parentFinally remove the 'REST' ApplicationPlugins code which has been non-function... (diff)
downloadopensim-SC-6e1b3f9951b5ae9fbc0dc65e8404cb878206c68d.zip
opensim-SC-6e1b3f9951b5ae9fbc0dc65e8404cb878206c68d.tar.gz
opensim-SC-6e1b3f9951b5ae9fbc0dc65e8404cb878206c68d.tar.bz2
opensim-SC-6e1b3f9951b5ae9fbc0dc65e8404cb878206c68d.tar.xz
*Yet another HTTPServer update code changes in OpenSim Libs. * This fixes a connection close issue by getting rid of the socket references * This adds a connection timeout checker to shutdown poor or evil connections and combats DOS attempts that just connect and make no complete requests and just wait. It also actually implements KeepAlive... instead of just understanding the connection header in the request... you can test by connecting and requesting a keepalive header and sending another request on the same connection. The new timeout checker closes expired keepalive sessions, just make sure you send the request within 70 seconds of connecting or the timeout checker will timeout the connection.
Diffstat (limited to 'OpenSim/Framework/Servers/HttpServer')
-rw-r--r--OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs17
1 files changed, 14 insertions, 3 deletions
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
index 58312ab..dfdd566 100644
--- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
+++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
@@ -486,7 +486,9 @@ namespace OpenSim.Framework.Servers.HttpServer
486 { 486 {
487 try 487 try
488 { 488 {
489 SendHTML500(response); 489 byte[] buffer500 = SendHTML500(response);
490 response.Body.Write(buffer500,0,buffer500.Length);
491 response.Body.Close();
490 } 492 }
491 catch 493 catch
492 { 494 {
@@ -719,7 +721,15 @@ namespace OpenSim.Framework.Servers.HttpServer
719 catch (Exception e) 721 catch (Exception e)
720 { 722 {
721 m_log.Error(String.Format("[BASE HTTP SERVER]: HandleRequest() threw {0} ", e.StackTrace), e); 723 m_log.Error(String.Format("[BASE HTTP SERVER]: HandleRequest() threw {0} ", e.StackTrace), e);
722 SendHTML500(response); 724 try
725 {
726 byte[] buffer500 = SendHTML500(response);
727 response.Body.Write(buffer500, 0, buffer500.Length);
728 response.Body.Close();
729 }
730 catch
731 {
732 }
723 } 733 }
724 finally 734 finally
725 { 735 {
@@ -1746,7 +1756,8 @@ namespace OpenSim.Framework.Servers.HttpServer
1746 response.SendChunked = false; 1756 response.SendChunked = false;
1747 response.ContentLength64 = buffer.Length; 1757 response.ContentLength64 = buffer.Length;
1748 response.ContentEncoding = Encoding.UTF8; 1758 response.ContentEncoding = Encoding.UTF8;
1749 1759
1760
1750 return buffer; 1761 return buffer;
1751 } 1762 }
1752 1763