mirror of
https://github.com/opensim/opensim.git
synced 2026-08-09 18:55:58 +08:00
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.
This commit is contained in:
@@ -239,8 +239,14 @@ namespace OpenSim.Region.CoreModules.Avatar.Lure
|
||||
GatekeeperServiceConnector gConn = new GatekeeperServiceConnector();
|
||||
GridRegion gatekeeper = new GridRegion();
|
||||
gatekeeper.ServerURI = url;
|
||||
|
||||
string homeURI = null;
|
||||
AgentCircuitData acd = scene.AuthenticateHandler.GetAgentCircuitData(client.AgentId);
|
||||
if (acd != null && acd.ServiceURLs != null && acd.ServiceURLs.ContainsKey("HomeURI"))
|
||||
homeURI = (string)acd.ServiceURLs["HomeURI"];
|
||||
|
||||
string message;
|
||||
GridRegion finalDestination = gConn.GetHyperlinkRegion(gatekeeper, new UUID(im.RegionID), out message);
|
||||
GridRegion finalDestination = gConn.GetHyperlinkRegion(gatekeeper, new UUID(im.RegionID), client.AgentId, homeURI, out message);
|
||||
if (finalDestination != null)
|
||||
{
|
||||
ScenePresence sp = scene.GetScenePresence(client.AgentId);
|
||||
|
||||
Reference in New Issue
Block a user