diff options
author | Kevin Houlihan & Michelle Argus | 2011-09-21 22:46:14 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-09-24 01:59:02 +0100 |
commit | 39d7945efc8daa6e5cd0f4728b499e7a624526cd (patch) | |
tree | efa8a8e1c77aecb540f35209fee39b6c4f778298 | |
parent | Don't try and resolve user account for authorization if the agent has come in... (diff) | |
download | opensim-SC_OLD-39d7945efc8daa6e5cd0f4728b499e7a624526cd.zip opensim-SC_OLD-39d7945efc8daa6e5cd0f4728b499e7a624526cd.tar.gz opensim-SC_OLD-39d7945efc8daa6e5cd0f4728b499e7a624526cd.tar.bz2 opensim-SC_OLD-39d7945efc8daa6e5cd0f4728b499e7a624526cd.tar.xz |
Added a setting to [Startup] section of config that will allow the simulator to start up with no regions configured.
I added the boolean config setting "allow_regionless", defaulting to false. If set to true, opensim will start up ok if no region configurations are found in the specified region_info_source. It will not ask the user to create a region.
6 files changed, 67 insertions, 24 deletions
diff --git a/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs b/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs index 0aae4ff..8332c14 100644 --- a/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs +++ b/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs | |||
@@ -48,11 +48,13 @@ namespace OpenSim.Framework.RegionLoader.Filesystem | |||
48 | public RegionInfo[] LoadRegions() | 48 | public RegionInfo[] LoadRegions() |
49 | { | 49 | { |
50 | string regionConfigPath = Path.Combine(Util.configDir(), "Regions"); | 50 | string regionConfigPath = Path.Combine(Util.configDir(), "Regions"); |
51 | bool allowRegionless = false; | ||
51 | 52 | ||
52 | try | 53 | try |
53 | { | 54 | { |
54 | IConfig startupConfig = (IConfig)m_configSource.Configs["Startup"]; | 55 | IConfig startupConfig = (IConfig)m_configSource.Configs["Startup"]; |
55 | regionConfigPath = startupConfig.GetString("regionload_regionsdir", regionConfigPath).Trim(); | 56 | regionConfigPath = startupConfig.GetString("regionload_regionsdir", regionConfigPath).Trim(); |
57 | allowRegionless = startupConfig.GetBoolean("allow_regionless", false); | ||
56 | } | 58 | } |
57 | catch (Exception) | 59 | catch (Exception) |
58 | { | 60 | { |
@@ -68,7 +70,7 @@ namespace OpenSim.Framework.RegionLoader.Filesystem | |||
68 | string[] iniFiles = Directory.GetFiles(regionConfigPath, "*.ini"); | 70 | string[] iniFiles = Directory.GetFiles(regionConfigPath, "*.ini"); |
69 | 71 | ||
70 | // Create an empty Regions.ini if there are no existing config files. | 72 | // Create an empty Regions.ini if there are no existing config files. |
71 | if (configFiles.Length == 0 && iniFiles.Length == 0) | 73 | if (!allowRegionless && configFiles.Length == 0 && iniFiles.Length == 0) |
72 | { | 74 | { |
73 | new RegionInfo("DEFAULT REGION CONFIG", Path.Combine(regionConfigPath, "Regions.ini"), false, m_configSource); | 75 | new RegionInfo("DEFAULT REGION CONFIG", Path.Combine(regionConfigPath, "Regions.ini"), false, m_configSource); |
74 | iniFiles = Directory.GetFiles(regionConfigPath, "*.ini"); | 76 | iniFiles = Directory.GetFiles(regionConfigPath, "*.ini"); |
diff --git a/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs b/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs index de4898a..a2f5d9c 100644 --- a/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs +++ b/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs | |||
@@ -57,6 +57,8 @@ namespace OpenSim.Framework.RegionLoader.Web | |||
57 | { | 57 | { |
58 | IConfig startupConfig = (IConfig) m_configSource.Configs["Startup"]; | 58 | IConfig startupConfig = (IConfig) m_configSource.Configs["Startup"]; |
59 | string url = startupConfig.GetString("regionload_webserver_url", String.Empty).Trim(); | 59 | string url = startupConfig.GetString("regionload_webserver_url", String.Empty).Trim(); |
60 | bool allowRegionless = startupConfig.GetBoolean("allow_regionless", false); | ||
61 | |||
60 | if (url == String.Empty) | 62 | if (url == String.Empty) |
61 | { | 63 | { |
62 | m_log.Error("[WEBLOADER]: Unable to load webserver URL - URL was empty."); | 64 | m_log.Error("[WEBLOADER]: Unable to load webserver URL - URL was empty."); |
@@ -64,37 +66,63 @@ namespace OpenSim.Framework.RegionLoader.Web | |||
64 | } | 66 | } |
65 | else | 67 | else |
66 | { | 68 | { |
69 | RegionInfo[] regionInfos = new RegionInfo[] {}; | ||
70 | int regionCount = 0; | ||
67 | HttpWebRequest webRequest = (HttpWebRequest) WebRequest.Create(url); | 71 | HttpWebRequest webRequest = (HttpWebRequest) WebRequest.Create(url); |
68 | webRequest.Timeout = 30000; //30 Second Timeout | 72 | webRequest.Timeout = 30000; //30 Second Timeout |
69 | m_log.DebugFormat("[WEBLOADER]: Sending download request to {0}", url); | 73 | m_log.DebugFormat("[WEBLOADER]: Sending download request to {0}", url); |
70 | HttpWebResponse webResponse = (HttpWebResponse) webRequest.GetResponse(); | 74 | |
71 | m_log.Debug("[WEBLOADER]: Downloading region information..."); | 75 | try |
72 | StreamReader reader = new StreamReader(webResponse.GetResponseStream()); | ||
73 | string xmlSource = String.Empty; | ||
74 | string tempStr = reader.ReadLine(); | ||
75 | while (tempStr != null) | ||
76 | { | 76 | { |
77 | xmlSource = xmlSource + tempStr; | 77 | HttpWebResponse webResponse = (HttpWebResponse) webRequest.GetResponse(); |
78 | tempStr = reader.ReadLine(); | 78 | m_log.Debug("[WEBLOADER]: Downloading region information..."); |
79 | StreamReader reader = new StreamReader(webResponse.GetResponseStream()); | ||
80 | string xmlSource = String.Empty; | ||
81 | string tempStr = reader.ReadLine(); | ||
82 | while (tempStr != null) | ||
83 | { | ||
84 | xmlSource = xmlSource + tempStr; | ||
85 | tempStr = reader.ReadLine(); | ||
86 | } | ||
87 | m_log.Debug("[WEBLOADER]: Done downloading region information from server. Total Bytes: " + | ||
88 | xmlSource.Length); | ||
89 | XmlDocument xmlDoc = new XmlDocument(); | ||
90 | xmlDoc.LoadXml(xmlSource); | ||
91 | if (xmlDoc.FirstChild.Name == "Regions") | ||
92 | { | ||
93 | regionCount = xmlDoc.FirstChild.ChildNodes.Count; | ||
94 | |||
95 | if (regionCount > 0) | ||
96 | { | ||
97 | regionInfos = new RegionInfo[regionCount]; | ||
98 | int i; | ||
99 | for (i = 0; i < xmlDoc.FirstChild.ChildNodes.Count; i++) | ||
100 | { | ||
101 | m_log.Debug(xmlDoc.FirstChild.ChildNodes[i].OuterXml); | ||
102 | regionInfos[i] = | ||
103 | new RegionInfo("REGION CONFIG #" + (i + 1), xmlDoc.FirstChild.ChildNodes[i],false,m_configSource); | ||
104 | } | ||
105 | } | ||
106 | } | ||
79 | } | 107 | } |
80 | m_log.Debug("[WEBLOADER]: Done downloading region information from server. Total Bytes: " + | 108 | catch (WebException ex) |
81 | xmlSource.Length); | ||
82 | XmlDocument xmlDoc = new XmlDocument(); | ||
83 | xmlDoc.LoadXml(xmlSource); | ||
84 | if (xmlDoc.FirstChild.Name == "Regions") | ||
85 | { | 109 | { |
86 | RegionInfo[] regionInfos = new RegionInfo[xmlDoc.FirstChild.ChildNodes.Count]; | 110 | if (((HttpWebResponse)ex.Response).StatusCode == HttpStatusCode.NotFound) |
87 | int i; | ||
88 | for (i = 0; i < xmlDoc.FirstChild.ChildNodes.Count; i++) | ||
89 | { | 111 | { |
90 | m_log.Debug(xmlDoc.FirstChild.ChildNodes[i].OuterXml); | 112 | if (!allowRegionless) |
91 | regionInfos[i] = | 113 | throw ex; |
92 | new RegionInfo("REGION CONFIG #" + (i + 1), xmlDoc.FirstChild.ChildNodes[i],false,m_configSource); | ||
93 | } | 114 | } |
115 | else | ||
116 | throw ex; | ||
117 | } | ||
94 | 118 | ||
119 | if (regionCount > 0 | allowRegionless) | ||
95 | return regionInfos; | 120 | return regionInfos; |
121 | else | ||
122 | { | ||
123 | m_log.Error("[WEBLOADER]: No region configs were available."); | ||
124 | return null; | ||
96 | } | 125 | } |
97 | return null; | ||
98 | } | 126 | } |
99 | } | 127 | } |
100 | } | 128 | } |
diff --git a/OpenSim/Region/CoreModules/Scripting/LoadImageURL/LoadImageURLModule.cs b/OpenSim/Region/CoreModules/Scripting/LoadImageURL/LoadImageURLModule.cs index ed3e516..6f83948 100644 --- a/OpenSim/Region/CoreModules/Scripting/LoadImageURL/LoadImageURLModule.cs +++ b/OpenSim/Region/CoreModules/Scripting/LoadImageURL/LoadImageURLModule.cs | |||
@@ -112,10 +112,13 @@ namespace OpenSim.Region.CoreModules.Scripting.LoadImageURL | |||
112 | 112 | ||
113 | public void PostInitialise() | 113 | public void PostInitialise() |
114 | { | 114 | { |
115 | m_textureManager = m_scene.RequestModuleInterface<IDynamicTextureManager>(); | 115 | if (m_scene != null) |
116 | if (m_textureManager != null) | ||
117 | { | 116 | { |
118 | m_textureManager.RegisterRender(GetContentType(), this); | 117 | m_textureManager = m_scene.RequestModuleInterface<IDynamicTextureManager>(); |
118 | if (m_textureManager != null) | ||
119 | { | ||
120 | m_textureManager.RegisterRender(GetContentType(), this); | ||
121 | } | ||
119 | } | 122 | } |
120 | } | 123 | } |
121 | 124 | ||
diff --git a/OpenSim/Tools/Configger/ConfigurationLoader.cs b/OpenSim/Tools/Configger/ConfigurationLoader.cs index 3914652..28bcc99 100644 --- a/OpenSim/Tools/Configger/ConfigurationLoader.cs +++ b/OpenSim/Tools/Configger/ConfigurationLoader.cs | |||
@@ -233,6 +233,7 @@ namespace OpenSim.Tools.Configger | |||
233 | config = defaultConfig.AddConfig("Startup"); | 233 | config = defaultConfig.AddConfig("Startup"); |
234 | 234 | ||
235 | config.Set("region_info_source", "filesystem"); | 235 | config.Set("region_info_source", "filesystem"); |
236 | config.Set("allow_regionless", false); | ||
236 | 237 | ||
237 | config.Set("gridmode", false); | 238 | config.Set("gridmode", false); |
238 | config.Set("physics", "OpenDynamicsEngine"); | 239 | config.Set("physics", "OpenDynamicsEngine"); |
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index 57a2e06..ce86d56 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example | |||
@@ -71,6 +71,11 @@ | |||
71 | ;; in a <Regions> tag. | 71 | ;; in a <Regions> tag. |
72 | ; regionload_webserver_url = "http://example.com/regions.xml"; | 72 | ; regionload_webserver_url = "http://example.com/regions.xml"; |
73 | 73 | ||
74 | ;# {allow_regionless} {} {Allow simulator to start up with no regions configured.} {true false} false | ||
75 | ;; Allow the simulator to start up if there are no region configuration available | ||
76 | ;; from the selected region_info_source. | ||
77 | ; allow_regionless = false | ||
78 | |||
74 | ;# {NonPhysicalPrimMax} {} {Maximum size of nonphysical prims?} {} 256 | 79 | ;# {NonPhysicalPrimMax} {} {Maximum size of nonphysical prims?} {} 256 |
75 | ;; Maximum size for non-physical prims. Affects resizing of existing prims. This can be overriden in the region config file (as NonphysicalPrimMax!). | 80 | ;; Maximum size for non-physical prims. Affects resizing of existing prims. This can be overriden in the region config file (as NonphysicalPrimMax!). |
76 | ; NonPhysicalPrimMax = 256 | 81 | ; NonPhysicalPrimMax = 256 |
diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini index f5d7f4a..a456f4d 100644 --- a/bin/OpenSimDefaults.ini +++ b/bin/OpenSimDefaults.ini | |||
@@ -70,6 +70,10 @@ | |||
70 | ; except that everything is also enclosed in a <Regions> tag. | 70 | ; except that everything is also enclosed in a <Regions> tag. |
71 | ; regionload_webserver_url = "http://example.com/regions.xml"; | 71 | ; regionload_webserver_url = "http://example.com/regions.xml"; |
72 | 72 | ||
73 | ;; Allow the simulator to start up if there are no region configuration available | ||
74 | ;; from the selected region_info_source. | ||
75 | allow_regionless = false | ||
76 | |||
73 | ; Maximum size of non physical prims. Affects resizing of existing prims. This can be overriden in the region config file (as NonphysicalPrimMax!). | 77 | ; Maximum size of non physical prims. Affects resizing of existing prims. This can be overriden in the region config file (as NonphysicalPrimMax!). |
74 | NonPhysicalPrimMax = 256 | 78 | NonPhysicalPrimMax = 256 |
75 | 79 | ||