From 09531a03055f0f053bf55d860137c54c7f3a09b3 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Sat, 5 Nov 2016 18:24:40 +1000 Subject: More config path fixes. --- .../LoadRegions/RegionLoaderFileSystem.cs | 45 +++++++++++++--------- OpenSim/Region/Application/ConfigurationLoader.cs | 5 +-- OpenSim/Server/Handlers/BakedTextures/XBakes.cs | 4 +- 3 files changed, 30 insertions(+), 24 deletions(-) (limited to 'OpenSim') diff --git a/OpenSim/ApplicationPlugins/LoadRegions/RegionLoaderFileSystem.cs b/OpenSim/ApplicationPlugins/LoadRegions/RegionLoaderFileSystem.cs index 1873a06..130a523 100644 --- a/OpenSim/ApplicationPlugins/LoadRegions/RegionLoaderFileSystem.cs +++ b/OpenSim/ApplicationPlugins/LoadRegions/RegionLoaderFileSystem.cs @@ -38,7 +38,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions public class RegionLoaderFileSystem : IRegionLoader { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - + private IConfigSource m_configSource; public void SetIniConfigSource(IConfigSource configSource) @@ -48,7 +48,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions public RegionInfo[] LoadRegions() { - string regionConfigPath = Path.Combine(Util.configDir(), "Regions"); + string regionConfigPath = Util.configDir(); bool allowRegionless = false; try @@ -68,47 +68,54 @@ namespace OpenSim.ApplicationPlugins.LoadRegions } string[] configFiles = Directory.GetFiles(regionConfigPath, "*.xml"); - string[] iniFiles = Directory.GetFiles(regionConfigPath, "*.ini"); +//// Causes hangs with the actual .ini files. +//// string[] iniFiles = Directory.GetFiles(regionConfigPath, "*.ini"); // Create an empty Regions.ini if there are no existing config files. - if (!allowRegionless && configFiles.Length == 0 && iniFiles.Length == 0) - { + if (!allowRegionless && configFiles.Length == 0 /*&& iniFiles.Length == 0*/) + { new RegionInfo("DEFAULT REGION CONFIG", Path.Combine(regionConfigPath, "Regions.ini"), false, m_configSource); - iniFiles = Directory.GetFiles(regionConfigPath, "*.ini"); +//// iniFiles = Directory.GetFiles(regionConfigPath, "*.ini"); } - + m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loading config files from {0}", regionConfigPath); List regionInfos = new List(); int i = 0; +/* foreach (string file in iniFiles) { m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loading config file {0}", file); - + IConfigSource source = new IniConfigSource(file); foreach (IConfig config in source.Configs) - { + { RegionInfo regionInfo = new RegionInfo("REGION CONFIG #" + (i + 1), file, false, m_configSource, config.Name); regionInfos.Add(regionInfo); - + m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loaded config for region {0}", regionInfo.RegionName); - + i++; } } - +*/ foreach (string file in configFiles) { m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loading config file {0}", file); - - RegionInfo regionInfo = new RegionInfo("REGION CONFIG #" + (i + 1), file, false, m_configSource); - regionInfos.Add(regionInfo); - - m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loaded config for region {0}", regionInfo.RegionName); - - i++; + + IConfigSource source = new XmlConfigSource(file); + + foreach (IConfig config in source.Configs) + { + RegionInfo regionInfo = new RegionInfo("REGION CONFIG #" + (i + 1), file, false, m_configSource, config.Name); + regionInfos.Add(regionInfo); + + m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loaded config for region {0}", regionInfo.RegionName); + + i++; + } } return regionInfos.ToArray(); diff --git a/OpenSim/Region/Application/ConfigurationLoader.cs b/OpenSim/Region/Application/ConfigurationLoader.cs index b19e549..cf7db97 100644 --- a/OpenSim/Region/Application/ConfigurationLoader.cs +++ b/OpenSim/Region/Application/ConfigurationLoader.cs @@ -154,15 +154,14 @@ namespace OpenSim } // Override distro settings with contents of inidirectory - string iniDirName = startupConfig.GetString("inidirectory", "config"); - string iniDirPath = Path.Combine(Util.configDir(), iniDirName); + string iniDirPath = Path.GetFullPath(Path.Combine(Util.configDir(), startupConfig.GetString("inidirectory", "config"))); if (Directory.Exists(iniDirPath)) { m_log.InfoFormat("[CONFIG]: Searching folder {0} for config ini files", iniDirPath); List overrideSources = new List(); - string[] fileEntries = Directory.GetFiles(iniDirName); + string[] fileEntries = Directory.GetFiles(iniDirPath); foreach (string filePath in fileEntries) { if (Path.GetExtension(filePath).ToLower() == ".ini") diff --git a/OpenSim/Server/Handlers/BakedTextures/XBakes.cs b/OpenSim/Server/Handlers/BakedTextures/XBakes.cs index 4e55433..a63c9a1 100644 --- a/OpenSim/Server/Handlers/BakedTextures/XBakes.cs +++ b/OpenSim/Server/Handlers/BakedTextures/XBakes.cs @@ -70,9 +70,9 @@ namespace OpenSim.Server.Handlers.BakedTextures m_FSBase = assetConfig.GetString("BaseDirectory", String.Empty); if (m_FSBase == String.Empty) { - m_log.ErrorFormat("[BAKES]: BaseDirectory not specified"); - throw new Exception("Configuration error"); + m_FSBase = "bakes"; } + m_FSBase = "../../caches/" + m_FSBase; m_log.Info("[BAKES]: XBakes service enabled"); } -- cgit v1.1