aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Application
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Application')
-rw-r--r--OpenSim/Region/Application/Application.cs2
-rw-r--r--OpenSim/Region/Application/HGCommands.cs215
-rw-r--r--OpenSim/Region/Application/OpenSim.cs14
-rw-r--r--OpenSim/Region/Application/OpenSimBase.cs26
4 files changed, 22 insertions, 235 deletions
diff --git a/OpenSim/Region/Application/Application.cs b/OpenSim/Region/Application/Application.cs
index 2fd26bf..241af53 100644
--- a/OpenSim/Region/Application/Application.cs
+++ b/OpenSim/Region/Application/Application.cs
@@ -91,7 +91,7 @@ namespace OpenSim
91 m_log.Info("[OPENSIM MAIN]: configured log4net using default OpenSim.exe.config"); 91 m_log.Info("[OPENSIM MAIN]: configured log4net using default OpenSim.exe.config");
92 } 92 }
93 93
94 // Check if the system is compatible with OpenSimulator. 94 // Check if the system is compatible with OpenSimulator.
95 // Ensures that the minimum system requirements are met 95 // Ensures that the minimum system requirements are met
96 m_log.Info("Performing compatibility checks... "); 96 m_log.Info("Performing compatibility checks... ");
97 string supported = String.Empty; 97 string supported = String.Empty;
diff --git a/OpenSim/Region/Application/HGCommands.cs b/OpenSim/Region/Application/HGCommands.cs
index 1786e54..f503db7 100644
--- a/OpenSim/Region/Application/HGCommands.cs
+++ b/OpenSim/Region/Application/HGCommands.cs
@@ -43,16 +43,11 @@ namespace OpenSim
43 public class HGCommands 43 public class HGCommands
44 { 44 {
45 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 45 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
46 public static IHyperlink HGServices = null;
47
48 private static uint m_autoMappingX = 0;
49 private static uint m_autoMappingY = 0;
50 private static bool m_enableAutoMapping = false;
51 46
52 public static Scene CreateScene(RegionInfo regionInfo, AgentCircuitManager circuitManager, CommunicationsManager m_commsManager, 47 public static Scene CreateScene(RegionInfo regionInfo, AgentCircuitManager circuitManager, CommunicationsManager m_commsManager,
53 StorageManager storageManager, ModuleLoader m_moduleLoader, ConfigSettings m_configSettings, OpenSimConfigSource m_config, string m_version) 48 StorageManager storageManager, ModuleLoader m_moduleLoader, ConfigSettings m_configSettings, OpenSimConfigSource m_config, string m_version)
54 { 49 {
55 HGSceneCommunicationService sceneGridService = new HGSceneCommunicationService(m_commsManager, HGServices); 50 HGSceneCommunicationService sceneGridService = new HGSceneCommunicationService(m_commsManager);
56 51
57 return 52 return
58 new HGScene( 53 new HGScene(
@@ -61,213 +56,5 @@ namespace OpenSim
61 m_configSettings.See_into_region_from_neighbor, m_config.Source, m_version); 56 m_configSettings.See_into_region_from_neighbor, m_config.Source, m_version);
62 } 57 }
63 58
64 public static void RunHGCommand(string command, string[] cmdparams, Scene scene)
65 {
66 if (command.Equals("link-mapping"))
67 {
68 if (cmdparams.Length == 2)
69 {
70 try
71 {
72 m_autoMappingX = Convert.ToUInt32(cmdparams[0]);
73 m_autoMappingY = Convert.ToUInt32(cmdparams[1]);
74 m_enableAutoMapping = true;
75 }
76 catch (Exception)
77 {
78 m_autoMappingX = 0;
79 m_autoMappingY = 0;
80 m_enableAutoMapping = false;
81 }
82 }
83 }
84 else if (command.Equals("link-region"))
85 {
86 if (cmdparams.Length < 3)
87 {
88 if ((cmdparams.Length == 1) || (cmdparams.Length == 2))
89 {
90 LoadXmlLinkFile(cmdparams, scene);
91 }
92 else
93 {
94 LinkRegionCmdUsage();
95 }
96 return;
97 }
98
99 if (cmdparams[2].Contains(":"))
100 {
101 // New format
102 uint xloc, yloc;
103 string mapName;
104 try
105 {
106 xloc = Convert.ToUInt32(cmdparams[0]);
107 yloc = Convert.ToUInt32(cmdparams[1]);
108 mapName = cmdparams[2];
109 if (cmdparams.Length > 3)
110 for (int i = 3; i < cmdparams.Length; i++)
111 mapName += " " + cmdparams[i];
112
113 m_log.Info(">> MapName: " + mapName);
114 //internalPort = Convert.ToUInt32(cmdparams[4]);
115 //remotingPort = Convert.ToUInt32(cmdparams[5]);
116 }
117 catch (Exception e)
118 {
119 m_log.Warn("[HGrid] Wrong format for link-region command: " + e.Message);
120 LinkRegionCmdUsage();
121 return;
122 }
123
124 HGHyperlink.TryLinkRegionToCoords(scene, null, mapName, xloc, yloc);
125 }
126 else
127 {
128 // old format
129 RegionInfo regInfo;
130 uint xloc, yloc;
131 uint externalPort;
132 string externalHostName;
133 try
134 {
135 xloc = Convert.ToUInt32(cmdparams[0]);
136 yloc = Convert.ToUInt32(cmdparams[1]);
137 externalPort = Convert.ToUInt32(cmdparams[3]);
138 externalHostName = cmdparams[2];
139 //internalPort = Convert.ToUInt32(cmdparams[4]);
140 //remotingPort = Convert.ToUInt32(cmdparams[5]);
141 }
142 catch (Exception e)
143 {
144 m_log.Warn("[HGrid] Wrong format for link-region command: " + e.Message);
145 LinkRegionCmdUsage();
146 return;
147 }
148
149 //if (TryCreateLink(xloc, yloc, externalPort, externalHostName, out regInfo))
150 if (HGHyperlink.TryCreateLink(scene, null, xloc, yloc, "", externalPort, externalHostName, out regInfo))
151 {
152 if (cmdparams.Length >= 5)
153 {
154 regInfo.RegionName = "";
155 for (int i = 4; i < cmdparams.Length; i++)
156 regInfo.RegionName += cmdparams[i] + " ";
157 }
158 }
159 }
160 return;
161 }
162 else if (command.Equals("unlink-region"))
163 {
164 if (cmdparams.Length < 1)
165 {
166 UnlinkRegionCmdUsage();
167 return;
168 }
169 if (HGHyperlink.TryUnlinkRegion(scene, cmdparams[0]))
170 m_log.InfoFormat("[HGrid]: Successfully unlinked {0}", cmdparams[0]);
171 else
172 m_log.InfoFormat("[HGrid]: Unable to unlink {0}, region not found", cmdparams[0]);
173 }
174 }
175
176 private static void LoadXmlLinkFile(string[] cmdparams, Scene scene)
177 {
178 //use http://www.hgurl.com/hypergrid.xml for test
179 try
180 {
181 XmlReader r = XmlReader.Create(cmdparams[0]);
182 XmlConfigSource cs = new XmlConfigSource(r);
183 string[] excludeSections = null;
184
185 if (cmdparams.Length == 2)
186 {
187 if (cmdparams[1].ToLower().StartsWith("excludelist:"))
188 {
189 string excludeString = cmdparams[1].ToLower();
190 excludeString = excludeString.Remove(0, 12);
191 char[] splitter = {';'};
192
193 excludeSections = excludeString.Split(splitter);
194 }
195 }
196
197 for (int i = 0; i < cs.Configs.Count; i++)
198 {
199 bool skip = false;
200 if ((excludeSections != null) && (excludeSections.Length > 0))
201 {
202 for (int n = 0; n < excludeSections.Length; n++)
203 {
204 if (excludeSections[n] == cs.Configs[i].Name.ToLower())
205 {
206 skip = true;
207 break;
208 }
209 }
210 }
211 if (!skip)
212 {
213 ReadLinkFromConfig(cs.Configs[i], scene);
214 }
215 }
216 }
217 catch (Exception e)
218 {
219 m_log.Error(e.ToString());
220 }
221 }
222
223
224 private static void ReadLinkFromConfig(IConfig config, Scene scene)
225 {
226 RegionInfo regInfo;
227 uint xloc, yloc;
228 uint externalPort;
229 string externalHostName;
230 uint realXLoc, realYLoc;
231
232 xloc = Convert.ToUInt32(config.GetString("xloc", "0"));
233 yloc = Convert.ToUInt32(config.GetString("yloc", "0"));
234 externalPort = Convert.ToUInt32(config.GetString("externalPort", "0"));
235 externalHostName = config.GetString("externalHostName", "");
236 realXLoc = Convert.ToUInt32(config.GetString("real-xloc", "0"));
237 realYLoc = Convert.ToUInt32(config.GetString("real-yloc", "0"));
238
239 if (m_enableAutoMapping)
240 {
241 xloc = (uint) ((xloc%100) + m_autoMappingX);
242 yloc = (uint) ((yloc%100) + m_autoMappingY);
243 }
244
245 if (((realXLoc == 0) && (realYLoc == 0)) ||
246 (((realXLoc - xloc < 3896) || (xloc - realXLoc < 3896)) &&
247 ((realYLoc - yloc < 3896) || (yloc - realYLoc < 3896))))
248 {
249 if (
250 HGHyperlink.TryCreateLink(scene, null, xloc, yloc, "", externalPort,
251 externalHostName, out regInfo))
252 {
253 regInfo.RegionName = config.GetString("localName", "");
254 }
255 }
256 }
257
258
259 private static void LinkRegionCmdUsage()
260 {
261 m_log.Info("Usage: link-region <Xloc> <Yloc> <HostName>:<HttpPort>[:<RemoteRegionName>]");
262 m_log.Info("Usage: link-region <Xloc> <Yloc> <HostName> <HttpPort> [<LocalName>]");
263 m_log.Info("Usage: link-region <URI_of_xml> [<exclude>]");
264 }
265
266 private static void UnlinkRegionCmdUsage()
267 {
268 m_log.Info("Usage: unlink-region <HostName>:<HttpPort>");
269 m_log.Info("Usage: unlink-region <LocalName>");
270 }
271
272 } 59 }
273} 60}
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs
index b23cdc3..4d8409bb 100644
--- a/OpenSim/Region/Application/OpenSim.cs
+++ b/OpenSim/Region/Application/OpenSim.cs
@@ -493,7 +493,7 @@ namespace OpenSim
493 { 493 {
494 if (cmd.Length < 4) 494 if (cmd.Length < 4)
495 { 495 {
496 m_log.Error("Usage: create region <region name> <region_file.xml>"); 496 m_log.Error("Usage: create region <region name> <region_file.ini>");
497 return; 497 return;
498 } 498 }
499 if (cmd[3].EndsWith(".xml")) 499 if (cmd[3].EndsWith(".xml"))
@@ -520,7 +520,7 @@ namespace OpenSim
520 } 520 }
521 else 521 else
522 { 522 {
523 m_log.Error("Usage: create region <region name> <region_file.xml>"); 523 m_log.Error("Usage: create region <region name> <region_file.ini>");
524 return; 524 return;
525 } 525 }
526 } 526 }
@@ -553,7 +553,7 @@ namespace OpenSim
553 /// <param name="cmd"></param> 553 /// <param name="cmd"></param>
554 private void HandleLoginStatus(string module, string[] cmd) 554 private void HandleLoginStatus(string module, string[] cmd)
555 { 555 {
556 if (m_commsManager.GridService.RegionLoginsEnabled == false) 556 if (m_sceneManager.CurrentOrFirstScene.SceneGridService.RegionLoginsEnabled == false)
557 557
558 m_log.Info("[ Login ] Login are disabled "); 558 m_log.Info("[ Login ] Login are disabled ");
559 else 559 else
@@ -1230,20 +1230,20 @@ namespace OpenSim
1230 protected void LoadOar(string module, string[] cmdparams) 1230 protected void LoadOar(string module, string[] cmdparams)
1231 { 1231 {
1232 try 1232 try
1233 { 1233 {
1234 if (cmdparams.Length > 2) 1234 if (cmdparams.Length > 2)
1235 { 1235 {
1236 m_sceneManager.LoadArchiveToCurrentScene(cmdparams[2]); 1236 m_sceneManager.LoadArchiveToCurrentScene(cmdparams[2]);
1237 } 1237 }
1238 else 1238 else
1239 { 1239 {
1240 m_sceneManager.LoadArchiveToCurrentScene(DEFAULT_OAR_BACKUP_FILENAME); 1240 m_sceneManager.LoadArchiveToCurrentScene(DEFAULT_OAR_BACKUP_FILENAME);
1241 } 1241 }
1242 } 1242 }
1243 catch (Exception e) 1243 catch (Exception e)
1244 { 1244 {
1245 m_log.Error(e.Message); 1245 m_log.Error(e.Message);
1246 } 1246 }
1247 } 1247 }
1248 1248
1249 /// <summary> 1249 /// <summary>
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index 6b6cb85..6e7a2a0 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -98,7 +98,7 @@ namespace OpenSim
98 98
99 /// <value> 99 /// <value>
100 /// The config information passed into the OpenSimulator region server. 100 /// The config information passed into the OpenSimulator region server.
101 /// </value> 101 /// </value>
102 public OpenSimConfigSource ConfigSource 102 public OpenSimConfigSource ConfigSource
103 { 103 {
104 get { return m_config; } 104 get { return m_config; }
@@ -209,9 +209,9 @@ namespace OpenSim
209 } 209 }
210 210
211 // Only enable logins to the regions once we have completely finished starting up (apart from scripts) 211 // Only enable logins to the regions once we have completely finished starting up (apart from scripts)
212 if ((m_commsManager != null) && (m_commsManager.GridService != null)) 212 if ((SceneManager.CurrentOrFirstScene != null) && (SceneManager.CurrentOrFirstScene.SceneGridService != null))
213 { 213 {
214 m_commsManager.GridService.RegionLoginsEnabled = true; 214 SceneManager.CurrentOrFirstScene.SceneGridService.RegionLoginsEnabled = true;
215 } 215 }
216 216
217 AddPluginCommands(); 217 AddPluginCommands();
@@ -299,12 +299,12 @@ namespace OpenSim
299 if (LoginEnabled) 299 if (LoginEnabled)
300 { 300 {
301 m_log.Info("[LOGIN]: Login is now enabled."); 301 m_log.Info("[LOGIN]: Login is now enabled.");
302 m_commsManager.GridService.RegionLoginsEnabled = true; 302 SceneManager.CurrentOrFirstScene.SceneGridService.RegionLoginsEnabled = true;
303 } 303 }
304 else 304 else
305 { 305 {
306 m_log.Info("[LOGIN]: Login is now disabled."); 306 m_log.Info("[LOGIN]: Login is now disabled.");
307 m_commsManager.GridService.RegionLoginsEnabled = false; 307 SceneManager.CurrentOrFirstScene.SceneGridService.RegionLoginsEnabled = false;
308 } 308 }
309 } 309 }
310 310
@@ -383,14 +383,14 @@ namespace OpenSim
383 383
384 scene.SetModuleInterfaces(); 384 scene.SetModuleInterfaces();
385 385
386 // Prims have to be loaded after module configuration since some modules may be invoked during the load 386 // Prims have to be loaded after module configuration since some modules may be invoked during the load
387 scene.LoadPrimsFromStorage(regionInfo.originRegionID); 387 scene.LoadPrimsFromStorage(regionInfo.originRegionID);
388 388
389 // moved these here as the terrain texture has to be created after the modules are initialized 389 // moved these here as the terrain texture has to be created after the modules are initialized
390 // and has to happen before the region is registered with the grid. 390 // and has to happen before the region is registered with the grid.
391 scene.CreateTerrainTexture(false); 391 scene.CreateTerrainTexture(false);
392 392
393 // TODO : Try setting resource for region xstats here on scene 393 // TODO : Try setting resource for region xstats here on scene
394 MainServer.Instance.AddStreamHandler(new Region.Framework.Scenes.RegionStatsHandler(regionInfo)); 394 MainServer.Instance.AddStreamHandler(new Region.Framework.Scenes.RegionStatsHandler(regionInfo));
395 395
396 try 396 try
@@ -399,7 +399,7 @@ namespace OpenSim
399 } 399 }
400 catch (Exception e) 400 catch (Exception e)
401 { 401 {
402 m_log.ErrorFormat("[STARTUP]: Registration of region with grid failed, aborting startup - {0}", e); 402 m_log.ErrorFormat("[STARTUP]: Registration of region with grid failed, aborting startup - {0}", e.StackTrace);
403 403
404 // Carrying on now causes a lot of confusion down the 404 // Carrying on now causes a lot of confusion down the
405 // line - we need to get the user's attention 405 // line - we need to get the user's attention
@@ -507,7 +507,7 @@ namespace OpenSim
507 /// Remove a region from the simulator without deleting it permanently. 507 /// Remove a region from the simulator without deleting it permanently.
508 /// </summary> 508 /// </summary>
509 /// <param name="scene"></param> 509 /// <param name="scene"></param>
510 /// <returns></returns> 510 /// <returns></returns>
511 public void CloseRegion(Scene scene) 511 public void CloseRegion(Scene scene)
512 { 512 {
513 // only need to check this if we are not at the 513 // only need to check this if we are not at the
@@ -526,7 +526,7 @@ namespace OpenSim
526 /// Remove a region from the simulator without deleting it permanently. 526 /// Remove a region from the simulator without deleting it permanently.
527 /// </summary> 527 /// </summary>
528 /// <param name="name"></param> 528 /// <param name="name"></param>
529 /// <returns></returns> 529 /// <returns></returns>
530 public void CloseRegion(string name) 530 public void CloseRegion(string name)
531 { 531 {
532 Scene target; 532 Scene target;
@@ -539,7 +539,7 @@ namespace OpenSim
539 /// </summary> 539 /// </summary>
540 /// <param name="regionInfo"></param> 540 /// <param name="regionInfo"></param>
541 /// <param name="clientServer"> </param> 541 /// <param name="clientServer"> </param>
542 /// <returns></returns> 542 /// <returns></returns>
543 protected Scene SetupScene(RegionInfo regionInfo, out IClientNetworkServer clientServer) 543 protected Scene SetupScene(RegionInfo regionInfo, out IClientNetworkServer clientServer)
544 { 544 {
545 return SetupScene(regionInfo, 0, null, out clientServer); 545 return SetupScene(regionInfo, 0, null, out clientServer);
@@ -750,7 +750,7 @@ namespace OpenSim
750 } 750 }
751 751
752 public string Path 752 public string Path
753 { 753 {
754 // This is for the OpenSimulator instance and is the osSecret hashed 754 // This is for the OpenSimulator instance and is the osSecret hashed
755 get { return "/" + osXStatsURI + "/"; } 755 get { return "/" + osXStatsURI + "/"; }
756 } 756 }
@@ -791,7 +791,7 @@ namespace OpenSim
791 } 791 }
792 792
793 public string Path 793 public string Path
794 { 794 {
795 // This is for the OpenSimulator instance and is the user provided URI 795 // This is for the OpenSimulator instance and is the user provided URI
796 get { return "/" + osUXStatsURI + "/"; } 796 get { return "/" + osUXStatsURI + "/"; }
797 } 797 }