aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2014-07-22 18:01:54 +0100
committerJustin Clark-Casey (justincc)2014-07-22 18:04:28 +0100
commit3a87cce2e0367a631c4ee2d9e4fae8c701bd604a (patch)
treedab2d449137e0ea7a1595a5725f8a5f17b3a9092 /OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation
parentminor: convert tabs to spaces that got in on recent commit 4a9282e (diff)
downloadopensim-SC-3a87cce2e0367a631c4ee2d9e4fae8c701bd604a.zip
opensim-SC-3a87cce2e0367a631c4ee2d9e4fae8c701bd604a.tar.gz
opensim-SC-3a87cce2e0367a631c4ee2d9e4fae8c701bd604a.tar.bz2
opensim-SC-3a87cce2e0367a631c4ee2d9e4fae8c701bd604a.tar.xz
Fix recent regression in 3c6becd5 where login or hg login to variable sized regions failed with outdated simulator message.
I forgot that a null 'their version' would not be passed over the wire and ends up as an empty string instead (like older simulators). So instead pass through the correct simulator protcol version instead (SIMULATOR/0.3) when querying from login or hg login. Also removes a debug console write for agent limit accidentally left in for the same commit. Relates to mantis 7276
Diffstat (limited to 'OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation')
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs27
1 files changed, 12 insertions, 15 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);