From 05d72f77ff38585817dead9b4a812ff97a001dce Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Tue, 18 Aug 2015 21:32:03 +0100 Subject: [PATCH] do keepalive on mesh and texture GET. Dont use reusecontext any where. setting of keepalive is wrong, it should follow the requested one ( or always as http1.1) only deny if needed (errors). KeepAlive may increase stress on number of avaiable file descritors. --- .../Capabilities/Handlers/GetMesh/GetMeshHandler.cs | 12 ++++++------ .../Handlers/GetTexture/GetTextureHandler.cs | 4 ++-- .../Framework/Servers/HttpServer/BaseHttpServer.cs | 2 +- .../Region/ClientStack/Linden/Caps/GetMeshModule.cs | 4 ++-- .../ClientStack/Linden/Caps/GetTextureModule.cs | 6 +++--- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/OpenSim/Capabilities/Handlers/GetMesh/GetMeshHandler.cs b/OpenSim/Capabilities/Handlers/GetMesh/GetMeshHandler.cs index ec574a3e62..ae1aed7fd7 100644 --- a/OpenSim/Capabilities/Handlers/GetMesh/GetMeshHandler.cs +++ b/OpenSim/Capabilities/Handlers/GetMesh/GetMeshHandler.cs @@ -61,7 +61,7 @@ namespace OpenSim.Capabilities.Handlers Hashtable ret = new Hashtable(); ret["int_response_code"] = (int)System.Net.HttpStatusCode.NotFound; ret["content_type"] = "text/plain"; - ret["keepalive"] = false; + ret["keepalive"] = true; ret["reusecontext"] = false; ret["int_bytes"] = 0; ret["int_lod"] = 0; @@ -98,7 +98,7 @@ namespace OpenSim.Capabilities.Handlers Hashtable responsedata = new Hashtable(); responsedata["int_response_code"] = 400; //501; //410; //404; responsedata["content_type"] = "text/plain"; - responsedata["keepalive"] = false; + responsedata["keepalive"] = true; responsedata["str_response_string"] = "Request wasn't what was expected"; responsedata["reusecontext"] = false; responsedata["int_lod"] = 0; @@ -116,7 +116,7 @@ namespace OpenSim.Capabilities.Handlers { responsedata["int_response_code"] = 404; //501; //410; //404; responsedata["content_type"] = "text/plain"; - responsedata["keepalive"] = false; + responsedata["keepalive"] = true; responsedata["str_response_string"] = "The asset service is unavailable. So is your mesh."; responsedata["reusecontext"] = false; return responsedata; @@ -152,7 +152,7 @@ namespace OpenSim.Capabilities.Handlers { responsedata["int_response_code"] = 404; //501; //410; //404; responsedata["content_type"] = "text/plain"; - responsedata["keepalive"] = false; + responsedata["keepalive"] = true; responsedata["str_response_string"] = "This range doesnt exist."; responsedata["reusecontext"] = false; responsedata["int_lod"] = 3; @@ -228,7 +228,7 @@ namespace OpenSim.Capabilities.Handlers { responsedata["int_response_code"] = 404; //501; //410; //404; responsedata["content_type"] = "text/plain"; - responsedata["keepalive"] = false; + responsedata["keepalive"] = true; responsedata["str_response_string"] = "Unfortunately, this asset isn't a mesh."; responsedata["reusecontext"] = false; responsedata["int_lod"] = 1; @@ -239,7 +239,7 @@ namespace OpenSim.Capabilities.Handlers { responsedata["int_response_code"] = 404; //501; //410; //404; responsedata["content_type"] = "text/plain"; - responsedata["keepalive"] = false; + responsedata["keepalive"] = true; responsedata["str_response_string"] = "Your Mesh wasn't found. Sorry!"; responsedata["reusecontext"] = false; responsedata["int_lod"] = 0; diff --git a/OpenSim/Capabilities/Handlers/GetTexture/GetTextureHandler.cs b/OpenSim/Capabilities/Handlers/GetTexture/GetTextureHandler.cs index f3efb53891..0e0cb391e4 100644 --- a/OpenSim/Capabilities/Handlers/GetTexture/GetTextureHandler.cs +++ b/OpenSim/Capabilities/Handlers/GetTexture/GetTextureHandler.cs @@ -66,7 +66,7 @@ namespace OpenSim.Capabilities.Handlers Hashtable ret = new Hashtable(); ret["int_response_code"] = (int)System.Net.HttpStatusCode.NotFound; ret["content_type"] = "text/plain"; - ret["keepalive"] = false; + ret["keepalive"] = true; ret["reusecontext"] = false; ret["int_bytes"] = 0; string textureStr = (string)request["texture_id"]; @@ -112,7 +112,7 @@ namespace OpenSim.Capabilities.Handlers ret["error_status_text"] = "not found"; ret["str_response_string"] = "not found"; ret["content_type"] = "text/plain"; - ret["keepalive"] = false; + ret["keepalive"] = true; ret["reusecontext"] = false; ret["int_bytes"] = 0; } diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs index 799ab808bf..1363eabd55 100644 --- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs +++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs @@ -459,7 +459,7 @@ namespace OpenSim.Framework.Servers.HttpServer } OSHttpResponse resp = new OSHttpResponse(new HttpResponse(context, request),context); - resp.ReuseContext = true; + resp.ReuseContext = false; HandleRequest(req, resp); // !!!HACK ALERT!!! diff --git a/OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs index a381a1bf01..4c15ad887e 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs @@ -264,7 +264,7 @@ namespace OpenSim.Region.ClientStack.Linden response["int_response_code"] = 500; response["str_response_string"] = "Script timeout"; response["content_type"] = "text/plain"; - response["keepalive"] = false; + response["keepalive"] = true; response["reusecontext"] = false; return response; @@ -285,7 +285,7 @@ namespace OpenSim.Region.ClientStack.Linden response["int_response_code"] = 500; response["str_response_string"] = "Script timeout"; response["content_type"] = "text/plain"; - response["keepalive"] = false; + response["keepalive"] = true; response["reusecontext"] = false; lock (responses) diff --git a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs index e053054aa2..656f1774bd 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs @@ -283,7 +283,7 @@ namespace OpenSim.Region.ClientStack.Linden response["int_response_code"] = 500; response["str_response_string"] = "Script timeout"; response["content_type"] = "text/plain"; - response["keepalive"] = false; + response["keepalive"] = true; response["reusecontext"] = false; return response; @@ -303,7 +303,7 @@ namespace OpenSim.Region.ClientStack.Linden response["int_response_code"] = 503; response["str_response_string"] = "Throttled"; response["content_type"] = "text/plain"; - response["keepalive"] = false; + response["keepalive"] = true; response["reusecontext"] = false; lock (responses) @@ -320,7 +320,7 @@ namespace OpenSim.Region.ClientStack.Linden response["int_response_code"] = 500; response["str_response_string"] = "Script timeout"; response["content_type"] = "text/plain"; - response["keepalive"] = false; + response["keepalive"] = true; response["reusecontext"] = false; lock (responses)