diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 3 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 17 |
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); |