From b5fcb5e872ec138ff7138906bffae193b6dae1a6 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sun, 17 Jan 2010 20:10:42 -0800 Subject: HG teleports through gatekeeper are working. --- .../EntityTransfer/EntityTransferModule.cs | 18 ++++-- .../EntityTransfer/HGEntityTransferModule.cs | 11 ---- OpenSim/Server/Handlers/Hypergrid/AgentHandlers.cs | 10 ---- .../Hypergrid/GatekeeperServerConnector.cs | 1 - .../Server/Handlers/Hypergrid/ObjectHandlers.cs | 68 ---------------------- .../Services/HypergridService/GatekeeperService.cs | 39 +------------ OpenSim/Services/Interfaces/IGatekeeperService.cs | 4 -- 7 files changed, 13 insertions(+), 138 deletions(-) delete mode 100644 OpenSim/Server/Handlers/Hypergrid/ObjectHandlers.cs (limited to 'OpenSim') diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 8268bfa..622d057 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs @@ -344,8 +344,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer AgentData agent = new AgentData(); sp.CopyTo(agent); agent.Position = position; - agent.CallbackURI = "http://" + sp.Scene.RegionInfo.ExternalHostName + ":" + sp.Scene.RegionInfo.HttpPort + - "/agent/" + sp.UUID.ToString() + "/" + sp.Scene.RegionInfo.RegionID.ToString() + "/release/"; + SetCallbackURL(agent, sp.Scene.RegionInfo); UpdateAgent(reg, finalDestination, agent); @@ -379,7 +378,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer EnableChildAgents(sp); // Finally, kill the agent we just created at the destination. - m_aScene.SimulationService.CloseAgent(reg, sp.UUID); + m_aScene.SimulationService.CloseAgent(finalDestination, sp.UUID); return; } @@ -389,7 +388,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer sp.MakeChildAgent(); // CrossAttachmentsIntoNewRegion is a synchronous call. We shouldn't need to wait after it - CrossAttachmentsIntoNewRegion(reg, sp, true); + CrossAttachmentsIntoNewRegion(finalDestination, sp, true); // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone @@ -447,12 +446,19 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer protected virtual bool CreateAgent(GridRegion reg, GridRegion finalDestination, AgentCircuitData agentCircuit, uint teleportFlags, out string reason) { - return m_aScene.SimulationService.CreateAgent(reg, agentCircuit, teleportFlags, out reason); + return m_aScene.SimulationService.CreateAgent(finalDestination, agentCircuit, teleportFlags, out reason); } protected virtual bool UpdateAgent(GridRegion reg, GridRegion finalDestination, AgentData agent) { - return m_aScene.SimulationService.UpdateAgent(reg, agent); + return m_aScene.SimulationService.UpdateAgent(finalDestination, agent); + } + + protected virtual void SetCallbackURL(AgentData agent, RegionInfo region) + { + agent.CallbackURI = "http://" + region.ExternalHostName + ":" + region.HttpPort + + "/agent/" + agent.AgentID.ToString() + "/" + region.RegionID.ToString() + "/release/"; + } protected void KillEntity(Scene scene, uint localID) diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs index e5a862d..6645293 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs @@ -148,17 +148,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer return m_aScene.SimulationService.CreateAgent(reg, agentCircuit, teleportFlags, out reason); } - protected override bool UpdateAgent(GridRegion reg, GridRegion finalDestination, AgentData agent) - { - if (reg.RegionLocX != finalDestination.RegionLocX && reg.RegionLocY != finalDestination.RegionLocY) - { - // this user is going to another grid - return m_GatekeeperConnector.UpdateAgent(reg, agent); - } - - return m_aScene.SimulationService.UpdateAgent(reg, agent); - } - #endregion } } diff --git a/OpenSim/Server/Handlers/Hypergrid/AgentHandlers.cs b/OpenSim/Server/Handlers/Hypergrid/AgentHandlers.cs index a56363c..01e368c 100644 --- a/OpenSim/Server/Handlers/Hypergrid/AgentHandlers.cs +++ b/OpenSim/Server/Handlers/Hypergrid/AgentHandlers.cs @@ -64,16 +64,6 @@ namespace OpenSim.Server.Handlers.Hypergrid return m_GatekeeperService.LoginAgent(aCircuit, destination, out reason); } - protected override bool UpdateAgent(GridRegion destination, AgentData agent) - { - return m_GatekeeperService.UpdateAgent(destination, agent); - } - - protected override void ReleaseAgent(UUID regionID, UUID id) - { - m_GatekeeperService.ReleaseAgent(regionID, id); - } - } } diff --git a/OpenSim/Server/Handlers/Hypergrid/GatekeeperServerConnector.cs b/OpenSim/Server/Handlers/Hypergrid/GatekeeperServerConnector.cs index 27b793d..c56ea3f 100644 --- a/OpenSim/Server/Handlers/Hypergrid/GatekeeperServerConnector.cs +++ b/OpenSim/Server/Handlers/Hypergrid/GatekeeperServerConnector.cs @@ -65,7 +65,6 @@ namespace OpenSim.Server.Handlers.Hypergrid server.AddXmlRPCHandler("get_region", hghandlers.GetRegion, false); server.AddHTTPHandler("/foreignagent/", new AgentHandler(m_GatekeeperService).Handler); - server.AddHTTPHandler("/foreignobject/", new ObjectHandler(m_GatekeeperService).Handler); } diff --git a/OpenSim/Server/Handlers/Hypergrid/ObjectHandlers.cs b/OpenSim/Server/Handlers/Hypergrid/ObjectHandlers.cs deleted file mode 100644 index 20eb375..0000000 --- a/OpenSim/Server/Handlers/Hypergrid/ObjectHandlers.cs +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.Collections; -using System.IO; -using System.Reflection; -using System.Net; -using System.Text; - -using OpenSim.Server.Base; -using OpenSim.Server.Handlers.Base; -using OpenSim.Services.Interfaces; -using GridRegion = OpenSim.Services.Interfaces.GridRegion; -using OpenSim.Framework; -using OpenSim.Framework.Servers.HttpServer; -using OpenSim.Server.Handlers.Simulation; -using Utils = OpenSim.Server.Handlers.Simulation.Utils; - -using OpenMetaverse; -using OpenMetaverse.StructuredData; -using Nini.Config; -using log4net; - - -namespace OpenSim.Server.Handlers.Hypergrid -{ - public class ObjectHandler : OpenSim.Server.Handlers.Simulation.ObjectHandler - { - private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - private IGatekeeperService m_GatekeeperService; - - public ObjectHandler(IGatekeeperService gatekeeper) - { - m_GatekeeperService = gatekeeper; - } - - protected override bool CreateObject(GridRegion destination, ISceneObject sog) - { - return m_GatekeeperService.LoginAttachment(destination, sog); - } - - } -} \ No newline at end of file diff --git a/OpenSim/Services/HypergridService/GatekeeperService.cs b/OpenSim/Services/HypergridService/GatekeeperService.cs index 416e443..72db93f 100644 --- a/OpenSim/Services/HypergridService/GatekeeperService.cs +++ b/OpenSim/Services/HypergridService/GatekeeperService.cs @@ -221,44 +221,7 @@ namespace OpenSim.Services.HypergridService return m_SimulationService.CreateAgent(destination, aCircuit, 0, out reason); } - public bool UpdateAgent(GridRegion destination, AgentData agent) - { - // Get the region - destination = m_GridService.GetRegionByUUID(m_ScopeID, destination.RegionID); - if (destination == null) - { - return false; - } - - return m_SimulationService.UpdateAgent(destination, agent); - } - - public bool LoginAttachment(GridRegion destination, ISceneObject sog) - { - // Get the region - destination = m_GridService.GetRegionByUUID(m_ScopeID, destination.RegionID); - if (destination == null) - { - return false; - } - - // May want to filter attachments - return m_SimulationService.CreateObject(destination, sog, false); - } - - public void ReleaseAgent(UUID regionID, UUID agentID) - { - GridRegion region = m_GridService.GetRegionByUUID(m_ScopeID, regionID); - if (region != null) - { - string uri = "http://" + region.ExternalHostName + ":" + region.HttpPort + - "/agent/" + agentID.ToString() + "/" + regionID.ToString() + "/release/"; - - m_SimulationService.ReleaseAgent(regionID, agentID, uri); - } - } - - protected bool Authenticate(AgentCircuitData aCircuit) + protected bool Authenticate(AgentCircuitData aCircuit) { string authURL = string.Empty; if (aCircuit.ServiceURLs.ContainsKey("HomeURI")) diff --git a/OpenSim/Services/Interfaces/IGatekeeperService.cs b/OpenSim/Services/Interfaces/IGatekeeperService.cs index 5e21804..d41df75 100644 --- a/OpenSim/Services/Interfaces/IGatekeeperService.cs +++ b/OpenSim/Services/Interfaces/IGatekeeperService.cs @@ -39,9 +39,5 @@ namespace OpenSim.Services.Interfaces GridRegion GetHyperlinkRegion(UUID regionID); bool LoginAgent(AgentCircuitData aCircuit, GridRegion destination, out string reason); - bool UpdateAgent(GridRegion destination, AgentData agent); - void ReleaseAgent(UUID regionID, UUID agentID); - - bool LoginAttachment(GridRegion destination, ISceneObject sog); } } -- cgit v1.1