From 4920e52f11dadd650e5d9621968aaa60a01c8b9b Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Fri, 3 Oct 2008 19:42:35 +0000 Subject: [PATCH] * oops, fix build break. * refactoring --- OpenSim/Region/Application/OpenSimBase.cs | 26 ++++------ .../Region/ClientStack/ClientStackManager.cs | 34 +++++++++++++ .../ClientStack/LindenUDP/LLClientView.cs | 8 +-- .../ClientStack/RegionApplicationBase.cs | 51 +++++++++++-------- 4 files changed, 81 insertions(+), 38 deletions(-) diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index 54dd51d575..f845bf8d3a 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs @@ -150,8 +150,7 @@ namespace OpenSim set { m_moduleLoader = value; } } - public OpenSimBase(IConfigSource configSource) - : base() + public OpenSimBase(IConfigSource configSource) : base() { IConfig startupConfig = configSource.Configs["Startup"]; @@ -179,7 +178,7 @@ namespace OpenSim { if (File.Exists("OpenSim.xml")) { - //check for a xml config file + // check for a xml config file Application.iniFilePath = "OpenSim.xml"; m_config.Source = new XmlConfigSource(); m_config.Source.Merge(new XmlConfigSource(Application.iniFilePath)); @@ -187,9 +186,7 @@ namespace OpenSim } else { - //Application.iniFilePath = "OpenSim.xml"; - // m_config.ConfigSource = new XmlConfigSource(); - // no default config files, so set default values, and save it + // using OpenSim.ini instead m_config.Source.Merge(DefaultConfig()); m_config.Source.Merge(configSource); m_config.Save(Application.iniFilePath); @@ -293,7 +290,6 @@ namespace OpenSim } return DefaultConfig; - } protected virtual void ReadConfigSettings() @@ -354,14 +350,15 @@ namespace OpenSim protected void LoadPlugins() { PluginLoader loader = - new PluginLoader (new ApplicationPluginInitialiser (this)); + new PluginLoader(new ApplicationPluginInitialiser(this)); - loader.Load ("/OpenSim/Startup"); + loader.Load("/OpenSim/Startup"); m_plugins = loader.Plugins; } /// - /// Performs initialisation of the scene, such as loading configuration from disk. + /// Performs startup specific to this region server, including initialization of the scene + /// such as loading configuration from disk. /// protected override void StartupSpecific() { @@ -501,9 +498,7 @@ namespace OpenSim regionInfo.originRegionID = regionInfo.RegionID; // set initial ServerURI - regionInfo.ServerURI = "http://" + regionInfo.ExternalHostName - + ":" + regionInfo.InternalEndPoint.Port.ToString(); - + regionInfo.ServerURI = "http://" + regionInfo.ExternalHostName + ":" + regionInfo.InternalEndPoint.Port; regionInfo.HttpPort = m_httpServerPort; if ((proxyUrl.Length > 0) && (portadd_flag)) @@ -514,11 +509,12 @@ namespace OpenSim } IClientNetworkServer clientServer; - Scene scene = SetupScene(regionInfo, proxyOffset, out clientServer); + Scene scene = SetupScene(regionInfo, proxyOffset, null, out clientServer); m_log.Info("[MODULES]: Loading Region's modules"); List modules = m_moduleLoader.PickupModules(scene, "."); + // This needs to be ahead of the script engine load, so the // script module can pick up events exposed by a module m_moduleLoader.InitialiseSharedModules(scene); @@ -530,7 +526,7 @@ namespace OpenSim scene.StartTimer(); - //moved these here as the terrain texture has to be created after the modules are initialized + // moved these here as the terrain texture has to be created after the modules are initialized // and has to happen before the region is registered with the grid. scene.CreateTerrainTexture(false); diff --git a/OpenSim/Region/ClientStack/ClientStackManager.cs b/OpenSim/Region/ClientStack/ClientStackManager.cs index 0b0c07fcd6..2751e0a9e3 100644 --- a/OpenSim/Region/ClientStack/ClientStackManager.cs +++ b/OpenSim/Region/ClientStack/ClientStackManager.cs @@ -65,11 +65,45 @@ namespace OpenSim.Region.Environment } } } + + /// + /// Create a server that can set up sessions for virtual world client <-> server communications + /// + /// + /// + /// + /// + /// + /// + /// + public IClientNetworkServer CreateServer( + IPAddress _listenIP, ref uint port, int proxyPortOffset, bool allow_alternate_port, + AssetCache assetCache, AgentCircuitManager authenticateClass) + { + return CreateServer( + _listenIP, ref port, proxyPortOffset, allow_alternate_port, null, assetCache, authenticateClass); + } + /// + /// Create a server that can set up sessions for virtual world client <-> server communications + /// + /// + /// + /// + /// + /// + /// Can be null, in which case default values are used + /// + /// + /// + /// public IClientNetworkServer CreateServer( IPAddress _listenIP, ref uint port, int proxyPortOffset, bool allow_alternate_port, ClientStackUserSettings settings, AssetCache assetCache, AgentCircuitManager authenticateClass) { + if (null == settings) + settings = new ClientStackUserSettings(); + if (plugin != null) { IClientNetworkServer server = diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 199954efe4..5aa0f2e04c 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -392,8 +392,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP /// /// /// - public LLClientView(EndPoint remoteEP, IScene scene, AssetCache assetCache, LLPacketServer packServer, - AgentCircuitManager authenSessions, UUID agentId, UUID sessionId, uint circuitCode, EndPoint proxyEP) + public LLClientView( + EndPoint remoteEP, IScene scene, AssetCache assetCache, LLPacketServer packServer, + AgentCircuitManager authenSessions, UUID agentId, UUID sessionId, uint circuitCode, EndPoint proxyEP, + ClientStackUserSettings userSettings) { m_moneyBalance = 1000; @@ -422,7 +424,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP // in it to process. It's an on-purpose threadlock though because // without it, the clientloop will suck up all sim resources. - m_PacketHandler = new LLPacketHandler(this, m_networkServer); + m_PacketHandler = new LLPacketHandler(this, m_networkServer, userSettings); m_PacketHandler.SynchronizeClient = SynchronizeClient; RegisterLocalPacketHandlers(); diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs index 4db2907729..400606659a 100644 --- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs +++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs @@ -70,6 +70,13 @@ namespace OpenSim.Region.ClientStack { get { return m_sceneManager; } } + + protected abstract void Initialize(); + protected abstract PhysicsScene GetPhysicsScene(); + protected abstract StorageManager CreateStorageManager(string connectionstring, string estateconnectionstring); + protected abstract ClientStackManager CreateClientStackManager(); + protected abstract Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, + AgentCircuitManager circuitManager); protected override void StartupSpecific() { @@ -79,7 +86,11 @@ namespace OpenSim.Region.ClientStack Initialize(); - m_httpServer = new BaseHttpServer(m_httpServerPort,m_networkServersInfo.HttpUsesSSL,m_networkServersInfo.httpSSLPort, m_networkServersInfo.HttpSSLCN); + m_httpServer + = new BaseHttpServer( + m_httpServerPort, m_networkServersInfo.HttpUsesSSL, m_networkServersInfo.httpSSLPort, + m_networkServersInfo.HttpSSLCN); + if (m_networkServersInfo.HttpUsesSSL && (m_networkServersInfo.HttpListenerPort == m_networkServersInfo.httpSSLPort)) { m_log.Error("[HTTP]: HTTP Server config failed. HTTP Server and HTTPS server must be on different ports"); @@ -89,19 +100,6 @@ namespace OpenSim.Region.ClientStack m_httpServer.Start(); } - protected abstract void Initialize(); - - // protected void StartConsole() - // { - // m_console = CreateConsole(); - // MainConsole.Instance = m_console; - // } - - // protected abstract ConsoleBase CreateConsole(); - protected abstract PhysicsScene GetPhysicsScene(); - protected abstract StorageManager CreateStorageManager(string connectionstring, string estateconnectionstring); - protected abstract ClientStackManager CreateClientStackManager(); - protected PhysicsScene GetPhysicsScene(string engine, string meshEngine, IConfigSource config) { PhysicsPluginManager physicsPluginManager; @@ -110,12 +108,28 @@ namespace OpenSim.Region.ClientStack return physicsPluginManager.GetPhysicsScene(engine, meshEngine, config); } + /// + /// Create a scene and its initial base structures. + /// + /// + /// + /// protected Scene SetupScene(RegionInfo regionInfo, out IClientNetworkServer clientServer) { - return SetupScene(regionInfo, 0, out clientServer); + return SetupScene(regionInfo, 0, null, out clientServer); } - protected Scene SetupScene(RegionInfo regionInfo, int proxyOffset, out IClientNetworkServer clientServer) + /// + /// Create a scene and its initial base structures. + /// + /// + /// + /// + /// + /// + protected Scene SetupScene( + RegionInfo regionInfo, int proxyOffset, ClientStackUserSettings clientStackUserSettings, + out IClientNetworkServer clientServer) { AgentCircuitManager circuitManager = new AgentCircuitManager(); IPAddress listenIP = regionInfo.InternalEndPoint.Address; @@ -126,7 +140,7 @@ namespace OpenSim.Region.ClientStack clientServer = m_clientStackManager.CreateServer( - listenIP, ref port, proxyOffset, regionInfo.m_allow_alternate_ports, new ClientStackUserSettings(), + listenIP, ref port, proxyOffset, regionInfo.m_allow_alternate_ports, clientStackUserSettings, m_assetCache, circuitManager); regionInfo.InternalEndPoint.Port = (int)port; @@ -172,8 +186,5 @@ namespace OpenSim.Region.ClientStack return scene; } - - protected abstract Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, - AgentCircuitManager circuitManager); } }