diff --git a/OpenSim/Client/Linden/LLClientStackModule.cs b/OpenSim/Client/Linden/LLClientStackModule.cs new file mode 100644 index 0000000000..57331e53cf --- /dev/null +++ b/OpenSim/Client/Linden/LLClientStackModule.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using System.Text; +using log4net; +using Nini.Config; +using OpenMetaverse; +using OpenSim.Region.ClientStack; +using OpenSim.Region.ClientStack.LindenUDP; +using OpenSim.Framework; +using OpenSim.Region.Framework.Scenes; +using OpenSim.Region.Framework.Interfaces; + +namespace OpenSim.Client.Linden +{ + public class LLClientStackModule : IRegionModule + { + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + + #region IRegionModule Members + + protected Scene m_scene; + protected bool m_createClientStack = false; + protected IClientNetworkServer m_clientServer; + protected ClientStackManager m_clientStackManager; + protected IConfigSource m_source; + + protected string m_clientStackDll = "OpenSim.Region.ClientStack.LindenUDP.dll"; + + public void Initialise(Scene scene, IConfigSource source) + { + if (m_scene == null) + { + m_scene = scene; + m_source = source; + + IConfig startupConfig = m_source.Configs["Startup"]; + if (startupConfig != null) + { + m_clientStackDll = startupConfig.GetString("clientstack_plugin", "OpenSim.Region.ClientStack.LindenUDP.dll"); + } + } + } + + public void PostInitialise() + { + if ((m_scene != null) && (m_createClientStack)) + { + m_log.Info("[LLClientStackModule] Starting up LLClientStack."); + uint port = (uint)m_scene.RegionInfo.InternalEndPoint.Port; + m_clientStackManager = new ClientStackManager(m_clientStackDll); + + m_clientServer + = m_clientStackManager.CreateServer(m_scene.RegionInfo.InternalEndPoint.Address, + ref port, m_scene.RegionInfo.ProxyOffset, m_scene.RegionInfo.m_allow_alternate_ports, m_source, + m_scene.CommsManager.AssetCache, m_scene.AuthenticateHandler); + + m_clientServer.AddScene(m_scene); + + m_clientServer.Start(); + } + } + + public void Close() + { + + } + + public string Name + { + get { return "LLClientStackModule"; } + } + + public bool IsSharedModule + { + get { return false; } + } + + #endregion + } +} diff --git a/prebuild.xml b/prebuild.xml index 0b42592007..5a1fcaaf3e 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -1712,6 +1712,39 @@ + + + + ../../../bin/ + + + + + ../../../bin/ + + + + ../../../bin/ + + + + + + + + + + + + + + + + + + + +