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