diff options
Diffstat (limited to '')
4 files changed, 17 insertions, 20 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs index 50105a6..8fd5df8 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs | |||
@@ -283,22 +283,19 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation | |||
283 | // s.RegionInfo.RegionName, destination.RegionHandle); | 283 | // s.RegionInfo.RegionName, destination.RegionHandle); |
284 | uint size = m_scenes[destination.RegionID].RegionInfo.RegionSizeX; | 284 | uint size = m_scenes[destination.RegionID].RegionInfo.RegionSizeX; |
285 | 285 | ||
286 | if (theirversion != null) | 286 | float theirVersionNumber = 0f; |
287 | string[] versionComponents = theirversion.Split(new char[] { '/' }); | ||
288 | if (versionComponents.Length >= 2) | ||
289 | float.TryParse(versionComponents[1], out theirVersionNumber); | ||
290 | |||
291 | // Var regions here, and the requesting simulator is in an older version. | ||
292 | // We will forbide this, because it crashes the viewers | ||
293 | if (theirVersionNumber < 0.3f && size > 256) | ||
287 | { | 294 | { |
288 | float theirVersionNumber = 0f; | 295 | reason = "Destination is a variable-sized region, and source is an old simulator. Consider upgrading."; |
289 | string[] versionComponents = theirversion.Split(new char[] { '/' }); | 296 | m_log.DebugFormat("[LOCAL SIMULATION CONNECTOR]: Request to access this variable-sized region from {0} simulator was denied", theirVersionNumber); |
290 | if (versionComponents.Length >= 2) | 297 | return false; |
291 | float.TryParse(versionComponents[1], out theirVersionNumber); | 298 | |
292 | |||
293 | // Var regions here, and the requesting simulator is in an older version. | ||
294 | // We will forbide this, because it crashes the viewers | ||
295 | if (theirVersionNumber < 0.3f && size > 256) | ||
296 | { | ||
297 | reason = "Destination is a variable-sized region, and source is an old simulator. Consider upgrading."; | ||
298 | m_log.DebugFormat("[LOCAL SIMULATION CONNECTOR]: Request to access this variable-sized region from {0} simulator was denied", theirVersionNumber); | ||
299 | return false; | ||
300 | |||
301 | } | ||
302 | } | 299 | } |
303 | 300 | ||
304 | return m_scenes[destination.RegionID].QueryAccess(agentID, agentHomeURI, viaTeleport, position, out reason); | 301 | return m_scenes[destination.RegionID].QueryAccess(agentID, agentHomeURI, viaTeleport, position, out reason); |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 4bbe68b..27929c6 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -5514,7 +5514,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
5514 | 5514 | ||
5515 | int num = m_sceneGraph.GetRootAgentCount(); | 5515 | int num = m_sceneGraph.GetRootAgentCount(); |
5516 | 5516 | ||
5517 | Console.WriteLine("{0} {1}", num, RegionInfo.RegionSettings.AgentLimit); | ||
5518 | if (num >= RegionInfo.RegionSettings.AgentLimit) | 5517 | if (num >= RegionInfo.RegionSettings.AgentLimit) |
5519 | { | 5518 | { |
5520 | if (!Permissions.IsAdministrator(agentID)) | 5519 | if (!Permissions.IsAdministrator(agentID)) |
diff --git a/OpenSim/Services/HypergridService/GatekeeperService.cs b/OpenSim/Services/HypergridService/GatekeeperService.cs index 771114e..15d3305 100644 --- a/OpenSim/Services/HypergridService/GatekeeperService.cs +++ b/OpenSim/Services/HypergridService/GatekeeperService.cs | |||
@@ -436,7 +436,7 @@ namespace OpenSim.Services.HypergridService | |||
436 | 436 | ||
437 | if (!m_SimulationService.QueryAccess( | 437 | if (!m_SimulationService.QueryAccess( |
438 | destination, aCircuit.AgentID, aCircuit.ServiceURLs["HomeURI"].ToString(), | 438 | destination, aCircuit.AgentID, aCircuit.ServiceURLs["HomeURI"].ToString(), |
439 | true, aCircuit.startpos, null, out version, out reason)) | 439 | true, aCircuit.startpos, "SIMULATION/0.3", out version, out reason)) |
440 | return false; | 440 | return false; |
441 | 441 | ||
442 | return m_SimulationService.CreateAgent(source, destination, aCircuit, (uint)loginFlag, out reason); | 442 | return m_SimulationService.CreateAgent(source, destination, aCircuit, (uint)loginFlag, out reason); |
diff --git a/OpenSim/Services/LLLoginService/LLLoginService.cs b/OpenSim/Services/LLLoginService/LLLoginService.cs index 264a630..0ad9f92 100644 --- a/OpenSim/Services/LLLoginService/LLLoginService.cs +++ b/OpenSim/Services/LLLoginService/LLLoginService.cs | |||
@@ -961,7 +961,9 @@ namespace OpenSim.Services.LLLoginService | |||
961 | { | 961 | { |
962 | string version; | 962 | string version; |
963 | 963 | ||
964 | if (!simConnector.QueryAccess(region, aCircuit.AgentID, null, true, aCircuit.startpos, null, out version, out reason)) | 964 | if ( |
965 | !simConnector.QueryAccess( | ||
966 | region, aCircuit.AgentID, null, true, aCircuit.startpos, "SIMULATION/0.3", out version, out reason)) | ||
965 | return false; | 967 | return false; |
966 | 968 | ||
967 | return simConnector.CreateAgent(null, region, aCircuit, (uint)flags, out reason); | 969 | return simConnector.CreateAgent(null, region, aCircuit, (uint)flags, out reason); |
@@ -969,9 +971,8 @@ namespace OpenSim.Services.LLLoginService | |||
969 | 971 | ||
970 | private bool LaunchAgentIndirectly(GridRegion gatekeeper, GridRegion destination, AgentCircuitData aCircuit, IPEndPoint clientIP, out string reason) | 972 | private bool LaunchAgentIndirectly(GridRegion gatekeeper, GridRegion destination, AgentCircuitData aCircuit, IPEndPoint clientIP, out string reason) |
971 | { | 973 | { |
972 | string version; | ||
973 | |||
974 | m_log.Debug("[LLOGIN SERVICE]: Launching agent at " + destination.RegionName); | 974 | m_log.Debug("[LLOGIN SERVICE]: Launching agent at " + destination.RegionName); |
975 | |||
975 | if (m_UserAgentService.LoginAgentToGrid(null, aCircuit, gatekeeper, destination, true, out reason)) | 976 | if (m_UserAgentService.LoginAgentToGrid(null, aCircuit, gatekeeper, destination, true, out reason)) |
976 | return true; | 977 | return true; |
977 | return false; | 978 | return false; |