diff --git a/OpenSim/Framework/IScene.cs b/OpenSim/Framework/IScene.cs index 6aebf038cb..629aeaae4c 100644 --- a/OpenSim/Framework/IScene.cs +++ b/OpenSim/Framework/IScene.cs @@ -27,6 +27,7 @@ using OpenMetaverse; using OpenSim.Framework.Console; +using Nini.Config; namespace OpenSim.Framework { @@ -62,6 +63,8 @@ namespace OpenSim.Framework RegionStatus RegionStatus { get; set; } ClientManager ClientManager { get; } + IConfigSource Config { get; } + float TimeDilation { get; } event restart OnRestart; diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 4bc568c8a9..1668bd35bf 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -44,6 +44,7 @@ using OpenSim.Framework.Statistics; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; using Timer=System.Timers.Timer; +using Nini.Config; namespace OpenSim.Region.ClientStack.LindenUDP { @@ -517,6 +518,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP m_PacketHandler.SynchronizeClient = SynchronizeClient; m_PacketHandler.OnPacketStats += PopulateStats; + if (scene.Config != null) + { + IConfig clientConfig = scene.Config.Configs["LLClient"]; + if (clientConfig != null) + { + m_PacketHandler.ReliableIsImportant = + clientConfig.GetBoolean("ReliableIsImportant", + false); + } + } + RegisterLocalPacketHandlers(); m_imageManager = new LLImageManager(this, m_assetCache,Scene.RequestModuleInterface()); } diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 7872a6e36f..5270d11101 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -135,6 +135,11 @@ namespace OpenSim.Region.Framework.Scenes { get { return m_capsModule; } } + + public IConfigSource Config + { + get { return m_config; } + } // Central Update Loop diff --git a/OpenSim/Region/Framework/Scenes/SceneBase.cs b/OpenSim/Region/Framework/Scenes/SceneBase.cs index 6ab7e7a085..c317c2ab0d 100644 --- a/OpenSim/Region/Framework/Scenes/SceneBase.cs +++ b/OpenSim/Region/Framework/Scenes/SceneBase.cs @@ -31,6 +31,7 @@ using System.Reflection; using System.Threading; using OpenMetaverse; using log4net; +using Nini.Config; using OpenSim.Framework; using OpenSim.Framework.Console; using OpenSim.Framework.Communications.Cache; @@ -50,6 +51,11 @@ namespace OpenSim.Region.Framework.Scenes #region Fields + public IConfigSource Config + { + get { return null; } + } + /// /// All the region modules attached to this scene. /// diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index c210a9b9c2..f11310ad9e 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example @@ -1275,3 +1275,7 @@ ; Enables the experimental packet pool. Yes, we've been here before. ;RecyclePackets = true; ;RecycleDataBlocks = true; + +[LLClient] + ; Resend packets markes as reliable until they are received + ;ReliableIsImportant = false diff --git a/prebuild.xml b/prebuild.xml index 76ea4ffca8..2f0b27b02b 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -1390,6 +1390,7 @@ +