diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs | 27 |
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 | } |