aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs')
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs27
1 files changed, 26 insertions, 1 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs
index adf3a91..50238a5 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs
@@ -269,7 +269,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
269 return true; 269 return true;
270 } 270 }
271 271
272<<<<<<< HEAD
272 public bool QueryAccess(GridRegion destination, UUID agentID, string agentHomeURI, bool viaTeleport, Vector3 position, string theirversion, List<UUID> features, out string version, out string reason) 273 public bool QueryAccess(GridRegion destination, UUID agentID, string agentHomeURI, bool viaTeleport, Vector3 position, string theirversion, List<UUID> features, out string version, out string reason)
274=======
275 public bool QueryAccess(GridRegion destination, UUID agentID, string agentHomeURI, bool viaTeleport, Vector3 position, string theirversion, out string version, out string reason)
276>>>>>>> avn/ubitvar
273 { 277 {
274 reason = "Communications failure"; 278 reason = "Communications failure";
275 version = ServiceVersion; 279 version = ServiceVersion;
@@ -298,7 +302,29 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
298 302
299 } 303 }
300 304
305<<<<<<< HEAD
301 return m_scenes[destination.RegionID].QueryAccess(agentID, agentHomeURI, viaTeleport, position, features, out reason); 306 return m_scenes[destination.RegionID].QueryAccess(agentID, agentHomeURI, viaTeleport, position, features, out reason);
307=======
308
309 // not really need on a grid running var regions sims
310
311 uint size = m_scenes[destination.RegionID].RegionInfo.RegionSizeX;
312
313 float theirVersionNumber = 0f;
314 string[] versionComponents = theirversion.Split(new char[] { '/' });
315 if (versionComponents.Length >= 2)
316 float.TryParse(versionComponents[1], out theirVersionNumber);
317
318 // Var regions here, and the requesting simulator is in an older version.
319 // We will forbide this, because it crashes the viewers
320 if (theirVersionNumber < 0.3f && size > 256)
321 {
322 reason = "Destination is a variable-sized region, and source is an old simulator. Consider upgrading.";
323 m_log.DebugFormat("[LOCAL SIMULATION CONNECTOR]: Request to access this variable-sized region from {0} simulator was denied", theirVersionNumber);
324 return false;
325 }
326 return m_scenes[destination.RegionID].QueryAccess(agentID, position, out reason);
327>>>>>>> avn/ubitvar
302 } 328 }
303 329
304 //m_log.Debug("[LOCAL COMMS]: region not found for QueryAccess"); 330 //m_log.Debug("[LOCAL COMMS]: region not found for QueryAccess");
@@ -335,7 +361,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
335 m_scenes[destination.RegionID].CloseAgent(id, false, auth_token); 361 m_scenes[destination.RegionID].CloseAgent(id, false, auth_token);
336 return true; 362 return true;
337 } 363 }
338
339 //m_log.Debug("[LOCAL COMMS]: region not found in SendCloseAgent"); 364 //m_log.Debug("[LOCAL COMMS]: region not found in SendCloseAgent");
340 return false; 365 return false;
341 } 366 }