diff options
Major changes in interregion communications. This breaks compatibility with older versions, and may result is all sorts of weirdnesses when interacting with sims in older versions. Changes:
- Introducing synchronous Teleports. Now the receiving region calls back the sending region after the client has been made a root agent there, that is, after client sends CompleteMovement to the destination.
- SendCloseAgent moved from OGS1 Remoting to RESTComms.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 56b5df6..13b9169 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -2692,7 +2692,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2692 | { | 2692 | { |
2693 | m_sceneGridService.OnExpectUser += NewUserConnection; | 2693 | m_sceneGridService.OnExpectUser += NewUserConnection; |
2694 | m_sceneGridService.OnAvatarCrossingIntoRegion += AgentCrossing; | 2694 | m_sceneGridService.OnAvatarCrossingIntoRegion += AgentCrossing; |
2695 | m_sceneGridService.OnCloseAgentConnection += CloseConnection; | 2695 | m_sceneGridService.OnCloseAgentConnection += IncomingCloseAgent; |
2696 | m_sceneGridService.OnRegionUp += OtherRegionUp; | 2696 | m_sceneGridService.OnRegionUp += OtherRegionUp; |
2697 | //m_sceneGridService.OnChildAgentUpdate += IncomingChildAgentDataUpdate; | 2697 | //m_sceneGridService.OnChildAgentUpdate += IncomingChildAgentDataUpdate; |
2698 | m_sceneGridService.OnExpectPrim += IncomingInterRegionPrimGroup; | 2698 | m_sceneGridService.OnExpectPrim += IncomingInterRegionPrimGroup; |
@@ -2724,7 +2724,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2724 | m_sceneGridService.OnRegionUp -= OtherRegionUp; | 2724 | m_sceneGridService.OnRegionUp -= OtherRegionUp; |
2725 | m_sceneGridService.OnExpectUser -= NewUserConnection; | 2725 | m_sceneGridService.OnExpectUser -= NewUserConnection; |
2726 | m_sceneGridService.OnAvatarCrossingIntoRegion -= AgentCrossing; | 2726 | m_sceneGridService.OnAvatarCrossingIntoRegion -= AgentCrossing; |
2727 | m_sceneGridService.OnCloseAgentConnection -= CloseConnection; | 2727 | m_sceneGridService.OnCloseAgentConnection -= IncomingCloseAgent; |
2728 | m_sceneGridService.OnGetLandData -= GetLandData; | 2728 | m_sceneGridService.OnGetLandData -= GetLandData; |
2729 | 2729 | ||
2730 | if (m_interregionCommsIn != null) | 2730 | if (m_interregionCommsIn != null) |
@@ -2979,12 +2979,22 @@ namespace OpenSim.Region.Environment.Scenes | |||
2979 | return false; | 2979 | return false; |
2980 | } | 2980 | } |
2981 | 2981 | ||
2982 | public virtual bool IncomingReleaseAgent(UUID id) | ||
2983 | { | ||
2984 | return m_sceneGridService.ReleaseAgent(id); | ||
2985 | } | ||
2986 | |||
2987 | public void SendReleaseAgent(ulong regionHandle, UUID id, string uri) | ||
2988 | { | ||
2989 | m_interregionCommsOut.SendReleaseAgent(regionHandle, id, uri); | ||
2990 | } | ||
2991 | |||
2982 | /// <summary> | 2992 | /// <summary> |
2983 | /// Tell a single agent to disconnect from the region. | 2993 | /// Tell a single agent to disconnect from the region. |
2984 | /// </summary> | 2994 | /// </summary> |
2985 | /// <param name="regionHandle"></param> | 2995 | /// <param name="regionHandle"></param> |
2986 | /// <param name="agentID"></param> | 2996 | /// <param name="agentID"></param> |
2987 | public bool CloseConnection(UUID agentID) | 2997 | public bool IncomingCloseAgent(UUID agentID) |
2988 | { | 2998 | { |
2989 | ScenePresence presence = m_sceneGraph.GetScenePresence(agentID); | 2999 | ScenePresence presence = m_sceneGraph.GetScenePresence(agentID); |
2990 | if (presence != null) | 3000 | if (presence != null) |
@@ -3013,9 +3023,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
3013 | presence.ControllingClient.SendShutdownConnectionNotice(); | 3023 | presence.ControllingClient.SendShutdownConnectionNotice(); |
3014 | } | 3024 | } |
3015 | presence.ControllingClient.Close(true); | 3025 | presence.ControllingClient.Close(true); |
3016 | 3026 | return true; | |
3017 | } | 3027 | } |
3018 | return true; | 3028 | // Agent not here |
3029 | return false; | ||
3019 | } | 3030 | } |
3020 | 3031 | ||
3021 | /// <summary> | 3032 | /// <summary> |