diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Login/LLLoginServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Login/LLLoginServiceInConnectorModule.cs index ecb6c917fd..2a9366c44e 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Login/LLLoginServiceInConnectorModule.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Login/LLLoginServiceInConnectorModule.cs @@ -109,6 +109,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Login public void RegionLoaded(Scene scene) { + if (!m_Enabled) + return; + if (!m_Registered) { m_Registered = true; diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Simulation/SimulationServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Simulation/SimulationServiceInConnectorModule.cs index 03a5124fca..5ee1c97e5f 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Simulation/SimulationServiceInConnectorModule.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Simulation/SimulationServiceInConnectorModule.cs @@ -87,6 +87,17 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Simulation } public void AddRegion(Scene scene) + { + if (!m_Enabled) + return; + + } + + public void RemoveRegion(Scene scene) + { + } + + public void RegionLoaded(Scene scene) { if (!m_Enabled) return; @@ -103,14 +114,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Simulation } } - public void RemoveRegion(Scene scene) - { - } - - public void RegionLoaded(Scene scene) - { - } - #endregion } diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs index b7dc283c48..c9cc368ee3 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs @@ -103,6 +103,15 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation public void AddRegion(Scene scene) { + if (!m_enabled) + return; + + if (!initialized) + { + InitOnce(scene); + initialized = true; + } + InitEach(scene); } public void RemoveRegion(Scene scene) @@ -116,15 +125,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation public void RegionLoaded(Scene scene) { - if (m_enabled) - { - if (!initialized) - { - InitOnce(scene); - initialized = true; - } - InitEach(scene); - } + if (!m_enabled) + return; + + m_hyperlinkService = m_aScene.RequestModuleInterface(); + } public Type ReplaceableInterface @@ -148,7 +153,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation m_localBackend = new LocalSimulationConnectorModule(); m_commsManager = scene.CommsManager; m_aScene = scene; - m_hyperlinkService = m_aScene.RequestModuleInterface(); //m_regionClient = new RegionToRegionClient(m_aScene, m_hyperlinkService); m_thisIP = Util.GetHostFromDNS(scene.RegionInfo.ExternalHostName); } diff --git a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs index f4f3eea395..ccb4c7009d 100644 --- a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs +++ b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs @@ -134,8 +134,12 @@ namespace OpenSim.Server.Handlers.Simulation uint teleportFlags = 0; if (args.ContainsKey("destination_x") && args["destination_x"] != null) Int32.TryParse(args["destination_x"].AsString(), out x); + else + m_log.WarnFormat(" -- request didn't have destination_x"); if (args.ContainsKey("destination_y") && args["destination_y"] != null) Int32.TryParse(args["destination_y"].AsString(), out y); + else + m_log.WarnFormat(" -- request didn't have destination_y"); if (args.ContainsKey("destination_uuid") && args["destination_uuid"] != null) UUID.TryParse(args["destination_uuid"].AsString(), out uuid); if (args.ContainsKey("destination_name") && args["destination_name"] != null) diff --git a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs index fcf07c76ff..dc532d0517 100644 --- a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs +++ b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs @@ -39,6 +39,7 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion; using OpenMetaverse; using OpenMetaverse.StructuredData; using log4net; +using Nini.Config; namespace OpenSim.Services.Connectors.Simulation { @@ -52,7 +53,7 @@ namespace OpenSim.Services.Connectors.Simulation { } - public SimulationServiceConnector(GridRegion region) + public SimulationServiceConnector(IConfigSource config) { //m_Region = region; } @@ -68,6 +69,13 @@ namespace OpenSim.Services.Connectors.Simulation { reason = String.Empty; + if (destination == null) + { + reason = "Destination is null"; + m_log.Debug("[REMOTE SIMULATION CONNECTOR]: Given destination is null"); + return false; + } + // Eventually, we want to use a caps url instead of the agentID string uri = string.Empty; try @@ -128,7 +136,8 @@ namespace OpenSim.Services.Connectors.Simulation AgentCreateRequest.ContentLength = buffer.Length; //Count bytes to send os = AgentCreateRequest.GetRequestStream(); os.Write(buffer, 0, strBuffer.Length); //Send it - //m_log.InfoFormat("[REMOTE SIMULATION CONNECTOR]: Posted CreateChildAgent request to remote sim {0}", uri); + m_log.InfoFormat("[REMOTE SIMULATION CONNECTOR]: Posted CreateAgent request to remote sim {0}, region {1}, x={2} y={3}", + uri, destination.RegionName, destination.RegionLocX, destination.RegionLocY); } //catch (WebException ex) catch diff --git a/OpenSim/Services/LLLoginService/LLLoginService.cs b/OpenSim/Services/LLLoginService/LLLoginService.cs index 638fa9fceb..2ae552fac3 100644 --- a/OpenSim/Services/LLLoginService/LLLoginService.cs +++ b/OpenSim/Services/LLLoginService/LLLoginService.cs @@ -26,11 +26,11 @@ namespace OpenSim.Services.LLLoginService private IGridService m_GridService; private IPresenceService m_PresenceService; private ISimulationService m_LocalSimulationService; + private ISimulationService m_RemoteSimulationService; private ILibraryService m_LibraryService; private IAvatarService m_AvatarService; private string m_DefaultRegionName; - private string m_RemoteSimulationDll; private string m_WelcomeMessage; private bool m_RequireInventory; @@ -47,9 +47,9 @@ namespace OpenSim.Services.LLLoginService string presenceService = serverConfig.GetString("PresenceService", String.Empty); string libService = serverConfig.GetString("LibraryService", String.Empty); string avatarService = serverConfig.GetString("AvatarService", String.Empty); + string simulationService = serverConfig.GetString("SimulationService", String.Empty); m_DefaultRegionName = serverConfig.GetString("DefaultRegion", String.Empty); - m_RemoteSimulationDll = serverConfig.GetString("RemoteSimulationService", String.Empty); m_WelcomeMessage = serverConfig.GetString("WelcomeMessage", "Welcome to OpenSim!"); m_RequireInventory = serverConfig.GetBoolean("RequireInventory", true); @@ -67,6 +67,8 @@ namespace OpenSim.Services.LLLoginService m_PresenceService = ServerUtils.LoadPlugin(presenceService, args); if (avatarService != string.Empty) m_AvatarService = ServerUtils.LoadPlugin(avatarService, args); + if (simulationService != string.Empty) + m_RemoteSimulationService = ServerUtils.LoadPlugin(simulationService, args); // // deal with the services given as argument // @@ -184,8 +186,8 @@ namespace OpenSim.Services.LLLoginService // independent login servers have just a remoteSimulationDll if (!startLocation.Contains("@") && (m_LocalSimulationService != null)) simConnector = m_LocalSimulationService; - else if (m_RemoteSimulationDll != string.Empty) - simConnector = ServerUtils.LoadPlugin(m_RemoteSimulationDll, args); + else if (m_RemoteSimulationService != null) + simConnector = m_RemoteSimulationService; if (simConnector != null) { circuitCode = (uint)Util.RandomClass.Next(); ; @@ -362,6 +364,7 @@ namespace OpenSim.Services.LLLoginService //aCircuit.BaseFolder = irrelevant aCircuit.CapsPath = CapsUtil.GetRandomCapsObjectPath(); aCircuit.child = false; // the first login agent is root + aCircuit.ChildrenCapSeeds = new Dictionary(); aCircuit.circuitcode = circuit; aCircuit.firstname = account.FirstName; //aCircuit.InventoryFolder = irrelevant diff --git a/bin/OpenSim.Server.ini.example b/bin/OpenSim.Server.ini.example index f3d222f446..b93bbd6db3 100644 --- a/bin/OpenSim.Server.ini.example +++ b/bin/OpenSim.Server.ini.example @@ -1,21 +1,22 @@ ; * The startup section lists all the connectors to start up in this server ; * instance. This may be only one, or it may be the entire server suite. ; * Multiple connectors should be seaprated by commas. +; * The startup section lists all the connectors to start up in this server +; * instance. This may be only one, or it may be the entire server suite. +; * Multiple connectors should be seaprated by commas. ; * ; * These are the IN connectors the server uses, the in connectors -; * read this config file and load the needed OUT and database connectors +; * read this config file and load the needed service and database connectors ; * -; * Add "OpenSim.Server.Handlers.dll:AuthenticationServiceConnector" to -; * enable the experimental authentication service ; * [Startup] -ServiceConnectors = "OpenSim.Server.Handlers.dll:AssetServiceConnector,OpenSim.Server.Handlers.dll:InventoryServiceInConnector,OpenSim.Server.Handlers.dll:FreeswitchServerConnector,OpenSim.Server.Handlers.dll:GridServiceConnector" +ServiceConnectors = "OpenSim.Server.Handlers.dll:AssetServiceConnector,OpenSim.Server.Handlers.dll:InventoryServiceInConnector,OpenSim.Server.Handlers.dll:FreeswitchServerConnector,OpenSim.Server.Handlers.dll:GridServiceConnector,OpenSim.Server.Handlers.dll:AuthenticationServiceConnector,OpenSim.Server.Handlers.dll:AvatarServiceConnector,OpenSim.Server.Handlers.dll:LLLoginServiceInConnector,OpenSim.Server.Handlers.dll:PresenceServiceConnector,,OpenSim.Server.Handlers.dll:UserAccountServiceConnector" ; * This is common for all services, it's the network setup for the entire ; * server instance ; * [Network] -port = 8003 + port = 8003 ; * The following are for the remote console ; * They have no effect for the local or basic console types @@ -29,25 +30,35 @@ port = 8003 ; * in turn, reads the asset loader and database connection information ; * [AssetService] -LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService" -DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll" -AssetLoaderArgs = "assets/AssetSets.xml" -StorageProvider = "OpenSim.Data.MySQL.dll" -ConnectionString = "Data Source=localhost;Database=grid;User ID=grid;Password=grid;" + LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService" + DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll" + AssetLoaderArgs = "assets/AssetSets.xml" + StorageProvider = "OpenSim.Data.MySQL.dll" + ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=opensim123;" ; * This configuration loads the inventory server modules. It duplicates ; * the function of the legacy inventory server ; * [InventoryService] -LocalServiceModule = "OpenSim.Services.InventoryService.dll:InventoryService" -UserServerURI = "http://127.0.0.1:8002" -SessionAuthentication = "false" -StorageProvider = "OpenSim.Data.MySQL.dll" -ConnectionString = "Data Source=localhost;Database=grid;User ID=grid;Password=grid;" + LocalServiceModule = "OpenSim.Services.InventoryService.dll:InventoryService" + UserServerURI = "http://127.0.0.1:8002" + SessionAuthentication = "false" + StorageProvider = "OpenSim.Data.MySQL.dll" + ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=opensim123;" + +; * This is the new style grid service. +; * "Realm" is the table that is used for user lookup. +; * It defaults to "regions", which uses the legacy tables +; * +[GridService] + LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" + StorageProvider = "OpenSim.Data.MySQL.dll:MySqlRegionData" + ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=opensim123;" + Realm = "regions" ; * This is the configuration for the freeswitch server in grid mode [FreeswitchService] -LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService" + LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService" ; * This is the new style authentication service. Currently, only MySQL ; * is implemented. "Realm" is the table that is used for user lookup. @@ -55,27 +66,39 @@ LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService" ; * as an authentication source. ; * [AuthenticationService] -AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" -StorageProvider = "OpenSim.Data.MySQL.dll" -ConnectionString = "Data Source=localhost;Database=grid;User ID=grid;Password=grid;" -; Realm = "users" + AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" + StorageProvider = "OpenSim.Data.MySQL.dll" + ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=opensim123;" ; * This is the new style user service. ; * "Realm" is the table that is used for user lookup. ; * It defaults to "users", which uses the legacy tables ; * [UserAccountService] -AuthenticationServiceModule = "OpenSim.Services.UserService.dll:UserAccountService" -StorageProvider = "OpenSim.Data.MySQL.dll" -ConnectionString = "Data Source=localhost;Database=grid;User ID=grid;Password=grid;" -; Realm = "users" + AuthenticationServiceModule = "OpenSim.Services.UserService.dll:UserAccountService" + LocalServiceModule = "OpenSim.Services.UserAccountService.dll:UserAccountService" + StorageProvider = "OpenSim.Data.MySQL.dll" + ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=opensim123;" + ; Realm = "useraccounts" -; * This is the new style grid service. -; * "Realm" is the table that is used for user lookup. -; * It defaults to "regions", which uses the legacy tables -; * -[GridService] -LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" -StorageProvider = "OpenSim.Data.MySQL.dll:MySqlRegionData" -ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=grid;" -Realm = "regions" +[PresenceService] + LocalServiceModule = "OpenSim.Services.PresenceService.dll:PresenceService" + StorageProvider = "OpenSim.Data.MySQL.dll" + ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=opensim123;" + +[LibraryService] + LibraryName = "OpenSim Library" + DefaultLibrary = "./inventory/Libraries.xml" + +[LoginService] + LocalServiceModule = "OpenSim.Services.LLLoginService.dll:LLLoginService" + UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" + AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService" + InventoryService = "OpenSim.Services.InventoryService.dll:InventoryService" + PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" + GridService = "OpenSim.Services.GridService.dll:GridService" + SimulationService ="OpenSim.Services.Connectors.dll:SimulationServiceConnector" + LibraryService = "OpenSim.Services.InventoryService.dll:LibraryService" + + DefaultRegion = "OpenSim Test" + WelcomeMessage = "Welcome, Avatar!" diff --git a/bin/config-include/GridCommon.ini.example b/bin/config-include/GridCommon.ini.example index 6da0f1e8a1..6a65523574 100644 --- a/bin/config-include/GridCommon.ini.example +++ b/bin/config-include/GridCommon.ini.example @@ -21,6 +21,24 @@ ; GridServerURI = "http://mygridserver.com:8003" +[PresenceService] + ; + ; change this to your grid-wide presence server + ; + PresenceServerURI = "http://mygridserver.com:8003" + +[UserAccountService] + ; + ; change this to your grid-wide user accounts server + ; + UserAccountServerURI = "http://mygridserver.com:8003" + +[AuthenticationService] + ; + ; change this to your grid-wide authentication server + ; + AuthenticationServerURI = "http://mygridserver.com:8003" + [Modules] ;; Choose 0 or 1 cache modules, and the corresponding config file, if it exists. ;; Copy the config .example file into your own .ini file and change configs there diff --git a/bin/config-include/GridHypergrid.ini b/bin/config-include/GridHypergrid.ini index a5fe6e9d49..94b9f69eea 100644 --- a/bin/config-include/GridHypergrid.ini +++ b/bin/config-include/GridHypergrid.ini @@ -13,12 +13,21 @@ [Modules] AssetServices = "HGAssetBroker" InventoryServices = "HGInventoryBroker" - NeighbourServices = "RemoteNeighbourServicesConnector" GridServices = "HGGridServicesConnector" - NeighbourServiceInConnector = true + NeighbourServices = "RemoteNeighbourServicesConnector" + AuthenticationServices = "RemoteAuthenticationServicesConnector" + AuthorizationServices = "LocalAuthorizationServicesConnector" + PresenceServices = "RemotePresenceServicesConnector" + UserAccountServices = "RemoteUserAccountServicesConnector" + SimulationServices = "RemoteSimulationConnectorModule" LandServiceInConnector = true + NeighbourServiceInConnector = true HypergridServiceInConnector = true - LLProxyLoginModule = true + SimulationServiceInConnector = true + InventoryServiceInConnector = false + AssetServiceInConnector = false + LibraryModule = false + LLLoginServiceInConnector = false [AssetService] LocalGridAssetService = "OpenSim.Services.Connectors.dll:AssetServicesConnector" @@ -30,8 +39,8 @@ [GridService] ; for the HGGridServicesConnector to instantiate - GridServiceConnectorModule = "OpenSim.Region.CoreModules.dll:RemoteGridServicesConnector" + GridServiceConnectorModule = "OpenSim.Region.CoreModules.dll:RemoteGridServicesConnector" ; RemoteGridServicesConnector instantiates a LocalGridServicesConnector, ; which in turn uses this - LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" + LocalServiceModule = "OpenSim.Services.GridService.dll:GridService" StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"