aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorTeravus Ovares2007-12-12 00:38:57 +0000
committerTeravus Ovares2007-12-12 00:38:57 +0000
commit9abe4b2ebf537d32b0b01d404497f290a4f4f806 (patch)
tree63c12f570f5e82ccc54b99a805c41ce84abeba65 /OpenSim/Region
parentput in a try block to catch the ForEach loop dying. (diff)
downloadopensim-SC-9abe4b2ebf537d32b0b01d404497f290a4f4f806.zip
opensim-SC-9abe4b2ebf537d32b0b01d404497f290a4f4f806.tar.gz
opensim-SC-9abe4b2ebf537d32b0b01d404497f290a4f4f806.tar.bz2
opensim-SC-9abe4b2ebf537d32b0b01d404497f290a4f4f806.tar.xz
* Start listening for client connections immediately after a region initializes during initial instance startup. (as opposed to waiting for 'all of the regions' to initialize first)
* Removed hackish timer based client notification about regions up (no longer needed) * Added a comment about an inventory based login failure that causes me lots of greif testing and debugging. Comment includes *why* it's failing.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Application/OpenSimMain.cs13
-rw-r--r--OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs1
-rw-r--r--OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs9
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs26
4 files changed, 34 insertions, 15 deletions
diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs
index 88a7bc2..1471f89 100644
--- a/OpenSim/Region/Application/OpenSimMain.cs
+++ b/OpenSim/Region/Application/OpenSimMain.cs
@@ -338,10 +338,10 @@ namespace OpenSim
338 } 338 }
339 339
340 // Start UDP servers 340 // Start UDP servers
341 for (int i = 0; i < m_udpServers.Count; i++) 341 //for (int i = 0; i < m_udpServers.Count; i++)
342 { 342 //{
343 m_udpServers[i].ServerListener(); 343 // m_udpServers[i].ServerListener();
344 } 344 // }
345 345
346 //Run Startup Commands 346 //Run Startup Commands
347 if (m_startupCommandsFile != "") 347 if (m_startupCommandsFile != "")
@@ -385,6 +385,7 @@ namespace OpenSim
385 385
386 m_udpServers.Add(udpServer); 386 m_udpServers.Add(udpServer);
387 m_regionData.Add(regionInfo); 387 m_regionData.Add(regionInfo);
388 udpServer.ServerListener();
388 389
389 return udpServer; 390 return udpServer;
390 } 391 }
@@ -484,7 +485,7 @@ namespace OpenSim
484 m_regionData.RemoveAt(RegionHandleElement); 485 m_regionData.RemoveAt(RegionHandleElement);
485 } 486 }
486 UDPServer restartingRegion = CreateRegion(whichRegion); 487 UDPServer restartingRegion = CreateRegion(whichRegion);
487 restartingRegion.ServerListener(); 488 //restartingRegion.ServerListener();
488 //m_sceneManager.SendSimOnlineNotification(restartingRegion.RegionHandle); 489 //m_sceneManager.SendSimOnlineNotification(restartingRegion.RegionHandle);
489 } 490 }
490 491
@@ -757,7 +758,7 @@ namespace OpenSim
757 break; 758 break;
758 759
759 case "create-region": 760 case "create-region":
760 CreateRegion(new RegionInfo(cmdparams[0], "Regions/" + cmdparams[1])).ServerListener(); 761 CreateRegion(new RegionInfo(cmdparams[0], "Regions/" + cmdparams[1]));
761 break; 762 break;
762 763
763 case "remove-region": 764 case "remove-region":
diff --git a/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs b/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs
index 99d1b0f..6edb149 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs
@@ -65,6 +65,7 @@ namespace OpenSim.Region.Communications.OGS1
65 { 65 {
66 RestObjectPosterResponse<InventoryCollection> requester = new RestObjectPosterResponse<InventoryCollection>(); 66 RestObjectPosterResponse<InventoryCollection> requester = new RestObjectPosterResponse<InventoryCollection>();
67 requester.ResponseCallback = InventoryResponse; 67 requester.ResponseCallback = InventoryResponse;
68 // THIS SHOULD BE A Guid, NOT A LLUUID! No longer Serializable! This will fail EVERY TIME.
68 requester.BeginPostObject<LLUUID>(_inventoryServerUrl + "/GetInventory/", userID); 69 requester.BeginPostObject<LLUUID>(_inventoryServerUrl + "/GetInventory/", userID);
69 } 70 }
70 catch (Exception) 71 catch (Exception)
diff --git a/OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs b/OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs
index 979df59..86ddfaf 100644
--- a/OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs
+++ b/OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs
@@ -55,7 +55,14 @@ namespace OpenSim.Region.Environment.Modules
55 byte[] visualParams; 55 byte[] visualParams;
56 GetDefaultAvatarAppearance(out wearables, out visualParams); 56 GetDefaultAvatarAppearance(out wearables, out visualParams);
57 appearance = new AvatarAppearance(avatarId, wearables, visualParams); 57 appearance = new AvatarAppearance(avatarId, wearables, visualParams);
58 m_avatarsAppearance[avatarId] = appearance; 58 try
59 {
60 m_avatarsAppearance[avatarId] = appearance;
61 }
62 catch (System.NullReferenceException)
63 {
64 OpenSim.Framework.Console.MainLog.Instance.Error("AVATAR", "Unable to load appearance for uninitialized avatar");
65 }
59 return true; 66 return true;
60 } 67 }
61 } 68 }
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index fef02f0..f2b5643 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -313,17 +313,27 @@ namespace OpenSim.Region.Environment.Scenes
313 } 313 }
314 if ((Math.Abs(otherRegion.RegionLocX - RegionInfo.RegionLocX) <= 1) && (Math.Abs(otherRegion.RegionLocY - RegionInfo.RegionLocY) <= 1)) 314 if ((Math.Abs(otherRegion.RegionLocX - RegionInfo.RegionLocX) <= 1) && (Math.Abs(otherRegion.RegionLocY - RegionInfo.RegionLocY) <= 1))
315 { 315 {
316 lock (m_regionRestartNotifyList) 316 try
317 { 317 {
318 if (!(m_regionRestartNotifyList.Contains(otherRegion)))
319 {
320 m_regionRestartNotifyList.Add(otherRegion);
321 318
322 m_restartWaitTimer.Interval = 50000; 319 ForEachScenePresence(delegate(ScenePresence agent)
323 m_restartWaitTimer.AutoReset = false; 320 {
324 m_restartWaitTimer.Elapsed += new ElapsedEventHandler(RestartNotifyWaitElapsed); 321 // If agent is a root agent.
325 m_restartWaitTimer.Start(); 322 if (!agent.IsChildAgent)
323 {
324 //agent.ControllingClient.new
325 //this.CommsManager.InterRegion.InformRegionOfChildAgent(otherRegion.RegionHandle, agent.ControllingClient.RequestClientInfo());
326 InformClientOfNeighbor(agent, otherRegion);
327 }
326 } 328 }
329
330 );
331 }
332 catch (System.NullReferenceException)
333 {
334 // This means that we're not booted up completely yet.
335 // This shouldn't happen too often anymore.
336 MainLog.Instance.Error("SCENE", "Couldn't inform client of regionup because we got a null reference exception");
327 } 337 }
328 } 338 }
329 else 339 else