From 2ff9ea3f8038653135c284cc0c93d88690db9a22 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sun, 1 Jun 2014 10:06:26 -0700 Subject: Fixed a few things pertaining to interfacing with the estate service. Specifically, StoreEstateSettings was not being used anywhere; instead EstatSetting.Save was being called, but that method is a trigger to the DB-layer code directly, which, besides being wrong, was making it impossible to replace the service with a remote connector. Also added more packing/unpacking code. --- OpenSim/Region/Application/OpenSim.cs | 2 +- OpenSim/Region/Application/OpenSimBase.cs | 12 ++--- .../World/Estate/EstateManagementModule.cs | 51 ++++++++++++---------- .../Shared/Api/Implementation/OSSL_Api.cs | 2 +- 4 files changed, 34 insertions(+), 33 deletions(-) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs index 59b4614..9e4671f 100644 --- a/OpenSim/Region/Application/OpenSim.cs +++ b/OpenSim/Region/Application/OpenSim.cs @@ -730,7 +730,7 @@ namespace OpenSim CreateRegion(regInfo, true, out scene); if (changed) - regInfo.EstateSettings.Save(); + m_estateDataService.StoreEstateSettings(regInfo.EstateSettings); } /// diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index feb3cf8..4c1914a 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs @@ -232,13 +232,9 @@ namespace OpenSim module)); // Load the estate data service - IConfig estateDataConfig = Config.Configs["EstateDataStore"]; - if (estateDataConfig == null) - throw new Exception("Configuration file is missing the [EstateDataStore] section. Have you copied OpenSim.ini.example to OpenSim.ini to reference config-include/ files?"); - - module = estateDataConfig.GetString("LocalServiceModule", String.Empty); + module = Util.GetConfigVarFromSections(Config, "LocalServiceModule", new string[]{"EstateDataStore", "EstateService"}, String.Empty); if (String.IsNullOrEmpty(module)) - throw new Exception("Configuration file is missing the LocalServiceModule parameter in the [EstateDataStore] section"); + throw new Exception("Configuration file is missing the LocalServiceModule parameter in the [EstateDataStore] or [EstateService] section"); m_estateDataService = ServerUtils.LoadPlugin(module, new object[] { Config }); if (m_estateDataService == null) @@ -555,7 +551,7 @@ namespace OpenSim else { regionInfo.EstateSettings.EstateOwner = account.PrincipalID; - regionInfo.EstateSettings.Save(); + m_estateDataService.StoreEstateSettings(regionInfo.EstateSettings); } } @@ -950,7 +946,7 @@ namespace OpenSim // back to the default. The reloading of estate settings by scene could be eliminated if it // knows that the passed in settings in RegionInfo are already valid. Also, it might be // possible to eliminate some additional later saves made by callers of this method. - regInfo.EstateSettings.Save(); + EstateDataService.StoreEstateSettings(regInfo.EstateSettings); return true; } diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs index eecc478..9fac9ff 100644 --- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs @@ -244,7 +244,7 @@ namespace OpenSim.Region.CoreModules.World.Estate else { dbSettings.EstateOwner = account.PrincipalID; - dbSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(dbSettings); response = String.Empty; // make sure there's a log entry to document the change @@ -292,7 +292,7 @@ namespace OpenSim.Region.CoreModules.World.Estate { string oldName = dbSettings.EstateName; dbSettings.EstateName = newName; - dbSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(dbSettings); response = String.Empty; // make sure there's a log entry to document the change @@ -367,10 +367,15 @@ namespace OpenSim.Region.CoreModules.World.Estate else { EstateSettings settings = Scene.EstateDataService.CreateNewEstate(); - settings.EstateOwner = ownerID; - settings.EstateName = estateName; - settings.Save(); - response = String.Empty; + if (settings == null) + response = String.Format("Unable to create estate \"{0}\" at this simulator", estateName); + else + { + settings.EstateOwner = ownerID; + settings.EstateName = estateName; + Scene.EstateDataService.StoreEstateSettings(settings); + response = String.Empty; + } } } return response; @@ -636,13 +641,13 @@ namespace OpenSim.Region.CoreModules.World.Estate { estateSettings = Scene.EstateDataService.LoadEstateSettings(estateID); estateSettings.AddEstateUser(user); - estateSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(estateSettings); } } } Scene.RegionInfo.EstateSettings.AddEstateUser(user); - Scene.RegionInfo.EstateSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(Scene.RegionInfo.EstateSettings); TriggerEstateInfoChange(); remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.AccessOptions, Scene.RegionInfo.EstateSettings.EstateAccess, Scene.RegionInfo.EstateSettings.EstateID); @@ -669,13 +674,13 @@ namespace OpenSim.Region.CoreModules.World.Estate { estateSettings = Scene.EstateDataService.LoadEstateSettings(estateID); estateSettings.RemoveEstateUser(user); - estateSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(estateSettings); } } } Scene.RegionInfo.EstateSettings.RemoveEstateUser(user); - Scene.RegionInfo.EstateSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(Scene.RegionInfo.EstateSettings); TriggerEstateInfoChange(); remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.AccessOptions, Scene.RegionInfo.EstateSettings.EstateAccess, Scene.RegionInfo.EstateSettings.EstateID); @@ -701,13 +706,13 @@ namespace OpenSim.Region.CoreModules.World.Estate { estateSettings = Scene.EstateDataService.LoadEstateSettings(estateID); estateSettings.AddEstateGroup(user); - estateSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(estateSettings); } } } Scene.RegionInfo.EstateSettings.AddEstateGroup(user); - Scene.RegionInfo.EstateSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(Scene.RegionInfo.EstateSettings); TriggerEstateInfoChange(); remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.AllowedGroups, Scene.RegionInfo.EstateSettings.EstateGroups, Scene.RegionInfo.EstateSettings.EstateID); @@ -733,13 +738,13 @@ namespace OpenSim.Region.CoreModules.World.Estate { estateSettings = Scene.EstateDataService.LoadEstateSettings(estateID); estateSettings.RemoveEstateGroup(user); - estateSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(estateSettings); } } } Scene.RegionInfo.EstateSettings.RemoveEstateGroup(user); - Scene.RegionInfo.EstateSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(Scene.RegionInfo.EstateSettings); TriggerEstateInfoChange(); remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.AllowedGroups, Scene.RegionInfo.EstateSettings.EstateGroups, Scene.RegionInfo.EstateSettings.EstateID); @@ -788,7 +793,7 @@ namespace OpenSim.Region.CoreModules.World.Estate estateSettings = Scene.EstateDataService.LoadEstateSettings(estateID); estateSettings.AddBan(bitem); - estateSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(estateSettings); } } } @@ -801,7 +806,7 @@ namespace OpenSim.Region.CoreModules.World.Estate item.BannedHostIPMask = "0.0.0.0"; Scene.RegionInfo.EstateSettings.AddBan(item); - Scene.RegionInfo.EstateSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(Scene.RegionInfo.EstateSettings); TriggerEstateInfoChange(); @@ -864,13 +869,13 @@ namespace OpenSim.Region.CoreModules.World.Estate { estateSettings = Scene.EstateDataService.LoadEstateSettings(estateID); estateSettings.RemoveBan(user); - estateSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(estateSettings); } } } Scene.RegionInfo.EstateSettings.RemoveBan(listitem.BannedUserID); - Scene.RegionInfo.EstateSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(Scene.RegionInfo.EstateSettings); TriggerEstateInfoChange(); } @@ -903,13 +908,13 @@ namespace OpenSim.Region.CoreModules.World.Estate { estateSettings = Scene.EstateDataService.LoadEstateSettings(estateID); estateSettings.AddEstateManager(user); - estateSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(estateSettings); } } } Scene.RegionInfo.EstateSettings.AddEstateManager(user); - Scene.RegionInfo.EstateSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(Scene.RegionInfo.EstateSettings); TriggerEstateInfoChange(); remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.EstateManagers, Scene.RegionInfo.EstateSettings.EstateManagers, Scene.RegionInfo.EstateSettings.EstateID); @@ -935,13 +940,13 @@ namespace OpenSim.Region.CoreModules.World.Estate { estateSettings = Scene.EstateDataService.LoadEstateSettings(estateID); estateSettings.RemoveEstateManager(user); - estateSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(estateSettings); } } } Scene.RegionInfo.EstateSettings.RemoveEstateManager(user); - Scene.RegionInfo.EstateSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(Scene.RegionInfo.EstateSettings); TriggerEstateInfoChange(); remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.EstateManagers, Scene.RegionInfo.EstateSettings.EstateManagers, Scene.RegionInfo.EstateSettings.EstateID); @@ -1415,7 +1420,7 @@ namespace OpenSim.Region.CoreModules.World.Estate else Scene.RegionInfo.EstateSettings.DenyMinors = false; - Scene.RegionInfo.EstateSettings.Save(); + Scene.EstateDataService.StoreEstateSettings(Scene.RegionInfo.EstateSettings); TriggerEstateInfoChange(); Scene.TriggerEstateSunUpdate(); diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index de2c3f7..4a24980 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -1246,7 +1246,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api World.RegionInfo.EstateSettings.UseGlobalTime = !sunFixed; World.RegionInfo.EstateSettings.SunPosition = sunHour; World.RegionInfo.EstateSettings.FixedSun = sunFixed; - World.RegionInfo.EstateSettings.Save(); + World.EstateDataService.StoreEstateSettings(World.RegionInfo.EstateSettings); World.EventManager.TriggerEstateToolsSunUpdate(World.RegionInfo.RegionHandle); } -- cgit v1.1