diff options
author | Oren Hurvitz | 2014-04-06 16:18:40 +0300 |
---|---|---|
committer | Oren Hurvitz | 2014-04-06 15:40:45 +0100 |
commit | abe0f4a0882942e211b17408767eca664762e062 (patch) | |
tree | c58141c3b8aab60e40c69c4e9bf47d46caa959fa /OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |
parent | Pass the correct position to QueryAccess() instead of UUID.Zero (it was wrong... (diff) | |
download | opensim-SC_OLD-abe0f4a0882942e211b17408767eca664762e062.zip opensim-SC_OLD-abe0f4a0882942e211b17408767eca664762e062.tar.gz opensim-SC_OLD-abe0f4a0882942e211b17408767eca664762e062.tar.bz2 opensim-SC_OLD-abe0f4a0882942e211b17408767eca664762e062.tar.xz |
When preparing a Hypergrid teleport, tell the receiving grid which user is entering the grid.
This can affect which region to use. E.g., returning users may be allowed to enter any region, whereas users from other grids will have to enter a gateway region. Previously per-user decisions were only made later, but by then it's too late to change which region the user enters.
Diffstat (limited to 'OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 7b4fbf9..3040a88 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -529,8 +529,13 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
529 | 529 | ||
530 | if (reg != null) | 530 | if (reg != null) |
531 | { | 531 | { |
532 | string homeURI = null; | ||
533 | AgentCircuitData acd = Scene.AuthenticateHandler.GetAgentCircuitData(sp.ControllingClient.AgentId); | ||
534 | if (acd != null && acd.ServiceURLs != null && acd.ServiceURLs.ContainsKey("HomeURI")) | ||
535 | homeURI = (string)acd.ServiceURLs["HomeURI"]; | ||
536 | |||
532 | string message; | 537 | string message; |
533 | finalDestination = GetFinalDestination(reg, out message); | 538 | finalDestination = GetFinalDestination(reg, sp.ControllingClient.AgentId, homeURI, out message); |
534 | 539 | ||
535 | if (finalDestination == null) | 540 | if (finalDestination == null) |
536 | { | 541 | { |
@@ -1331,7 +1336,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1331 | scene.SendKillObject(new List<uint> { localID }); | 1336 | scene.SendKillObject(new List<uint> { localID }); |
1332 | } | 1337 | } |
1333 | 1338 | ||
1334 | protected virtual GridRegion GetFinalDestination(GridRegion region, out string message) | 1339 | protected virtual GridRegion GetFinalDestination(GridRegion region, UUID agentID, string agentHomeURI, out string message) |
1335 | { | 1340 | { |
1336 | message = null; | 1341 | message = null; |
1337 | return region; | 1342 | return region; |