aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs3
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs17
2 files changed, 14 insertions, 6 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index f7bb817..8cac731 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -517,7 +517,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
517 /// </summary> 517 /// </summary>
518 public void Close(bool sendStop) 518 public void Close(bool sendStop)
519 { 519 {
520 IsActive = false;
521 // We lock here to prevent race conditions between two threads calling close simultaneously (e.g. 520 // We lock here to prevent race conditions between two threads calling close simultaneously (e.g.
522 // a simultaneous relog just as a client is being closed out due to no packet ack from the old connection. 521 // a simultaneous relog just as a client is being closed out due to no packet ack from the old connection.
523 lock (CloseSyncLock) 522 lock (CloseSyncLock)
@@ -552,8 +551,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
552 OutPacket(disable, ThrottleOutPacketType.Unknown); 551 OutPacket(disable, ThrottleOutPacketType.Unknown);
553 } 552 }
554 553
555 IsActive = false;
556
557 // Shutdown the image manager 554 // Shutdown the image manager
558 ImageManager.Close(); 555 ImageManager.Close();
559 556
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 3a28d42..3db7c7d 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -2966,10 +2966,12 @@ namespace OpenSim.Region.Framework.Scenes
2966 try 2966 try
2967 { 2967 {
2968 ScenePresence sp = GetScenePresence(agentID); 2968 ScenePresence sp = GetScenePresence(agentID);
2969 PresenceService.LogoutAgent(sp.ControllingClient.SessionId); 2969
2970
2971 if (sp != null) 2970 if (sp != null)
2971 {
2972 PresenceService.LogoutAgent(sp.ControllingClient.SessionId);
2972 sp.ControllingClient.Close(); 2973 sp.ControllingClient.Close();
2974 }
2973 2975
2974 // BANG! SLASH! 2976 // BANG! SLASH!
2975 m_authenticateHandler.RemoveCircuit(agentID); 2977 m_authenticateHandler.RemoveCircuit(agentID);
@@ -3886,6 +3888,15 @@ namespace OpenSim.Region.Framework.Scenes
3886 3888
3887 public bool TestLandRestrictions(UUID agentID, out string reason, ref float posX, ref float posY) 3889 public bool TestLandRestrictions(UUID agentID, out string reason, ref float posX, ref float posY)
3888 { 3890 {
3891 if (posX < 0)
3892 posX = 0;
3893 else if (posX >= 256)
3894 posX = 255.999f;
3895 if (posY < 0)
3896 posY = 0;
3897 else if (posY >= 256)
3898 posY = 255.999f;
3899
3889 reason = String.Empty; 3900 reason = String.Empty;
3890 if (Permissions.IsGod(agentID)) 3901 if (Permissions.IsGod(agentID))
3891 return true; 3902 return true;
@@ -4244,7 +4255,7 @@ namespace OpenSim.Region.Framework.Scenes
4244 /// <param name='agentID'></param> 4255 /// <param name='agentID'></param>
4245 protected virtual ScenePresence WaitGetScenePresence(UUID agentID) 4256 protected virtual ScenePresence WaitGetScenePresence(UUID agentID)
4246 { 4257 {
4247 int ntimes = 10; 4258 int ntimes = 20;
4248 ScenePresence sp = null; 4259 ScenePresence sp = null;
4249 while ((sp = GetScenePresence(agentID)) == null && (ntimes-- > 0)) 4260 while ((sp = GetScenePresence(agentID)) == null && (ntimes-- > 0))
4250 Thread.Sleep(1000); 4261 Thread.Sleep(1000);