aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs11
1 files changed, 3 insertions, 8 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs
index a7e62eb..3f418f6 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs
@@ -50,7 +50,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence
50 public void AddRegion(Scene scene) 50 public void AddRegion(Scene scene)
51 { 51 {
52 scene.EventManager.OnMakeRootAgent += OnMakeRootAgent; 52 scene.EventManager.OnMakeRootAgent += OnMakeRootAgent;
53 scene.EventManager.OnNewClient += OnNewClient;
54 53
55 m_PresenceService.LogoutRegionAgents(scene.RegionInfo.RegionID); 54 m_PresenceService.LogoutRegionAgents(scene.RegionInfo.RegionID);
56 55
@@ -61,7 +60,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence
61 public void RemoveRegion(Scene scene) 60 public void RemoveRegion(Scene scene)
62 { 61 {
63 scene.EventManager.OnMakeRootAgent -= OnMakeRootAgent; 62 scene.EventManager.OnMakeRootAgent -= OnMakeRootAgent;
64 scene.EventManager.OnNewClient -= OnNewClient;
65 63
66 m_PresenceService.LogoutRegionAgents(scene.RegionInfo.RegionID); 64 m_PresenceService.LogoutRegionAgents(scene.RegionInfo.RegionID);
67 } 65 }
@@ -71,7 +69,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence
71 if (sp.IsNPC) 69 if (sp.IsNPC)
72 return; 70 return;
73 71
74 if(sp.gotCrossUpdate) 72 sp.ControllingClient.OnConnectionClosed += OnConnectionClose;
73
74 if (sp.gotCrossUpdate)
75 { 75 {
76 Util.FireAndForget(delegate 76 Util.FireAndForget(delegate
77 { 77 {
@@ -89,11 +89,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence
89 m_PresenceService.ReportAgent(sp.ControllingClient.SessionId, sp.Scene.RegionInfo.RegionID); 89 m_PresenceService.ReportAgent(sp.ControllingClient.SessionId, sp.Scene.RegionInfo.RegionID);
90 } 90 }
91 91
92 public void OnNewClient(IClientAPI client)
93 {
94 client.OnConnectionClosed += OnConnectionClose;
95 }
96
97 public void OnConnectionClose(IClientAPI client) 92 public void OnConnectionClose(IClientAPI client)
98 { 93 {
99 if (client != null && client.SceneAgent != null && !client.SceneAgent.IsChildAgent) 94 if (client != null && client.SceneAgent != null && !client.SceneAgent.IsChildAgent)