diff options
author | Melanie Thielker | 2009-06-19 20:46:17 +0000 |
---|---|---|
committer | Melanie Thielker | 2009-06-19 20:46:17 +0000 |
commit | e4d26d7bfa4b4d4e775531a7dd400f41fc61f45f (patch) | |
tree | a15fb5f00eb11a26a49b287c76209fb3e80833d4 /OpenSim/Region/CoreModules | |
parent | Thanks cmickeyb for a patch that checks for null assets in Cenome asset cache... (diff) | |
download | opensim-SC-e4d26d7bfa4b4d4e775531a7dd400f41fc61f45f.zip opensim-SC-e4d26d7bfa4b4d4e775531a7dd400f41fc61f45f.tar.gz opensim-SC-e4d26d7bfa4b4d4e775531a7dd400f41fc61f45f.tar.bz2 opensim-SC-e4d26d7bfa4b4d4e775531a7dd400f41fc61f45f.tar.xz |
When a shared module hooks OnClientClosed, it has no way of finding
out which client connection has closed. So, in multi-region sims, things
can get messy fast.
This introduces a second parameters, which is a Scene object ref. Minor
adjustments to custom modules may be required due to this change.
Diffstat (limited to 'OpenSim/Region/CoreModules')
5 files changed, 5 insertions, 5 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs index 8afb8fe..b98bfaf 100644 --- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs | |||
@@ -382,7 +382,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends | |||
382 | client.OnLogout += OnLogout; | 382 | client.OnLogout += OnLogout; |
383 | } | 383 | } |
384 | 384 | ||
385 | private void ClientClosed(UUID AgentId) | 385 | private void ClientClosed(UUID AgentId, Scene scene) |
386 | { | 386 | { |
387 | // agent's client was closed. As we handle logout in OnLogout, this here has only to handle | 387 | // agent's client was closed. As we handle logout in OnLogout, this here has only to handle |
388 | // TPing away (root agent is closed) or TPing/crossing in a region far enough away (client | 388 | // TPing away (root agent is closed) or TPing/crossing in a region far enough away (client |
diff --git a/OpenSim/Region/CoreModules/Avatar/Groups/GroupsModule.cs b/OpenSim/Region/CoreModules/Avatar/Groups/GroupsModule.cs index a733585..31363e5 100644 --- a/OpenSim/Region/CoreModules/Avatar/Groups/GroupsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Groups/GroupsModule.cs | |||
@@ -198,7 +198,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Groups | |||
198 | remote_client.SendGroupNameReply(groupUUID, groupnamereply); | 198 | remote_client.SendGroupNameReply(groupUUID, groupnamereply); |
199 | } | 199 | } |
200 | 200 | ||
201 | private void OnClientClosed(UUID agentID) | 201 | private void OnClientClosed(UUID agentID, Scene scene) |
202 | { | 202 | { |
203 | lock (m_ClientMap) | 203 | lock (m_ClientMap) |
204 | { | 204 | { |
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs index 12f5d19..d862c06 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs | |||
@@ -368,7 +368,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
368 | return false; | 368 | return false; |
369 | } | 369 | } |
370 | 370 | ||
371 | public void ClientLoggedOut(UUID agentID) | 371 | public void ClientLoggedOut(UUID agentID, Scene scene) |
372 | { | 372 | { |
373 | if (m_AgentRegions.ContainsKey(agentID)) | 373 | if (m_AgentRegions.ContainsKey(agentID)) |
374 | m_AgentRegions.Remove(agentID); | 374 | m_AgentRegions.Remove(agentID); |
diff --git a/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueGetModule.cs b/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueGetModule.cs index a94f23f..3dcf342 100644 --- a/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueGetModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueGetModule.cs | |||
@@ -198,7 +198,7 @@ namespace OpenSim.Region.CoreModules.Framework.EventQueue | |||
198 | // ClientClosed(client.AgentId); | 198 | // ClientClosed(client.AgentId); |
199 | // } | 199 | // } |
200 | 200 | ||
201 | private void ClientClosed(UUID AgentID) | 201 | private void ClientClosed(UUID AgentID, Scene scene) |
202 | { | 202 | { |
203 | m_log.DebugFormat("[EVENTQUEUE]: Closed client {0} in region {1}", AgentID, m_scene.RegionInfo.RegionName); | 203 | m_log.DebugFormat("[EVENTQUEUE]: Closed client {0} in region {1}", AgentID, m_scene.RegionInfo.RegionName); |
204 | 204 | ||
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs index 6fe0b57..16c02a3 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs +++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs | |||
@@ -287,7 +287,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
287 | /// Event handler | 287 | /// Event handler |
288 | /// </summary> | 288 | /// </summary> |
289 | /// <param name="AgentId">AgentID that logged out</param> | 289 | /// <param name="AgentId">AgentID that logged out</param> |
290 | private void ClientLoggedOut(UUID AgentId) | 290 | private void ClientLoggedOut(UUID AgentId, Scene scene) |
291 | { | 291 | { |
292 | List<ScenePresence> presences = m_scene.GetAvatars(); | 292 | List<ScenePresence> presences = m_scene.GetAvatars(); |
293 | int rootcount = 0; | 293 | int rootcount = 0; |