diff options
Diffstat (limited to 'OpenSim')
6 files changed, 56 insertions, 39 deletions
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs index 8b8e507..0fa54b2 100644 --- a/OpenSim/Framework/Util.cs +++ b/OpenSim/Framework/Util.cs | |||
@@ -917,7 +917,25 @@ namespace OpenSim.Framework | |||
917 | /// <returns></returns> | 917 | /// <returns></returns> |
918 | public static T GetConfigVarFromSections<T>(IConfigSource config, string varname, string[] sections) | 918 | public static T GetConfigVarFromSections<T>(IConfigSource config, string varname, string[] sections) |
919 | { | 919 | { |
920 | object val = default(T); | 920 | return GetConfigVarFromSections<T>(config, varname, sections, default(T)); |
921 | } | ||
922 | |||
923 | /// <summary> | ||
924 | /// Gets the value of a configuration variable by looking into | ||
925 | /// multiple sections in order. The latter sections overwrite | ||
926 | /// any values previously found. | ||
927 | /// </summary> | ||
928 | /// <remarks> | ||
929 | /// If no value is found then the given default value is returned | ||
930 | /// </remarks> | ||
931 | /// <typeparam name="T">Type of the variable</typeparam> | ||
932 | /// <param name="config">The configuration object</param> | ||
933 | /// <param name="varname">The configuration variable</param> | ||
934 | /// <param name="sections">Ordered sequence of sections to look at</param> | ||
935 | /// <param name="val">Default value</param> | ||
936 | /// <returns></returns> | ||
937 | public static T GetConfigVarFromSections<T>(IConfigSource config, string varname, string[] sections, object val) | ||
938 | { | ||
921 | foreach (string section in sections) | 939 | foreach (string section in sections) |
922 | { | 940 | { |
923 | IConfig cnf = config.Configs[section]; | 941 | IConfig cnf = config.Configs[section]; |
@@ -925,11 +943,7 @@ namespace OpenSim.Framework | |||
925 | continue; | 943 | continue; |
926 | 944 | ||
927 | if (typeof(T) == typeof(String)) | 945 | if (typeof(T) == typeof(String)) |
928 | { | ||
929 | if (val == null) // no null strings, please | ||
930 | val = string.Empty; | ||
931 | val = cnf.GetString(varname, (string)val); | 946 | val = cnf.GetString(varname, (string)val); |
932 | } | ||
933 | else if (typeof(T) == typeof(Boolean)) | 947 | else if (typeof(T) == typeof(Boolean)) |
934 | val = cnf.GetBoolean(varname, (bool)val); | 948 | val = cnf.GetBoolean(varname, (bool)val); |
935 | else if (typeof(T) == typeof(Int32)) | 949 | else if (typeof(T) == typeof(Int32)) |
@@ -937,8 +951,9 @@ namespace OpenSim.Framework | |||
937 | else if (typeof(T) == typeof(float)) | 951 | else if (typeof(T) == typeof(float)) |
938 | val = cnf.GetFloat(varname, (int)val); | 952 | val = cnf.GetFloat(varname, (int)val); |
939 | else | 953 | else |
940 | m_log.WarnFormat("[UTIL]: Unhandled type {0}", typeof(T)); | 954 | m_log.ErrorFormat("[UTIL]: Unhandled type {0}", typeof(T)); |
941 | } | 955 | } |
956 | |||
942 | return (T)val; | 957 | return (T)val; |
943 | } | 958 | } |
944 | 959 | ||
diff --git a/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs b/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs index e0921ad..c4255b9 100644 --- a/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs +++ b/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs | |||
@@ -52,8 +52,8 @@ namespace OpenSim.Region.CoreModules.Hypergrid | |||
52 | 52 | ||
53 | public override void Initialise(IConfigSource config) | 53 | public override void Initialise(IConfigSource config) |
54 | { | 54 | { |
55 | IConfig startupConfig = config.Configs["Startup"]; | 55 | if (Util.GetConfigVarFromSections<string>( |
56 | if (startupConfig.GetString("WorldMapModule", "WorldMap") == "HGWorldMap") | 56 | config, "WorldMapModule", new string[] { "Map", "Startup" }, "WorldMap") == "HGWorldMap") |
57 | m_Enabled = true; | 57 | m_Enabled = true; |
58 | } | 58 | } |
59 | 59 | ||
diff --git a/OpenSim/Region/CoreModules/World/LegacyMap/MapImageModule.cs b/OpenSim/Region/CoreModules/World/LegacyMap/MapImageModule.cs index e7065dc..40638f8 100644 --- a/OpenSim/Region/CoreModules/World/LegacyMap/MapImageModule.cs +++ b/OpenSim/Region/CoreModules/World/LegacyMap/MapImageModule.cs | |||
@@ -80,17 +80,14 @@ namespace OpenSim.Region.CoreModules.World.LegacyMap | |||
80 | bool generateMaptiles = true; | 80 | bool generateMaptiles = true; |
81 | Bitmap mapbmp; | 81 | Bitmap mapbmp; |
82 | 82 | ||
83 | try | 83 | string[] configSections = new string[] { "Map", "Startup" }; |
84 | { | 84 | |
85 | IConfig startupConfig = m_config.Configs["Startup"]; | 85 | drawPrimVolume |
86 | drawPrimVolume = startupConfig.GetBoolean("DrawPrimOnMapTile", drawPrimVolume); | 86 | = Util.GetConfigVarFromSections<bool>(m_config, "DrawPrimOnMapTile", configSections, drawPrimVolume); |
87 | textureTerrain = startupConfig.GetBoolean("TextureOnMapTile", textureTerrain); | 87 | textureTerrain |
88 | generateMaptiles = startupConfig.GetBoolean("GenerateMaptiles", generateMaptiles); | 88 | = Util.GetConfigVarFromSections<bool>(m_config, "TextureOnMapTile", configSections, textureTerrain); |
89 | } | 89 | generateMaptiles |
90 | catch | 90 | = Util.GetConfigVarFromSections<bool>(m_config, "GenerateMaptiles", configSections, generateMaptiles); |
91 | { | ||
92 | m_log.Warn("[MAPTILE]: Failed to load StartupConfig"); | ||
93 | } | ||
94 | 91 | ||
95 | if (generateMaptiles) | 92 | if (generateMaptiles) |
96 | { | 93 | { |
@@ -148,9 +145,8 @@ namespace OpenSim.Region.CoreModules.World.LegacyMap | |||
148 | { | 145 | { |
149 | m_config = source; | 146 | m_config = source; |
150 | 147 | ||
151 | IConfig startupConfig = m_config.Configs["Startup"]; | 148 | if (Util.GetConfigVarFromSections<string>( |
152 | if (startupConfig.GetString("MapImageModule", "MapImageModule") != | 149 | m_config, "MapImageModule", new string[] { "Startup", "Map" }, "MapImageModule") != "MapImageModule") |
153 | "MapImageModule") | ||
154 | return; | 150 | return; |
155 | 151 | ||
156 | m_Enabled = true; | 152 | m_Enabled = true; |
diff --git a/OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs b/OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs index 5e0dfa7..ed2b06a 100644 --- a/OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs +++ b/OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs | |||
@@ -71,8 +71,8 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap | |||
71 | { | 71 | { |
72 | m_config = source; | 72 | m_config = source; |
73 | 73 | ||
74 | IConfig startupConfig = m_config.Configs["Startup"]; | 74 | if (Util.GetConfigVarFromSections<string>( |
75 | if (startupConfig.GetString("MapImageModule", "MapImageModule") != "Warp3DImageModule") | 75 | m_config, "MapImageModule", new string[] { "Startup", "Map" }, "MapImageModule") != "Warp3DImageModule") |
76 | return; | 76 | return; |
77 | 77 | ||
78 | m_Enabled = true; | 78 | m_Enabled = true; |
@@ -143,16 +143,12 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap | |||
143 | bool drawPrimVolume = true; | 143 | bool drawPrimVolume = true; |
144 | bool textureTerrain = true; | 144 | bool textureTerrain = true; |
145 | 145 | ||
146 | try | 146 | string[] configSections = new string[] { "Map", "Startup" }; |
147 | { | 147 | |
148 | IConfig startupConfig = m_config.Configs["Startup"]; | 148 | drawPrimVolume |
149 | drawPrimVolume = startupConfig.GetBoolean("DrawPrimOnMapTile", drawPrimVolume); | 149 | = Util.GetConfigVarFromSections<bool>(m_config, "DrawPrimOnMapTile", configSections, drawPrimVolume); |
150 | textureTerrain = startupConfig.GetBoolean("TextureOnMapTile", textureTerrain); | 150 | textureTerrain |
151 | } | 151 | = Util.GetConfigVarFromSections<bool>(m_config, "TextureOnMapTile", configSections, textureTerrain); |
152 | catch | ||
153 | { | ||
154 | m_log.Warn("[WARP 3D IMAGE MODULE]: Failed to load StartupConfig"); | ||
155 | } | ||
156 | 152 | ||
157 | m_colors.Clear(); | 153 | m_colors.Clear(); |
158 | 154 | ||
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs index e2f525c..912d50a 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs +++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs | |||
@@ -86,11 +86,14 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
86 | #region INonSharedRegionModule Members | 86 | #region INonSharedRegionModule Members |
87 | public virtual void Initialise (IConfigSource config) | 87 | public virtual void Initialise (IConfigSource config) |
88 | { | 88 | { |
89 | IConfig startupConfig = config.Configs["Startup"]; | 89 | string[] configSections = new string[] { "Map", "Startup" }; |
90 | if (startupConfig.GetString("WorldMapModule", "WorldMap") == "WorldMap") | 90 | |
91 | if (Util.GetConfigVarFromSections<string>( | ||
92 | config, "WorldMapModule", configSections, "WorldMap") == "WorldMap") | ||
91 | m_Enabled = true; | 93 | m_Enabled = true; |
92 | 94 | ||
93 | blacklistTimeout = startupConfig.GetInt("BlacklistTimeout", 10*60) * 1000; | 95 | blacklistTimeout |
96 | = Util.GetConfigVarFromSections<int>(config, "BlacklistTimeout", configSections, 10 * 60) * 1000; | ||
94 | } | 97 | } |
95 | 98 | ||
96 | public virtual void AddRegion (Scene scene) | 99 | public virtual void AddRegion (Scene scene) |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 9b17b7f..5b61538 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -897,7 +897,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
897 | 897 | ||
898 | m_strictAccessControl = startupConfig.GetBoolean("StrictAccessControl", m_strictAccessControl); | 898 | m_strictAccessControl = startupConfig.GetBoolean("StrictAccessControl", m_strictAccessControl); |
899 | 899 | ||
900 | m_generateMaptiles = startupConfig.GetBoolean("GenerateMaptiles", true); | 900 | string[] possibleMapConfigSections = new string[] { "Map", "Startup" }; |
901 | |||
902 | m_generateMaptiles | ||
903 | = Util.GetConfigVarFromSections<bool>(config, "GenerateMaptiles", possibleMapConfigSections, true); | ||
904 | |||
901 | if (m_generateMaptiles) | 905 | if (m_generateMaptiles) |
902 | { | 906 | { |
903 | int maptileRefresh = startupConfig.GetInt("MaptileRefresh", 0); | 907 | int maptileRefresh = startupConfig.GetInt("MaptileRefresh", 0); |
@@ -911,7 +915,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
911 | } | 915 | } |
912 | else | 916 | else |
913 | { | 917 | { |
914 | string tile = startupConfig.GetString("MaptileStaticUUID", UUID.Zero.ToString()); | 918 | string tile |
919 | = Util.GetConfigVarFromSections<string>( | ||
920 | config, "MaptileStaticUUID", possibleMapConfigSections, UUID.Zero.ToString()); | ||
921 | |||
915 | UUID tileID; | 922 | UUID tileID; |
916 | 923 | ||
917 | if (tile != UUID.Zero.ToString() && UUID.TryParse(tile, out tileID)) | 924 | if (tile != UUID.Zero.ToString() && UUID.TryParse(tile, out tileID)) |