aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDiva Canto2010-06-05 09:39:09 -0700
committerDiva Canto2010-06-05 09:39:09 -0700
commitab3afd5f42593cb6f5475af36accdd1f01962fd1 (patch)
tree797ef9fc37879e0602545aee76e1789fadd3ed17
parentBug fix: update the list of friends upon MakeRoot, because child agents don't... (diff)
downloadopensim-SC-ab3afd5f42593cb6f5475af36accdd1f01962fd1.zip
opensim-SC-ab3afd5f42593cb6f5475af36accdd1f01962fd1.tar.gz
opensim-SC-ab3afd5f42593cb6f5475af36accdd1f01962fd1.tar.bz2
opensim-SC-ab3afd5f42593cb6f5475af36accdd1f01962fd1.tar.xz
* Bug fix in TP home: typo in unpacking of GridUserInfo.
* Bug fix in TPs across neighboring regions: bug was introduced when getting rid of crashed sessions.
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs11
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs2
-rw-r--r--OpenSim/Services/Connectors/GridUser/GridUserServiceConnector.cs2
-rw-r--r--OpenSim/Services/Interfaces/IGridUserService.cs2
4 files changed, 14 insertions, 3 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index ef37f63..1e3e0c9 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -410,6 +410,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
410 teleportFlags, capsPath); 410 teleportFlags, capsPath);
411 } 411 }
412 412
413 // Let's set this to true tentatively. This does not trigger OnChildAgent
414 sp.IsChildAgent = true;
415
413 // TeleportFinish makes the client send CompleteMovementIntoRegion (at the destination), which 416 // TeleportFinish makes the client send CompleteMovementIntoRegion (at the destination), which
414 // trigers a whole shebang of things there, including MakeRoot. So let's wait for confirmation 417 // trigers a whole shebang of things there, including MakeRoot. So let's wait for confirmation
415 // that the client contacted the destination before we send the attachments and close things here. 418 // that the client contacted the destination before we send the attachments and close things here.
@@ -418,6 +421,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
418 // Client never contacted destination. Let's restore everything back 421 // Client never contacted destination. Let's restore everything back
419 sp.ControllingClient.SendTeleportFailed("Problems connecting to destination."); 422 sp.ControllingClient.SendTeleportFailed("Problems connecting to destination.");
420 423
424 // Fail. Reset it back
425 sp.IsChildAgent = false;
426
421 ResetFromTransit(sp.UUID); 427 ResetFromTransit(sp.UUID);
422 428
423 // Yikes! We should just have a ref to scene here. 429 // Yikes! We should just have a ref to scene here.
@@ -436,7 +442,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
436 442
437 KillEntity(sp.Scene, sp.LocalId); 443 KillEntity(sp.Scene, sp.LocalId);
438 444
445 // Now let's make it officially a child agent
439 sp.MakeChildAgent(); 446 sp.MakeChildAgent();
447
440 // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone 448 // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone
441 449
442 if (NeedsClosing(oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) 450 if (NeedsClosing(oldRegionX, newRegionX, oldRegionY, newRegionY, reg))
@@ -538,6 +546,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
538 client.SendTeleportFailed("Your home region could not be found."); 546 client.SendTeleportFailed("Your home region could not be found.");
539 return; 547 return;
540 } 548 }
549 m_log.DebugFormat("[ENTITY TRANSFER MODULE]: User's home region is {0} {1} ({2}-{3})",
550 regionInfo.RegionName, regionInfo.RegionID, regionInfo.RegionLocX / Constants.RegionSize, regionInfo.RegionLocY / Constants.RegionSize);
551
541 // a little eekie that this goes back to Scene and with a forced cast, will fix that at some point... 552 // a little eekie that this goes back to Scene and with a forced cast, will fix that at some point...
542 ((Scene)(client.Scene)).RequestTeleportLocation( 553 ((Scene)(client.Scene)).RequestTeleportLocation(
543 client, regionInfo.RegionHandle, uinfo.HomePosition, uinfo.HomeLookAt, 554 client, regionInfo.RegionHandle, uinfo.HomePosition, uinfo.HomeLookAt,
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 6300665..3948f14 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -3990,7 +3990,9 @@ namespace OpenSim.Region.Framework.Scenes
3990 // bordercross if position is outside of region 3990 // bordercross if position is outside of region
3991 3991
3992 if (!result) 3992 if (!result)
3993 {
3993 regionHandle = m_regInfo.RegionHandle; 3994 regionHandle = m_regInfo.RegionHandle;
3995 }
3994 else 3996 else
3995 { 3997 {
3996 // not in this region, undo the shift! 3998 // not in this region, undo the shift!
diff --git a/OpenSim/Services/Connectors/GridUser/GridUserServiceConnector.cs b/OpenSim/Services/Connectors/GridUser/GridUserServiceConnector.cs
index 600ddfd..935ebb1 100644
--- a/OpenSim/Services/Connectors/GridUser/GridUserServiceConnector.cs
+++ b/OpenSim/Services/Connectors/GridUser/GridUserServiceConnector.cs
@@ -206,9 +206,7 @@ namespace OpenSim.Services.Connectors
206 if ((replyData != null) && replyData.ContainsKey("result") && (replyData["result"] != null)) 206 if ((replyData != null) && replyData.ContainsKey("result") && (replyData["result"] != null))
207 { 207 {
208 if (replyData["result"] is Dictionary<string, object>) 208 if (replyData["result"] is Dictionary<string, object>)
209 {
210 guinfo = new GridUserInfo((Dictionary<string, object>)replyData["result"]); 209 guinfo = new GridUserInfo((Dictionary<string, object>)replyData["result"]);
211 }
212 } 210 }
213 211
214 return guinfo; 212 return guinfo;
diff --git a/OpenSim/Services/Interfaces/IGridUserService.cs b/OpenSim/Services/Interfaces/IGridUserService.cs
index e629dff..95ce5e8 100644
--- a/OpenSim/Services/Interfaces/IGridUserService.cs
+++ b/OpenSim/Services/Interfaces/IGridUserService.cs
@@ -65,7 +65,7 @@ namespace OpenSim.Services.Interfaces
65 Vector3.TryParse(kvp["HomeLookAt"].ToString(), out HomeLookAt); 65 Vector3.TryParse(kvp["HomeLookAt"].ToString(), out HomeLookAt);
66 66
67 if (kvp.ContainsKey("LastRegionID")) 67 if (kvp.ContainsKey("LastRegionID"))
68 UUID.TryParse(kvp["LastRegionID"].ToString(), out HomeRegionID); 68 UUID.TryParse(kvp["LastRegionID"].ToString(), out LastRegionID);
69 if (kvp.ContainsKey("LastPosition")) 69 if (kvp.ContainsKey("LastPosition"))
70 Vector3.TryParse(kvp["LastPosition"].ToString(), out LastPosition); 70 Vector3.TryParse(kvp["LastPosition"].ToString(), out LastPosition);
71 if (kvp.ContainsKey("LastLookAt")) 71 if (kvp.ContainsKey("LastLookAt"))