diff options
author | teravus | 2013-03-16 03:14:11 -0400 |
---|---|---|
committer | teravus | 2013-03-16 03:14:11 -0400 |
commit | 6e1b3f9951b5ae9fbc0dc65e8404cb878206c68d (patch) | |
tree | 7dd6383368b33d8e2c2f10ab13d00570eef7922a /OpenSim/Framework/Servers | |
parent | Finally remove the 'REST' ApplicationPlugins code which has been non-function... (diff) | |
download | opensim-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')
-rw-r--r-- | OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | 17 |
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 | ||