aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie2013-01-08 13:57:45 +0100
committerMelanie2013-01-08 13:57:45 +0100
commitef8f03b711e7d15443b9f0a597632e75e3d86ddc (patch)
tree9c803c4c182b131a945a23e6baf3d7061b8d38a0
parent put back position and rot change check before sending releasing plane constrain (diff)
downloadopensim-SC-ef8f03b711e7d15443b9f0a597632e75e3d86ddc.zip
opensim-SC-ef8f03b711e7d15443b9f0a597632e75e3d86ddc.tar.gz
opensim-SC-ef8f03b711e7d15443b9f0a597632e75e3d86ddc.tar.bz2
opensim-SC-ef8f03b711e7d15443b9f0a597632e75e3d86ddc.tar.xz
Prevent avatar data from being sent during login when it's not valid and
crashes login on some viewers.
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs1
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs7
2 files changed, 6 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index c99e37e..23006f2 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -2977,6 +2977,7 @@ namespace OpenSim.Region.Framework.Scenes
2977 // start the scripts again (since this is done in RezAttachments()). 2977 // start the scripts again (since this is done in RezAttachments()).
2978 // XXX: This is convoluted. 2978 // XXX: This is convoluted.
2979 sp.IsChildAgent = false; 2979 sp.IsChildAgent = false;
2980 sp.IsLoggingIn = true;
2980 2981
2981 if (AttachmentsModule != null) 2982 if (AttachmentsModule != null)
2982 Util.FireAndForget(delegate(object o) { AttachmentsModule.RezAttachments(sp); }); 2983 Util.FireAndForget(delegate(object o) { AttachmentsModule.RezAttachments(sp); });
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index cdba282..48212d0 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -607,6 +607,7 @@ namespace OpenSim.Region.Framework.Scenes
607 } 607 }
608 608
609 public bool IsChildAgent { get; set; } 609 public bool IsChildAgent { get; set; }
610 public bool IsLoggingIn { get; set; }
610 611
611 /// <summary> 612 /// <summary>
612 /// If the avatar is sitting, the local ID of the prim that it's sitting on. If not sitting then zero. 613 /// If the avatar is sitting, the local ID of the prim that it's sitting on. If not sitting then zero.
@@ -743,6 +744,7 @@ namespace OpenSim.Region.Framework.Scenes
743 AttachmentsSyncLock = new Object(); 744 AttachmentsSyncLock = new Object();
744 AllowMovement = true; 745 AllowMovement = true;
745 IsChildAgent = true; 746 IsChildAgent = true;
747 IsLoggingIn = false;
746 m_sendCoarseLocationsMethod = SendCoarseLocationsDefault; 748 m_sendCoarseLocationsMethod = SendCoarseLocationsDefault;
747 Animator = new ScenePresenceAnimator(this); 749 Animator = new ScenePresenceAnimator(this);
748 PresenceType = type; 750 PresenceType = type;
@@ -915,6 +917,7 @@ namespace OpenSim.Region.Framework.Scenes
915 else 917 else
916 { 918 {
917 IsChildAgent = false; 919 IsChildAgent = false;
920 IsLoggingIn = false;
918 } 921 }
919 922
920 923
@@ -2541,13 +2544,13 @@ namespace OpenSim.Region.Framework.Scenes
2541 // NOTE: Velocity is not the same as m_velocity. Velocity will attempt to 2544 // NOTE: Velocity is not the same as m_velocity. Velocity will attempt to
2542 // grab the latest PhysicsActor velocity, whereas m_velocity is often 2545 // grab the latest PhysicsActor velocity, whereas m_velocity is often
2543 // storing a requested force instead of an actual traveling velocity 2546 // storing a requested force instead of an actual traveling velocity
2544 if (Appearance.AvatarSize != m_lastSize) 2547 if (Appearance.AvatarSize != m_lastSize && !IsLoggingIn)
2545 { 2548 {
2546 m_lastSize = Appearance.AvatarSize; 2549 m_lastSize = Appearance.AvatarSize;
2547 SendAvatarDataToAllAgents(); 2550 SendAvatarDataToAllAgents();
2548 } 2551 }
2549 2552
2550 else if (!Rotation.ApproxEquals(m_lastRotation, ROTATION_TOLERANCE) || 2553 if (!Rotation.ApproxEquals(m_lastRotation, ROTATION_TOLERANCE) ||
2551 !Velocity.ApproxEquals(m_lastVelocity, VELOCITY_TOLERANCE) || 2554 !Velocity.ApproxEquals(m_lastVelocity, VELOCITY_TOLERANCE) ||
2552 !m_pos.ApproxEquals(m_lastPosition, POSITION_TOLERANCE)) 2555 !m_pos.ApproxEquals(m_lastPosition, POSITION_TOLERANCE))
2553 { 2556 {