From 7b6471f642a9fdc9c7835f15495017e351aff48b Mon Sep 17 00:00:00 2001 From: diva Date: Wed, 17 Dec 2008 17:44:00 +0000 Subject: Kicking child agents off on the first login after a client crash. The child agents kickoff was missing from when this is run in grid mode. But, worse, turns out that this whole feature of kicking off the user after a crash was entirely missing from standalone mode. --- .../Communications/Local/LocalLoginService.cs | 25 +++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Communications') diff --git a/OpenSim/Region/Communications/Local/LocalLoginService.cs b/OpenSim/Region/Communications/Local/LocalLoginService.cs index 9b71efd..e139501 100644 --- a/OpenSim/Region/Communications/Local/LocalLoginService.cs +++ b/OpenSim/Region/Communications/Local/LocalLoginService.cs @@ -57,7 +57,7 @@ namespace OpenSim.Region.Communications.Local /// /// Used to make requests to the local regions. /// - protected IGridServices m_gridService; + protected LocalBackEndServices m_gridService; public event LoginToRegionEvent OnLoginToRegion; @@ -376,5 +376,28 @@ namespace OpenSim.Region.Communications.Local return new InventoryData(AgentInventoryArray, rootID); } + + public override void LogOffUser(UserProfileData theUser, string message) + { + RegionInfo SimInfo; + try + { + SimInfo = this.m_gridService.RequestNeighbourInfo(theUser.CurrentAgent.Handle); + + if (SimInfo == null) + { + m_log.Error("[LOCAL LOGIN]: Region user was in isn't currently logged in"); + return; + } + } + catch (Exception) + { + m_log.Error("[LOCAL LOGIN]: Unable to look up region to log user off"); + return; + } + + m_gridService.TriggerLogOffUser(SimInfo.RegionHandle, theUser.ID, theUser.CurrentAgent.SecureSessionID, "Logging you off"); + } + } } -- cgit v1.1