From 50b81258a96640393fcda6833805a09cee8f2e5f Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Tue, 21 Apr 2020 00:19:19 +0100 Subject: [PATCH] change event pool timeout handling --- .../Servers/HttpServer/PollServiceHttpRequest.cs | 4 ++++ .../Linden/Caps/EventQueue/EventQueueGetModule.cs | 14 +++----------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/OpenSim/Framework/Servers/HttpServer/PollServiceHttpRequest.cs b/OpenSim/Framework/Servers/HttpServer/PollServiceHttpRequest.cs index e64bddb0a7..6718e7a43a 100644 --- a/OpenSim/Framework/Servers/HttpServer/PollServiceHttpRequest.cs +++ b/OpenSim/Framework/Servers/HttpServer/PollServiceHttpRequest.cs @@ -148,6 +148,10 @@ namespace OpenSim.Framework.Servers.HttpServer if (responsedata.ContainsKey("keepalive")) response.KeepAlive = (bool)responsedata["keepalive"]; + if (responsedata.ContainsKey("keepaliveTimeout")) + response.KeepAliveTimeout = (int)responsedata["keepaliveTimeout"]; + + if (responsedata.ContainsKey("prio")) response.Priority = (int)responsedata["prio"]; diff --git a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs index 8ac348e6c5..260cd50e61 100755 --- a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs @@ -65,13 +65,6 @@ namespace OpenSim.Region.ClientStack.Linden /// public int DebugLevel { get; set; } - // Viewer post requests timeout in 60 secs - // https://bitbucket.org/lindenlab/viewer-release/src/421c20423df93d650cc305dc115922bb30040999/indra/llmessage/llhttpclient.cpp?at=default#cl-44 - // - private const int VIEWER_TIMEOUT = 60 * 1000; - // Just to be safe, we work on a 10 sec shorter cycle - private const int SERVER_EQ_TIME_NO_EVENTS = VIEWER_TIMEOUT - (10 * 1000); - protected Scene m_scene; private Dictionary m_ids = new Dictionary(); @@ -363,7 +356,7 @@ namespace OpenSim.Region.ClientStack.Linden caps.RegisterPollHandler( "EventQueueGet", - new PollServiceEventArgs(null, GenerateEqgCapPath(eventQueueGetUUID), HasEvents, GetEvents, NoEvents, Drop, agentID, SERVER_EQ_TIME_NO_EVENTS)); + new PollServiceEventArgs(null, GenerateEqgCapPath(eventQueueGetUUID), HasEvents, GetEvents, NoEvents, Drop, agentID, int.MaxValue)); } public bool HasEvents(UUID requestID, UUID agentID) @@ -396,7 +389,7 @@ namespace OpenSim.Region.ClientStack.Linden } public void Drop(UUID requestID, UUID pAgentId) { - // do nothing for now, hope client close will do it + // do nothing, in last case http server will do it } public Hashtable GetEvents(UUID requestID, UUID pAgentId) @@ -464,7 +457,7 @@ namespace OpenSim.Region.ClientStack.Linden responsedata["content_type"] = "application/xml"; //string tt = OSDParser.SerializeLLSDXmlString(events); responsedata["bin_response_data"] = Encoding.UTF8.GetBytes(OSDParser.SerializeLLSDXmlString(events)); - + responsedata["keepaliveTimeout"] = 60; //m_log.DebugFormat("[EVENTQUEUE]: sending response for {0} in region {1}: {2}", pAgentId, m_scene.RegionInfo.RegionName, responsedata["str_response_string"]); return responsedata; } @@ -476,7 +469,6 @@ namespace OpenSim.Region.ClientStack.Linden responsedata["content_type"] = "text/plain"; responsedata["str_response_string"] = ""; responsedata["error_status_text"] = ""; - responsedata["http_protocol_version"] = "HTTP/1.0"; responsedata["keepalive"] = false; return responsedata; }