aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorKevin Houlihan & Michelle Argus2011-09-21 22:46:14 +0100
committerJustin Clark-Casey (justincc)2011-09-24 01:59:02 +0100
commit39d7945efc8daa6e5cd0f4728b499e7a624526cd (patch)
treeefa8a8e1c77aecb540f35209fee39b6c4f778298
parentDon't try and resolve user account for authorization if the agent has come in... (diff)
downloadopensim-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.
-rw-r--r--OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs4
-rw-r--r--OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs68
-rw-r--r--OpenSim/Region/CoreModules/Scripting/LoadImageURL/LoadImageURLModule.cs9
-rw-r--r--OpenSim/Tools/Configger/ConfigurationLoader.cs1
-rw-r--r--bin/OpenSim.ini.example5
-rw-r--r--bin/OpenSimDefaults.ini4
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