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.0.6.1-post-fixes
parent
ab77b22f0f
commit
7b6471f642
|
@ -57,7 +57,7 @@ namespace OpenSim.Region.Communications.Local
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Used to make requests to the local regions.
|
/// Used to make requests to the local regions.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected IGridServices m_gridService;
|
protected LocalBackEndServices m_gridService;
|
||||||
|
|
||||||
public event LoginToRegionEvent OnLoginToRegion;
|
public event LoginToRegionEvent OnLoginToRegion;
|
||||||
|
|
||||||
|
@ -376,5 +376,28 @@ namespace OpenSim.Region.Communications.Local
|
||||||
|
|
||||||
return new InventoryData(AgentInventoryArray, rootID);
|
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");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2946,6 +2946,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
if (RegionSecret == loggingOffUser.ControllingClient.SecureSessionId)
|
if (RegionSecret == loggingOffUser.ControllingClient.SecureSessionId)
|
||||||
{
|
{
|
||||||
|
m_sceneGridService.SendCloseChildAgentConnections(loggingOffUser.UUID, new List<ulong>(loggingOffUser.KnownRegions.Keys));
|
||||||
loggingOffUser.ControllingClient.Kick(message);
|
loggingOffUser.ControllingClient.Kick(message);
|
||||||
// Give them a second to receive the message!
|
// Give them a second to receive the message!
|
||||||
System.Threading.Thread.Sleep(1000);
|
System.Threading.Thread.Sleep(1000);
|
||||||
|
|
Loading…
Reference in New Issue