diff options
author | Teravus Ovares | 2007-12-12 00:38:57 +0000 |
---|---|---|
committer | Teravus Ovares | 2007-12-12 00:38:57 +0000 |
commit | 9abe4b2ebf537d32b0b01d404497f290a4f4f806 (patch) | |
tree | 63c12f570f5e82ccc54b99a805c41ce84abeba65 /OpenSim | |
parent | put in a try block to catch the ForEach loop dying. (diff) | |
download | opensim-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 '')
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 |