From b2e6ec9e12ad07eb08496ebe8ca0476b793017d5 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sun, 17 Jan 2010 18:04:55 -0800 Subject: Agent gets there through the Gatekeeper, but still a few quirks to fix. --- .../Hypergrid/GatekeeperServerConnector.cs | 74 ++-------------------- 1 file changed, 7 insertions(+), 67 deletions(-) (limited to 'OpenSim/Server/Handlers/Hypergrid/GatekeeperServerConnector.cs') diff --git a/OpenSim/Server/Handlers/Hypergrid/GatekeeperServerConnector.cs b/OpenSim/Server/Handlers/Hypergrid/GatekeeperServerConnector.cs index f72b36c..27b793d 100644 --- a/OpenSim/Server/Handlers/Hypergrid/GatekeeperServerConnector.cs +++ b/OpenSim/Server/Handlers/Hypergrid/GatekeeperServerConnector.cs @@ -26,21 +26,16 @@ */ using System; -using System.Collections; using System.Collections.Generic; using System.Reflection; -using System.Net; using Nini.Config; using OpenSim.Framework; using OpenSim.Server.Base; using OpenSim.Services.Interfaces; using OpenSim.Framework.Servers.HttpServer; using OpenSim.Server.Handlers.Base; -using GridRegion = OpenSim.Services.Interfaces.GridRegion; -using OpenMetaverse; using log4net; -using Nwc.XmlRpc; namespace OpenSim.Server.Handlers.Hypergrid { @@ -65,8 +60,13 @@ namespace OpenSim.Server.Handlers.Hypergrid if (m_GatekeeperService == null) throw new Exception("Gatekeeper server connector cannot proceed because of missing service"); - server.AddXmlRPCHandler("link_region", LinkRegionRequest, false); - server.AddXmlRPCHandler("get_region", GetRegion, false); + HypergridHandlers hghandlers = new HypergridHandlers(m_GatekeeperService); + server.AddXmlRPCHandler("link_region", hghandlers.LinkRegionRequest, false); + server.AddXmlRPCHandler("get_region", hghandlers.GetRegion, false); + + server.AddHTTPHandler("/foreignagent/", new AgentHandler(m_GatekeeperService).Handler); + server.AddHTTPHandler("/foreignobject/", new ObjectHandler(m_GatekeeperService).Handler); + } public GatekeeperServiceInConnector(IConfigSource config, IHttpServer server) @@ -74,65 +74,5 @@ namespace OpenSim.Server.Handlers.Hypergrid { } - /// - /// Someone wants to link to us - /// - /// - /// - public XmlRpcResponse LinkRegionRequest(XmlRpcRequest request, IPEndPoint remoteClient) - { - Hashtable requestData = (Hashtable)request.Params[0]; - //string host = (string)requestData["host"]; - //string portstr = (string)requestData["port"]; - string name = (string)requestData["region_name"]; - - UUID regionID = UUID.Zero; - string imageURL = string.Empty; - ulong regionHandle = 0; - string reason = string.Empty; - - bool success = m_GatekeeperService.LinkRegion(name, out regionID, out regionHandle, out imageURL, out reason); - - Hashtable hash = new Hashtable(); - hash["result"] = success.ToString(); - hash["uuid"] = regionID.ToString(); - hash["handle"] = regionHandle.ToString(); - hash["region_image"] = imageURL; - - XmlRpcResponse response = new XmlRpcResponse(); - response.Value = hash; - return response; - } - - public XmlRpcResponse GetRegion(XmlRpcRequest request, IPEndPoint remoteClient) - { - Hashtable requestData = (Hashtable)request.Params[0]; - //string host = (string)requestData["host"]; - //string portstr = (string)requestData["port"]; - string regionID_str = (string)requestData["region_uuid"]; - UUID regionID = UUID.Zero; - UUID.TryParse(regionID_str, out regionID); - - GridRegion regInfo = m_GatekeeperService.GetHyperlinkRegion(regionID); - - Hashtable hash = new Hashtable(); - if (regInfo == null) - hash["result"] = "false"; - else - { - hash["result"] = "true"; - hash["uuid"] = regInfo.RegionID.ToString(); - hash["x"] = regInfo.RegionLocX.ToString(); - hash["y"] = regInfo.RegionLocY.ToString(); - hash["region_name"] = regInfo.RegionName; - hash["hostname"] = regInfo.ExternalHostName; - hash["http_port"] = regInfo.HttpPort.ToString(); - hash["internal_port"] = regInfo.InternalEndPoint.Port.ToString(); - } - XmlRpcResponse response = new XmlRpcResponse(); - response.Value = hash; - return response; - - } } } -- cgit v1.1