* Fix a few caps limiter that were causing problems

* Added a path for all sessionids to be logged off when a region secret is provided.  (helps log-off dead agents).
0.6.2-post-fixes
Teravus Ovares 2009-01-13 23:25:47 +00:00
parent f013b26241
commit c80b2bb98e
1 changed files with 9 additions and 2 deletions

View File

@ -2776,6 +2776,7 @@ namespace OpenSim.Region.Environment.Scenes
m_log.DebugFormat("[CONNECTION DEBUGGING]: Updated agent {0} in {1}", agent.AgentID, RegionInfo.RegionName); m_log.DebugFormat("[CONNECTION DEBUGGING]: Updated agent {0} in {1}", agent.AgentID, RegionInfo.RegionName);
sp.AdjustKnownSeeds(); sp.AdjustKnownSeeds();
sp.AbsolutePosition = agent.startpos; sp.AbsolutePosition = agent.startpos;
m_authenticateHandler.AddNewCircuit(agent.circuitcode, agent);
return; return;
} }
@ -2829,7 +2830,13 @@ namespace OpenSim.Region.Environment.Scenes
loggingOffUser = GetScenePresence(AvatarID); loggingOffUser = GetScenePresence(AvatarID);
if (loggingOffUser != null) if (loggingOffUser != null)
{ {
if (RegionSecret == loggingOffUser.ControllingClient.SecureSessionId) UUID localRegionSecret = UUID.Zero;
bool parsedsecret = UUID.TryParse(m_regInfo.regionSecret, out localRegionSecret);
// Region Secret is used here in case a new sessionid overwrites an old one on the user server.
// Will update the user server in a few revisions to use it.
if (RegionSecret == loggingOffUser.ControllingClient.SecureSessionId || (parsedsecret && RegionSecret == localRegionSecret))
{ {
m_sceneGridService.SendCloseChildAgentConnections(loggingOffUser.UUID, new List<ulong>(loggingOffUser.KnownRegions.Keys)); m_sceneGridService.SendCloseChildAgentConnections(loggingOffUser.UUID, new List<ulong>(loggingOffUser.KnownRegions.Keys));
loggingOffUser.ControllingClient.Kick(message); loggingOffUser.ControllingClient.Kick(message);
@ -2869,7 +2876,7 @@ namespace OpenSim.Region.Environment.Scenes
if (m_capsHandlers.TryGetValue(agentId, out cap)) if (m_capsHandlers.TryGetValue(agentId, out cap))
{ {
m_log.DebugFormat("[CAPS] Attempt at registering twice for the same agent {0}. {1}. Ignoring.", agentId, capsObjectPath); m_log.DebugFormat("[CAPS] Attempt at registering twice for the same agent {0}. {1}. Ignoring.", agentId, capsObjectPath);
return; //return;
} }
cap cap