From fe8d3d5a2bc0ddbc051d8a7ad2412da5f3546075 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 22 Oct 2010 23:52:07 +0100
Subject: Revert "Merge remote branch 'otakup0pe/mantis5110'"
This reverts commit 21187f459ea2ae590dda4249fa15ebf116d04fe0, reversing
changes made to 8f34e46d7449be1c29419a232a8f7f1e5918f03c.
---
OpenSim/Framework/Capabilities/CapsUtil.cs | 2 +-
OpenSim/Framework/RegionInfo.cs | 39 ++---------
.../Framework/Servers/HttpServer/BaseHttpServer.cs | 4 +-
OpenSim/Region/Application/OpenSimBase.cs | 2 +-
.../Region/ClientStack/LindenUDP/LLUDPServer.cs | 2 +-
.../Avatar/InstantMessage/MessageTransferModule.cs | 6 +-
.../EntityTransfer/EntityTransferModule.cs | 57 +++++++++++----
.../EntityTransfer/HGEntityTransferModule.cs | 5 +-
.../InterGrid/OpenGridProtocolModule.cs | 4 +-
.../CoreModules/World/WorldMap/WorldMapModule.cs | 4 +-
OpenSim/Region/Framework/Scenes/Scene.cs | 5 +-
OpenSim/Region/Framework/Scenes/ScenePresence.cs | 4 +-
.../Server/Handlers/Hypergrid/HomeAgentHandlers.cs | 10 +--
.../Hypergrid/GatekeeperServiceConnector.cs | 50 +++++---------
.../Hypergrid/UserAgentServiceConnector.cs | 2 -
.../Connectors/Land/LandServiceConnector.cs | 3 +-
.../Neighbour/NeighbourServiceConnector.cs | 2 +-
.../SimianGrid/SimianGridServiceConnector.cs | 4 +-
.../Simulation/SimulationServiceConnector.cs | 55 +++++++++++++--
OpenSim/Services/GridService/GridService.cs | 2 +-
OpenSim/Services/GridService/HypergridLinker.cs | 80 +++++-----------------
.../Services/HypergridService/GatekeeperService.cs | 2 +-
.../Services/HypergridService/UserAgentService.cs | 17 ++---
OpenSim/Services/Interfaces/IGridService.cs | 17 +----
OpenSim/Services/LLLoginService/LLLoginResponse.cs | 29 +++++++-
25 files changed, 193 insertions(+), 214 deletions(-)
(limited to 'OpenSim')
diff --git a/OpenSim/Framework/Capabilities/CapsUtil.cs b/OpenSim/Framework/Capabilities/CapsUtil.cs
index faf2708..0334e4b 100644
--- a/OpenSim/Framework/Capabilities/CapsUtil.cs
+++ b/OpenSim/Framework/Capabilities/CapsUtil.cs
@@ -41,7 +41,7 @@ namespace OpenSim.Framework.Capabilities
///
public static string GetCapsSeedPath(string capsObjectPath)
{
- return "CAPS/" + capsObjectPath + "0000/";
+ return "/CAPS/" + capsObjectPath + "0000/";
}
///
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs
index 73b8bd0..08d5398 100644
--- a/OpenSim/Framework/RegionInfo.cs
+++ b/OpenSim/Framework/RegionInfo.cs
@@ -115,20 +115,8 @@ namespace OpenSim.Framework
///
public string ServerURI
{
- get {
- if ( m_serverURI != string.Empty ) {
- return m_serverURI;
- } else {
- return "http://" + m_externalHostName + ":" + m_httpPort + "/";
- }
- }
- set {
- if ( value.EndsWith("/") ) {
- m_serverURI = value;
- } else {
- m_serverURI = value + '/';
- }
- }
+ get { return m_serverURI; }
+ set { m_serverURI = value; }
}
protected string m_serverURI;
@@ -153,7 +141,6 @@ namespace OpenSim.Framework
public SimpleRegionInfo()
{
- m_serverURI = string.Empty;
}
public SimpleRegionInfo(uint regionLocX, uint regionLocY, IPEndPoint internalEndPoint, string externalUri)
@@ -163,7 +150,6 @@ namespace OpenSim.Framework
m_internalEndPoint = internalEndPoint;
m_externalHostName = externalUri;
- m_serverURI = string.Empty;
}
public SimpleRegionInfo(uint regionLocX, uint regionLocY, string externalUri, uint port)
@@ -174,7 +160,6 @@ namespace OpenSim.Framework
m_externalHostName = externalUri;
m_internalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), (int) port);
- m_serverURI = string.Empty;
}
public SimpleRegionInfo(RegionInfo ConvertFrom)
@@ -464,7 +449,6 @@ namespace OpenSim.Framework
configMember =
new ConfigurationMember(xmlNode, description, loadConfigurationOptions, handleIncomingConfiguration, !skipConsoleConfig);
configMember.performConfigurationRetrieve();
- m_serverURI = string.Empty;
}
public RegionInfo(uint regionLocX, uint regionLocY, IPEndPoint internalEndPoint, string externalUri)
@@ -474,12 +458,10 @@ namespace OpenSim.Framework
m_internalEndPoint = internalEndPoint;
m_externalHostName = externalUri;
- m_serverURI = string.Empty;
}
public RegionInfo()
{
- m_serverURI = string.Empty;
}
public EstateSettings EstateSettings
@@ -569,23 +551,10 @@ namespace OpenSim.Framework
///
/// A well-formed URI for the host region server (namely "http://" + ExternalHostName)
///
-
public string ServerURI
{
- get {
- if ( m_serverURI != string.Empty ) {
- return m_serverURI;
- } else {
- return "http://" + m_externalHostName + ":" + m_httpPort + "/";
- }
- }
- set {
- if ( value.EndsWith("/") ) {
- m_serverURI = value;
- } else {
- m_serverURI = value + '/';
- }
- }
+ get { return m_serverURI; }
+ set { m_serverURI = value; }
}
public string RegionName
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
index 0c1e5e0..ba8c194 100644
--- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
+++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
@@ -348,7 +348,7 @@ namespace OpenSim.Framework.Servers.HttpServer
{
try
{
- //m_log.Debug("[BASE HTTP SERVER]: Handling request to " + request.RawUrl);
+// m_log.Debug("[BASE HTTP SERVER]: Handling request to " + request.RawUrl);
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US", true);
@@ -376,7 +376,7 @@ namespace OpenSim.Framework.Servers.HttpServer
string path = request.RawUrl;
string handlerKey = GetHandlerKey(request.HttpMethod, path);
- //m_log.DebugFormat("[BASE HTTP SERVER]: Handling {0} request for {1}", request.HttpMethod, path);
+// m_log.DebugFormat("[BASE HTTP SERVER]: Handling {0} request for {1}", request.HttpMethod, path);
if (TryGetStreamHandler(handlerKey, out requestHandler))
{
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index 904a50c..74ad168 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -327,8 +327,8 @@ namespace OpenSim
//regionInfo.originRegionID = regionInfo.RegionID;
// set initial ServerURI
+ regionInfo.ServerURI = "http://" + regionInfo.ExternalHostName + ":" + regionInfo.InternalEndPoint.Port;
regionInfo.HttpPort = m_httpServerPort;
- regionInfo.ServerURI = "http://" + regionInfo.ExternalHostName + ":" + regionInfo.HttpPort.ToString() + "/";
regionInfo.osSecret = m_osSecret;
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs
index 624814a..cb298fd 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs
@@ -631,7 +631,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
IClientAPI client;
if (!m_scene.TryGetClient(address, out client) || !(client is LLClientView))
{
- m_log.Debug("[LLUDPSERVER]: Received a " + packet.Type + " packet from an unrecognized source: " + address + " in " + m_scene.RegionInfo.RegionName);
+ //m_log.Debug("[LLUDPSERVER]: Received a " + packet.Type + " packet from an unrecognized source: " + address + " in " + m_scene.RegionInfo.RegionName);
return;
}
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs
index fdc48c6..918fa04 100644
--- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs
@@ -599,7 +599,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
try
{
- XmlRpcResponse GridResp = GridReq.Send(reginfo.ServerURI, 3000);
+ XmlRpcResponse GridResp = GridReq.Send("http://" + reginfo.ExternalHostName + ":" + reginfo.HttpPort, 3000);
Hashtable responseData = (Hashtable)GridResp.Value;
@@ -621,8 +621,8 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
}
catch (WebException e)
{
- m_log.ErrorFormat("[GRID INSTANT MESSAGE]: Error sending message to {0}} the host didn't respond ({2})",
- reginfo.ServerURI, e.Message);
+ m_log.ErrorFormat("[GRID INSTANT MESSAGE]: Error sending message to http://{0}:{1} the host didn't respond ({2})",
+ reginfo.ExternalHostName, reginfo.HttpPort, e.Message);
}
return false;
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index 925af3f..38fff1c 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -197,8 +197,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
sp.ControllingClient.SendTeleportFailed("Problem at destination");
return;
}
- m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Final destination is x={0} y={1} {2}@{3}",
- finalDestination.RegionLocX / Constants.RegionSize, finalDestination.RegionLocY / Constants.RegionSize, finalDestination.RegionID, finalDestination.ServerURI);
+ m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Final destination is x={0} y={1} uuid={2}",
+ finalDestination.RegionLocX / Constants.RegionSize, finalDestination.RegionLocY / Constants.RegionSize, finalDestination.RegionID);
// Check that these are not the same coordinates
if (finalDestination.RegionLocX == sp.Scene.RegionInfo.RegionLocX &&
@@ -254,8 +254,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
}
m_log.DebugFormat(
- "[ENTITY TRANSFER MODULE]: Request Teleport to {0} ({1}) {2}/{3}",
- reg.ServerURI, finalDestination.ServerURI, finalDestination.RegionName, position);
+ "[ENTITY TRANSFER MODULE]: Request Teleport to {0}:{1}:{2}/{3}",
+ reg.ExternalHostName, reg.HttpPort, finalDestination.RegionName, position);
uint newRegionX = (uint)(reg.RegionHandle >> 40);
uint newRegionY = (((uint)(reg.RegionHandle)) >> 8);
@@ -327,21 +327,43 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
// OK, it got this agent. Let's close some child agents
sp.CloseChildAgents(newRegionX, newRegionY);
- IClientIPEndpoint ipepClient;
+
if (NeedsNewAgent(oldRegionX, newRegionX, oldRegionY, newRegionY))
{
//sp.ControllingClient.SendTeleportProgress(teleportFlags, "Creating agent...");
+
#region IP Translation for NAT
- // Uses ipepClient above
+ IClientIPEndpoint ipepClient;
if (sp.ClientView.TryGet(out ipepClient))
{
- endPoint.Address = NetworkUtil.GetIPFor(ipepClient.EndPoint, endPoint.Address);
+ capsPath
+ = "http://"
+ + NetworkUtil.GetHostFor(ipepClient.EndPoint, finalDestination.ExternalHostName)
+ + ":"
+ + finalDestination.HttpPort
+ + CapsUtil.GetCapsSeedPath(agentCircuit.CapsPath);
+ }
+ else
+ {
+ capsPath
+ = "http://"
+ + finalDestination.ExternalHostName
+ + ":"
+ + finalDestination.HttpPort
+ + CapsUtil.GetCapsSeedPath(agentCircuit.CapsPath);
}
#endregion
- capsPath = finalDestination.ServerURI + CapsUtil.GetCapsSeedPath(agentCircuit.CapsPath);
if (eq != null)
{
+ #region IP Translation for NAT
+ // Uses ipepClient above
+ if (sp.ClientView.TryGet(out ipepClient))
+ {
+ endPoint.Address = NetworkUtil.GetIPFor(ipepClient.EndPoint, endPoint.Address);
+ }
+ #endregion
+
eq.EnableSimulator(destinationHandle, endPoint, sp.UUID);
// ES makes the client send a UseCircuitCode message to the destination,
@@ -360,7 +382,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
else
{
agentCircuit.CapsPath = sp.Scene.CapsModule.GetChildSeed(sp.UUID, reg.RegionHandle);
- capsPath = finalDestination.ServerURI + CapsUtil.GetCapsSeedPath(agentCircuit.CapsPath);
+ capsPath = "http://" + finalDestination.ExternalHostName + ":" + finalDestination.HttpPort
+ + "/CAPS/" + agentCircuit.CapsPath + "0000/";
}
// Expect avatar crossing is a heavy-duty function at the destination.
@@ -493,8 +516,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
protected virtual void SetCallbackURL(AgentData agent, RegionInfo region)
{
- agent.CallbackURI = region.ServerURI + "agent/" + agent.AgentID.ToString() + "/" + region.RegionID.ToString() + "/release/";
- m_log.Debug("Set callback URL to " + agent.CallbackURI);
+ agent.CallbackURI = "http://" + region.ExternalHostName + ":" + region.HttpPort +
+ "/agent/" + agent.AgentID.ToString() + "/" + region.RegionID.ToString() + "/release/";
}
@@ -819,8 +842,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
cAgent.Position = pos;
if (isFlying)
cAgent.ControlFlags |= (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY;
- cAgent.CallbackURI = m_scene.RegionInfo.ServerURI +
- "agent/" + agent.UUID.ToString() + "/" + m_scene.RegionInfo.RegionID.ToString() + "/release/";
+ cAgent.CallbackURI = "http://" + m_scene.RegionInfo.ExternalHostName + ":" + m_scene.RegionInfo.HttpPort +
+ "/agent/" + agent.UUID.ToString() + "/" + m_scene.RegionInfo.RegionID.ToString() + "/release/";
if (!m_scene.SimulationService.UpdateAgent(neighbourRegion, cAgent))
{
@@ -845,7 +868,10 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
neighbourRegion.RegionHandle);
return agent;
}
- string capsPath = neighbourRegion.ServerURI + CapsUtil.GetCapsSeedPath(agentcaps);
+ // TODO Should construct this behind a method
+ string capsPath =
+ "http://" + neighbourRegion.ExternalHostName + ":" + neighbourRegion.HttpPort
+ + "/CAPS/" + agentcaps /*circuitdata.CapsPath*/ + "0000/";
m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Sending new CAPS seed url {0} to client {1}", capsPath, agent.UUID);
@@ -1164,7 +1190,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
y = y / Constants.RegionSize;
m_log.Info("[ENTITY TRANSFER MODULE]: Starting to inform client about neighbour " + x + ", " + y + "(" + endPoint.ToString() + ")");
- string capsPath = reg.ServerURI + CapsUtil.GetCapsSeedPath(a.CapsPath);
+ string capsPath = "http://" + reg.ExternalHostName + ":" + reg.HttpPort
+ + "/CAPS/" + a.CapsPath + "0000/";
string reason = String.Empty;
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
index 9a275ae..1ac7508 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
@@ -123,9 +123,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
if ((flags & (int)OpenSim.Data.RegionFlags.Hyperlink) != 0)
{
m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: Destination region {0} is hyperlink", region.RegionID);
- GridRegion real_destination = m_GatekeeperConnector.GetHyperlinkRegion(region, region.RegionID);
- m_log.Debug("GetfinalDestination serveruri -> " + real_destination.ServerURI);
- return real_destination;
+ return m_GatekeeperConnector.GetHyperlinkRegion(region, region.RegionID);
}
return region;
}
@@ -151,7 +149,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
protected override bool CreateAgent(ScenePresence sp, GridRegion reg, GridRegion finalDestination, AgentCircuitData agentCircuit, uint teleportFlags, out string reason, out bool logout)
{
- m_log.Debug("CreateAgent " + reg.ServerURI + " " + finalDestination.ServerURI);
reason = string.Empty;
logout = false;
int flags = m_aScene.GridService.GetRegionFlags(m_aScene.RegionInfo.ScopeID, reg.RegionID);
diff --git a/OpenSim/Region/CoreModules/InterGrid/OpenGridProtocolModule.cs b/OpenSim/Region/CoreModules/InterGrid/OpenGridProtocolModule.cs
index 2dd7767..fd0e879 100644
--- a/OpenSim/Region/CoreModules/InterGrid/OpenGridProtocolModule.cs
+++ b/OpenSim/Region/CoreModules/InterGrid/OpenGridProtocolModule.cs
@@ -595,12 +595,12 @@ namespace OpenSim.Region.CoreModules.InterGrid
// DEPRECATED
responseMap["seed_capability"]
= OSD.FromString(
- regionCapsHttpProtocol + httpaddr + ":" + reg.HttpPort + "/" + CapsUtil.GetCapsSeedPath(userCap.CapsObjectPath));
+ regionCapsHttpProtocol + httpaddr + ":" + reg.HttpPort + CapsUtil.GetCapsSeedPath(userCap.CapsObjectPath));
// REPLACEMENT
responseMap["region_seed_capability"]
= OSD.FromString(
- regionCapsHttpProtocol + httpaddr + ":" + reg.HttpPort + "/" + CapsUtil.GetCapsSeedPath(userCap.CapsObjectPath));
+ regionCapsHttpProtocol + httpaddr + ":" + reg.HttpPort + CapsUtil.GetCapsSeedPath(userCap.CapsObjectPath));
responseMap["rez_avatar"] = OSD.FromString(rezHttpProtocol + httpaddr + ":" + urlport + rezAvatarPath);
responseMap["rez_avatar/rez"] = OSD.FromString(rezHttpProtocol + httpaddr + ":" + urlport + rezAvatarPath);
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
index fdbbccf..a182eea 100644
--- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
+++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
@@ -147,7 +147,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
string regionimage = "regionImage" + m_scene.RegionInfo.RegionID.ToString();
regionimage = regionimage.Replace("-", "");
- m_log.Info("[WORLD MAP]: JPEG Map location: " + m_scene.RegionInfo.ServerURI + "/index.php?method=" + regionimage);
+ m_log.Info("[WORLD MAP]: JPEG Map location: http://" + m_scene.RegionInfo.ExternalEndPoint.Address.ToString() + ":" + m_scene.RegionInfo.HttpPort.ToString() + "/index.php?method=" + regionimage);
MainServer.Instance.AddHTTPHandler(regionimage, OnHTTPGetMapImage);
MainServer.Instance.AddLLSDHandler(
@@ -579,7 +579,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
if (mreg != null)
{
- httpserver = mreg.ServerURI + "MAP/MapItems/" + regionhandle.ToString();
+ httpserver = "http://" + mreg.ExternalEndPoint.Address.ToString() + ":" + mreg.HttpPort + "/MAP/MapItems/" + regionhandle.ToString();
lock (m_cachedRegionMapItemsAddress)
{
if (!m_cachedRegionMapItemsAddress.ContainsKey(regionhandle))
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index ef18d02..c9ae558 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -3738,12 +3738,9 @@ namespace OpenSim.Region.Framework.Scenes
// We have to wait until the viewer contacts this region after receiving EAC.
// That calls AddNewClient, which finally creates the ScenePresence
- m_log.Debug("ICADU -> pre wait");
ScenePresence childAgentUpdate = WaitGetScenePresence(cAgentData.AgentID);
- m_log.Debug("ICADU -> post wait");
if (childAgentUpdate != null)
{
- m_log.Debug("ICADU -> not child agent!");
childAgentUpdate.ChildAgentDataUpdate(cAgentData);
return true;
}
@@ -3759,7 +3756,7 @@ namespace OpenSim.Region.Framework.Scenes
/// true if we handled it.
public virtual bool IncomingChildAgentDataUpdate(AgentPosition cAgentData)
{
- m_log.Debug(" XXX Scene IncomingChildAgentDataUpdate POSITION in " + RegionInfo.RegionName);
+ //m_log.Debug(" XXX Scene IncomingChildAgentDataUpdate POSITION in " + RegionInfo.RegionName);
ScenePresence childAgentUpdate = GetScenePresence(cAgentData.AgentID);
if (childAgentUpdate != null)
{
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 68ac178..13d9964 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -2925,7 +2925,7 @@ namespace OpenSim.Region.Framework.Scenes
public void ChildAgentDataUpdate(AgentData cAgentData)
{
- m_log.Debug(" >>> ChildAgentDataUpdate <<< " + Scene.RegionInfo.RegionName);
+ //m_log.Debug(" >>> ChildAgentDataUpdate <<< " + Scene.RegionInfo.RegionName);
if (!IsChildAgent)
return;
@@ -2976,8 +2976,6 @@ namespace OpenSim.Region.Framework.Scenes
public void CopyTo(AgentData cAgent)
{
- cAgent.CallbackURI = m_callbackURI;
-
cAgent.AgentID = UUID;
cAgent.RegionID = Scene.RegionInfo.RegionID;
diff --git a/OpenSim/Server/Handlers/Hypergrid/HomeAgentHandlers.cs b/OpenSim/Server/Handlers/Hypergrid/HomeAgentHandlers.cs
index a5ec4f2..f64a079 100644
--- a/OpenSim/Server/Handlers/Hypergrid/HomeAgentHandlers.cs
+++ b/OpenSim/Server/Handlers/Hypergrid/HomeAgentHandlers.cs
@@ -124,8 +124,6 @@ namespace OpenSim.Server.Handlers.Hypergrid
UUID uuid = UUID.Zero;
string regionname = string.Empty;
string gatekeeper_host = string.Empty;
- string gatekeeper_serveruri = string.Empty;
- string destination_serveruri = string.Empty;
int gatekeeper_port = 0;
IPEndPoint client_ipaddress = null;
@@ -133,13 +131,8 @@ namespace OpenSim.Server.Handlers.Hypergrid
gatekeeper_host = args["gatekeeper_host"].AsString();
if (args.ContainsKey("gatekeeper_port") && args["gatekeeper_port"] != null)
Int32.TryParse(args["gatekeeper_port"].AsString(), out gatekeeper_port);
- if (args.ContainsKey("gatekeeper_serveruri") && args["gatekeeper_serveruri"] !=null)
- gatekeeper_serveruri = args["gatekeeper_serveruri"];
- if (args.ContainsKey("destination_serveruri") && args["destination_serveruri"] !=null)
- destination_serveruri = args["destination_serveruri"];
GridRegion gatekeeper = new GridRegion();
- gatekeeper.ServerURI = gatekeeper_serveruri;
gatekeeper.ExternalHostName = gatekeeper_host;
gatekeeper.HttpPort = (uint)gatekeeper_port;
gatekeeper.InternalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), 0);
@@ -180,8 +173,7 @@ namespace OpenSim.Server.Handlers.Hypergrid
destination.RegionLocX = x;
destination.RegionLocY = y;
destination.RegionName = regionname;
- destination.ServerURI = destination_serveruri;
-
+
AgentCircuitData aCircuit = new AgentCircuitData();
try
{
diff --git a/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs b/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs
index 70bafda..479a80e 100644
--- a/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs
@@ -63,12 +63,12 @@ namespace OpenSim.Services.Connectors.Hypergrid
protected override string AgentPath()
{
- return "foreignagent/";
+ return "/foreignagent/";
}
protected override string ObjectPath()
{
- return "foreignobject/";
+ return "/foreignobject/";
}
public bool LinkRegion(GridRegion info, out UUID regionID, out ulong realHandle, out string externalName, out string imageURL, out string reason)
@@ -86,11 +86,12 @@ namespace OpenSim.Services.Connectors.Hypergrid
paramList.Add(hash);
XmlRpcRequest request = new XmlRpcRequest("link_region", paramList);
- m_log.Debug("[GATEKEEPER SERVICE CONNECTOR]: Linking to " + info.ServerURI);
+ string uri = "http://" + ((info.ServerURI != null && info.ServerURI != string.Empty && !info.ServerURI.StartsWith("http:")) ? info.ServerURI : info.ExternalEndPoint.Address + ":" + info.HttpPort + "/");
+ m_log.Debug("[GATEKEEPER SERVICE CONNECTOR]: Linking to " + uri);
XmlRpcResponse response = null;
try
{
- response = request.Send(info.ServerURI, 10000);
+ response = request.Send(uri, 10000);
}
catch (Exception e)
{
@@ -107,8 +108,8 @@ namespace OpenSim.Services.Connectors.Hypergrid
}
hash = (Hashtable)response.Value;
- foreach (Object o in hash)
- m_log.Debug(">> " + ((DictionaryEntry)o).Key + ":" + ((DictionaryEntry)o).Value);
+ //foreach (Object o in hash)
+ // m_log.Debug(">> " + ((DictionaryEntry)o).Key + ":" + ((DictionaryEntry)o).Value);
try
{
bool success = false;
@@ -116,20 +117,16 @@ namespace OpenSim.Services.Connectors.Hypergrid
if (success)
{
UUID.TryParse((string)hash["uuid"], out regionID);
- m_log.Debug(">> HERE, uuid: " + regionID);
+ //m_log.Debug(">> HERE, uuid: " + uuid);
if ((string)hash["handle"] != null)
{
realHandle = Convert.ToUInt64((string)hash["handle"]);
- m_log.Debug(">> HERE, realHandle: " + realHandle);
+ //m_log.Debug(">> HERE, realHandle: " + realHandle);
}
- if (hash["region_image"] != null) {
+ if (hash["region_image"] != null)
imageURL = (string)hash["region_image"];
- m_log.Debug(">> HERE, imageURL: " + imageURL);
- }
- if (hash["external_name"] != null) {
+ if (hash["external_name"] != null)
externalName = (string)hash["external_name"];
- m_log.Debug(">> HERE, externalName: " + externalName);
- }
}
}
@@ -191,11 +188,12 @@ namespace OpenSim.Services.Connectors.Hypergrid
paramList.Add(hash);
XmlRpcRequest request = new XmlRpcRequest("get_region", paramList);
- m_log.Debug("[GATEKEEPER SERVICE CONNECTOR]: contacting " + gatekeeper.ServerURI);
+ string uri = "http://" + ((gatekeeper.ServerURI != null && gatekeeper.ServerURI != string.Empty && !gatekeeper.ServerURI.StartsWith("http:")) ? gatekeeper.ServerURI : gatekeeper.ExternalEndPoint.Address + ":" + gatekeeper.HttpPort + "/");
+ m_log.Debug("[GATEKEEPER SERVICE CONNECTOR]: contacting " + uri);
XmlRpcResponse response = null;
try
{
- response = request.Send(gatekeeper.ServerURI, 10000);
+ response = request.Send(uri, 10000);
}
catch (Exception e)
{
@@ -221,48 +219,38 @@ namespace OpenSim.Services.Connectors.Hypergrid
GridRegion region = new GridRegion();
UUID.TryParse((string)hash["uuid"], out region.RegionID);
- m_log.Debug(">> HERE, uuid: " + region.RegionID);
+ //m_log.Debug(">> HERE, uuid: " + region.RegionID);
int n = 0;
if (hash["x"] != null)
{
Int32.TryParse((string)hash["x"], out n);
region.RegionLocX = n;
- m_log.Debug(">> HERE, x: " + region.RegionLocX);
+ //m_log.Debug(">> HERE, x: " + region.RegionLocX);
}
if (hash["y"] != null)
{
Int32.TryParse((string)hash["y"], out n);
region.RegionLocY = n;
- m_log.Debug(">> HERE, y: " + region.RegionLocY);
+ //m_log.Debug(">> HERE, y: " + region.RegionLocY);
}
if (hash["region_name"] != null)
{
region.RegionName = (string)hash["region_name"];
- m_log.Debug(">> HERE, region_name: " + region.RegionName);
+ //m_log.Debug(">> HERE, name: " + region.RegionName);
}
- if (hash["hostname"] != null) {
+ if (hash["hostname"] != null)
region.ExternalHostName = (string)hash["hostname"];
- m_log.Debug(">> HERE, hostname: " + region.ExternalHostName);
- }
if (hash["http_port"] != null)
{
uint p = 0;
UInt32.TryParse((string)hash["http_port"], out p);
region.HttpPort = p;
- m_log.Debug(">> HERE, http_port: " + region.HttpPort);
}
if (hash["internal_port"] != null)
{
int p = 0;
Int32.TryParse((string)hash["internal_port"], out p);
region.InternalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), p);
- m_log.Debug(">> HERE, internal_port: " + region.InternalEndPoint);
- }
-
- if (hash["server_uri"] != null)
- {
- region.ServerURI = (string) hash["server_uri"];
- m_log.Debug(">> HERE, server_uri: " + region.ServerURI);
}
// Successful return
diff --git a/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs b/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs
index 0c41935..247dd7e 100644
--- a/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs
@@ -232,14 +232,12 @@ namespace OpenSim.Services.Connectors.Hypergrid
m_log.Debug("[USER AGENT CONNECTOR]: PackAgentCircuitData failed with exception: " + e.Message);
}
// Add the input arguments
- args["gatekeeper_serveruri"] = OSD.FromString(gatekeeper.ServerURI);
args["gatekeeper_host"] = OSD.FromString(gatekeeper.ExternalHostName);
args["gatekeeper_port"] = OSD.FromString(gatekeeper.HttpPort.ToString());
args["destination_x"] = OSD.FromString(destination.RegionLocX.ToString());
args["destination_y"] = OSD.FromString(destination.RegionLocY.ToString());
args["destination_name"] = OSD.FromString(destination.RegionName);
args["destination_uuid"] = OSD.FromString(destination.RegionID.ToString());
- args["destination_serveruri"] = OSD.FromString(destination.ServerURI);
// 10/3/2010
// I added the client_ip up to the regular AgentCircuitData, so this doesn't need to be here.
diff --git a/OpenSim/Services/Connectors/Land/LandServiceConnector.cs b/OpenSim/Services/Connectors/Land/LandServiceConnector.cs
index 4b25ac8..8143b5a 100644
--- a/OpenSim/Services/Connectors/Land/LandServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Land/LandServiceConnector.cs
@@ -84,7 +84,8 @@ namespace OpenSim.Services.Connectors
if (info != null) // just to be sure
{
XmlRpcRequest request = new XmlRpcRequest("land_data", paramList);
- XmlRpcResponse response = request.Send(info.ServerURI, 10000);
+ string uri = "http://" + info.ExternalEndPoint.Address + ":" + info.HttpPort + "/";
+ XmlRpcResponse response = request.Send(uri, 10000);
if (response.IsFault)
{
m_log.ErrorFormat("[LAND CONNECTOR]: remote call returned an error: {0}", response.FaultString);
diff --git a/OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs b/OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs
index 9c57a40..0a982f8 100644
--- a/OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs
@@ -87,7 +87,7 @@ namespace OpenSim.Services.Connectors
public bool DoHelloNeighbourCall(GridRegion region, RegionInfo thisRegion)
{
- string uri = region.ServerURI + "/region/" + thisRegion.RegionID + "/";
+ string uri = "http://" + region.ExternalEndPoint.Address + ":" + region.HttpPort + "/region/" + thisRegion.RegionID + "/";
//m_log.Debug(" >>> DoHelloNeighbourCall <<< " + uri);
WebRequest HelloNeighbourRequest = WebRequest.Create(uri);
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs
index 8076fab..168b233 100644
--- a/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs
+++ b/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs
@@ -145,6 +145,8 @@ namespace OpenSim.Services.Connectors.SimianGrid
Vector3d minPosition = new Vector3d(regionInfo.RegionLocX, regionInfo.RegionLocY, 0.0);
Vector3d maxPosition = minPosition + new Vector3d(Constants.RegionSize, Constants.RegionSize, 4096.0);
+ string httpAddress = "http://" + regionInfo.ExternalHostName + ":" + regionInfo.HttpPort + "/";
+
OSDMap extraData = new OSDMap
{
{ "ServerURI", OSD.FromString(regionInfo.ServerURI) },
@@ -166,7 +168,7 @@ namespace OpenSim.Services.Connectors.SimianGrid
{ "Name", regionInfo.RegionName },
{ "MinPosition", minPosition.ToString() },
{ "MaxPosition", maxPosition.ToString() },
- { "Address", regionInfo.ServerURI },
+ { "Address", httpAddress },
{ "Enabled", "1" },
{ "ExtraData", OSDParser.SerializeJsonString(extraData) }
};
diff --git a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
index c4284eb..a5f748f 100644
--- a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
@@ -72,7 +72,7 @@ namespace OpenSim.Services.Connectors.Simulation
protected virtual string AgentPath()
{
- return "agent/";
+ return "/agent/";
}
public bool CreateAgent(GridRegion destination, AgentCircuitData aCircuit, uint flags, out string reason)
@@ -104,7 +104,26 @@ namespace OpenSim.Services.Connectors.Simulation
return false;
}
- string uri = destination.ServerURI + AgentPath() + aCircuit.AgentID + "/";
+ string uri = string.Empty;
+
+ // HACK -- Simian grid make it work!!!
+ if (destination.ServerURI != null && destination.ServerURI != string.Empty && !destination.ServerURI.StartsWith("http:"))
+ uri = "http://" + destination.ServerURI + AgentPath() + aCircuit.AgentID + "/";
+ else
+ {
+ try
+ {
+ uri = "http://" + destination.ExternalEndPoint.Address + ":" + destination.HttpPort + AgentPath() + aCircuit.AgentID + "/";
+ }
+ catch (Exception e)
+ {
+ m_log.Debug("[REMOTE SIMULATION CONNECTOR]: Unable to resolve external endpoint on agent create. Reason: " + e.Message);
+ reason = e.Message;
+ return false;
+ }
+ }
+
+ //Console.WriteLine(" >>> DoCreateChildAgentCall <<< " + uri);
AgentCreateRequest = (HttpWebRequest)WebRequest.Create(uri);
AgentCreateRequest.Method = "POST";
@@ -258,7 +277,17 @@ namespace OpenSim.Services.Connectors.Simulation
private bool UpdateAgent(GridRegion destination, IAgentData cAgentData)
{
// Eventually, we want to use a caps url instead of the agentID
- string uri = destination.ServerURI + AgentPath() + cAgentData.AgentID + "/";
+ string uri = string.Empty;
+ try
+ {
+ uri = "http://" + destination.ExternalEndPoint.Address + ":" + destination.HttpPort + AgentPath() + cAgentData.AgentID + "/";
+ }
+ catch (Exception e)
+ {
+ m_log.Debug("[REMOTE SIMULATION CONNECTOR]: Unable to resolve external endpoint on agent update. Reason: " + e.Message);
+ return false;
+ }
+ //Console.WriteLine(" >>> DoAgentUpdateCall <<< " + uri);
HttpWebRequest ChildUpdateRequest = (HttpWebRequest)WebRequest.Create(uri);
ChildUpdateRequest.Method = "PUT";
@@ -356,7 +385,8 @@ namespace OpenSim.Services.Connectors.Simulation
{
agent = null;
// Eventually, we want to use a caps url instead of the agentID
- string uri = destination.ServerURI + AgentPath() + id + "/" + destination.RegionID.ToString() + "/";
+ string uri = "http://" + destination.ExternalEndPoint.Address + ":" + destination.HttpPort + AgentPath() + id + "/" + destination.RegionID.ToString() + "/";
+ //Console.WriteLine(" >>> DoRetrieveRootAgentCall <<< " + uri);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "GET";
@@ -377,6 +407,7 @@ namespace OpenSim.Services.Connectors.Simulation
sr = new StreamReader(webResponse.GetResponseStream());
reply = sr.ReadToEnd().Trim();
+ //Console.WriteLine("[REMOTE SIMULATION CONNECTOR]: ChilAgentUpdate reply was " + reply);
}
catch (WebException ex)
@@ -397,6 +428,7 @@ namespace OpenSim.Services.Connectors.Simulation
OSDMap args = Util.GetOSDMap(reply);
if (args == null)
{
+ //Console.WriteLine("[REMOTE SIMULATION CONNECTOR]: Error getting OSDMap from reply");
return false;
}
@@ -405,6 +437,7 @@ namespace OpenSim.Services.Connectors.Simulation
return true;
}
+ //Console.WriteLine("[REMOTE SIMULATION CONNECTOR]: DoRetrieveRootAgentCall returned status " + webResponse.StatusCode);
return false;
}
@@ -446,8 +479,18 @@ namespace OpenSim.Services.Connectors.Simulation
public bool CloseAgent(GridRegion destination, UUID id)
{
- string uri = destination.ServerURI + AgentPath() + id + "/" + destination.RegionID.ToString() + "/";
+ string uri = string.Empty;
+ try
+ {
+ uri = "http://" + destination.ExternalEndPoint.Address + ":" + destination.HttpPort + AgentPath() + id + "/" + destination.RegionID.ToString() + "/";
+ }
+ catch (Exception e)
+ {
+ m_log.Debug("[REMOTE SIMULATION CONNECTOR]: Unable to resolve external endpoint on agent close. Reason: " + e.Message);
+ return false;
+ }
+ //Console.WriteLine(" >>> DoCloseAgentCall <<< " + uri);
WebRequest request = WebRequest.Create(uri);
request.Method = "DELETE";
@@ -495,7 +538,7 @@ namespace OpenSim.Services.Connectors.Simulation
public bool CreateObject(GridRegion destination, ISceneObject sog, bool isLocalCall)
{
string uri
- = destination.ServerURI + ObjectPath() + sog.UUID + "/";
+ = "http://" + destination.ExternalEndPoint.Address + ":" + destination.HttpPort + ObjectPath() + sog.UUID + "/";
//m_log.Debug(" >>> DoCreateObjectCall <<< " + uri);
WebRequest ObjectCreateRequest = WebRequest.Create(uri);
diff --git a/OpenSim/Services/GridService/GridService.cs b/OpenSim/Services/GridService/GridService.cs
index 125c2be..e7988d6 100644
--- a/OpenSim/Services/GridService/GridService.cs
+++ b/OpenSim/Services/GridService/GridService.cs
@@ -479,7 +479,7 @@ namespace OpenSim.Services.GridService
OpenSim.Data.RegionFlags flags = (OpenSim.Data.RegionFlags)Convert.ToInt32(r.Data["flags"]);
MainConsole.Instance.Output(String.Format("{0,-20} {1}\n{2,-20} {3}\n{4,-39} {5}\n\n",
r.RegionName, r.RegionID,
- String.Format("{0},{1}", r.posX, r.posY), r.Data["serverURI"],
+ String.Format("{0},{1}", r.posX, r.posY), "http://" + r.Data["serverIP"].ToString() + ":" + r.Data["serverPort"].ToString(),
r.Data["owner_uuid"].ToString(), flags.ToString()));
}
return;
diff --git a/OpenSim/Services/GridService/HypergridLinker.cs b/OpenSim/Services/GridService/HypergridLinker.cs
index c273d21..b86fb6f 100644
--- a/OpenSim/Services/GridService/HypergridLinker.cs
+++ b/OpenSim/Services/GridService/HypergridLinker.cs
@@ -126,12 +126,11 @@ namespace OpenSim.Services.GridService
if (MainConsole.Instance != null)
{
- MainConsole.Instance.Commands.AddCommand("hypergrid", false, "link-region", "link-region []", "Link a HyperGrid Region", RunCommand);
- MainConsole.Instance.Commands.AddCommand("hypergrid", false, "legacy-link-region",
- "legacy-link-region []",
- "Link a hypergrid region (deprecated)", RunCommand);
+ MainConsole.Instance.Commands.AddCommand("hypergrid", false, "link-region",
+ "link-region :[:] ",
+ "Link a hypergrid region", RunCommand);
MainConsole.Instance.Commands.AddCommand("hypergrid", false, "unlink-region",
- "unlink-region ",
+ "unlink-region or : ",
"Unlink a hypergrid region", RunCommand);
MainConsole.Instance.Commands.AddCommand("hypergrid", false, "link-mapping", "link-mapping [ ] ",
"Set local coordinate to map HG regions to", RunCommand);
@@ -199,33 +198,28 @@ namespace OpenSim.Services.GridService
return null;
}
-
- public bool TryCreateLink(UUID scopeID, int xloc, int yloc, string externalRegionName, uint externalPort, string externalHostName, out GridRegion regInfo, out string reason)
- {
- return TryCreateLink(scopeID, xloc, yloc, externalRegionName, externalPort, externalHostName, null, out regInfo, out reason);
- }
-
- public bool TryCreateLink(UUID scopeID, int xloc, int yloc, string externalRegionName, uint externalPort, string externalHostName, string serverURI, out GridRegion regInfo, out string reason)
+
+
+ // From the command line and the 2 above
+ public bool TryCreateLink(UUID scopeID, int xloc, int yloc,
+ string externalRegionName, uint externalPort, string externalHostName, out GridRegion regInfo, out string reason)
{
m_log.DebugFormat("[HYPERGRID LINKER]: Link to {0}:{1}:{2}, in {3}-{4}", externalHostName, externalPort, externalRegionName, xloc, yloc);
reason = string.Empty;
regInfo = new GridRegion();
- if ( externalPort > 0)
- regInfo.HttpPort = externalPort;
- else
- regInfo.HttpPort = 0;
- if ( externalHostName != null)
- regInfo.ExternalHostName = externalHostName;
- else
- regInfo.ExternalHostName = "0.0.0.0";
- if ( serverURI != null)
- regInfo.ServerURI = serverURI;
-
+ regInfo.RegionName = externalRegionName;
+ regInfo.HttpPort = externalPort;
+ regInfo.ExternalHostName = externalHostName;
regInfo.RegionLocX = xloc;
regInfo.RegionLocY = yloc;
regInfo.ScopeID = scopeID;
+ // Big HACK for Simian Grid !!!
+ // We need to clean up all URLs used in OpenSim !!!
+ if (externalHostName.Contains("/"))
+ regInfo.ServerURI = externalHostName;
+
try
{
regInfo.InternalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), (int)0);
@@ -256,14 +250,9 @@ namespace OpenSim.Services.GridService
}
regInfo.RegionID = regionID;
+ if (regInfo.RegionName == string.Empty)
+ regInfo.RegionName = regInfo.ExternalHostName;
- if ( externalName == string.Empty )
- regInfo.RegionName = regInfo.ServerURI;
- else
- regInfo.RegionName = externalName;
-
- m_log.Debug("naming linked region " + regInfo.RegionName);
-
// Try get the map image
//regInfo.TerrainImage = m_GatekeeperConnector.GetMapImage(regionID, imageURL);
// I need a texture that works for this... the one I tried doesn't seem to be working
@@ -445,21 +434,6 @@ namespace OpenSim.Services.GridService
RunHGCommand(command, cmdparams);
}
-
- private void RunLinkRegionCommand(string[] cmdparams)
- {
- int xloc, yloc;
- string serverURI;
- string remoteName = null;
- xloc = Convert.ToInt32(cmdparams[0]) * (int)Constants.RegionSize;
- yloc = Convert.ToInt32(cmdparams[1]) * (int)Constants.RegionSize;
- serverURI = cmdparams[2];
- if (cmdparams.Length == 4)
- remoteName = cmdparams[3];
- string reason = string.Empty;
- GridRegion regInfo;
- TryCreateLink(UUID.Zero, xloc, yloc, remoteName, 0, null, serverURI, out regInfo, out reason);
- }
private void RunHGCommand(string command, string[] cmdparams)
{
@@ -483,18 +457,6 @@ namespace OpenSim.Services.GridService
}
else if (command.Equals("link-region"))
{
- if (cmdparams.Length > 0 && cmdparams.Length < 5)
- {
- RunLinkRegionCommand(cmdparams);
- }
- else
- {
- LinkRegionCmdUsage();
- }
- return;
- }
- else if (command.Equals("legacy-link-region"))
- {
if (cmdparams.Length < 3)
{
if ((cmdparams.Length == 1) || (cmdparams.Length == 2))
@@ -547,16 +509,12 @@ namespace OpenSim.Services.GridService
int xloc, yloc;
uint externalPort;
string externalHostName;
- string serverURI;
try
{
xloc = Convert.ToInt32(cmdparams[0]);
yloc = Convert.ToInt32(cmdparams[1]);
externalPort = Convert.ToUInt32(cmdparams[3]);
externalHostName = cmdparams[2];
- if ( cmdparams.Length == 4 ) {
-
- }
//internalPort = Convert.ToUInt32(cmdparams[4]);
//remotingPort = Convert.ToUInt32(cmdparams[5]);
}
diff --git a/OpenSim/Services/HypergridService/GatekeeperService.cs b/OpenSim/Services/HypergridService/GatekeeperService.cs
index 9e96163..3f5c4f1 100644
--- a/OpenSim/Services/HypergridService/GatekeeperService.cs
+++ b/OpenSim/Services/HypergridService/GatekeeperService.cs
@@ -157,7 +157,7 @@ namespace OpenSim.Services.HypergridService
string regionimage = "regionImage" + region.RegionID.ToString();
regionimage = regionimage.Replace("-", "");
- imageURL = region.ServerURI + "index.php?method=" + regionimage;
+ imageURL = "http://" + region.ExternalHostName + ":" + region.HttpPort + "/index.php?method=" + regionimage;
return true;
}
diff --git a/OpenSim/Services/HypergridService/UserAgentService.cs b/OpenSim/Services/HypergridService/UserAgentService.cs
index eb19fe2..eb6433c 100644
--- a/OpenSim/Services/HypergridService/UserAgentService.cs
+++ b/OpenSim/Services/HypergridService/UserAgentService.cs
@@ -134,28 +134,23 @@ namespace OpenSim.Services.HypergridService
public bool LoginAgentToGrid(AgentCircuitData agentCircuit, GridRegion gatekeeper, GridRegion finalDestination, IPEndPoint clientIP, out string reason)
{
m_log.DebugFormat("[USER AGENT SERVICE]: Request to login user {0} {1} (@{2}) to grid {3}",
- agentCircuit.firstname, agentCircuit.lastname, ((clientIP == null) ? "stored IP" : clientIP.Address.ToString()), gatekeeper.ServerURI);
+ agentCircuit.firstname, agentCircuit.lastname, ((clientIP == null) ? "stored IP" : clientIP.Address.ToString()),
+ gatekeeper.ExternalHostName +":"+ gatekeeper.HttpPort);
- m_log.Debug("LATG final server uri -> " + finalDestination.ServerURI );
// Take the IP address + port of the gatekeeper (reg) plus the info of finalDestination
GridRegion region = new GridRegion(gatekeeper);
- region.ServerURI = gatekeeper.ServerURI;
- region.ExternalHostName = finalDestination.ExternalHostName;
- region.InternalEndPoint = finalDestination.InternalEndPoint;
region.RegionName = finalDestination.RegionName;
region.RegionID = finalDestination.RegionID;
region.RegionLocX = finalDestination.RegionLocX;
region.RegionLocY = finalDestination.RegionLocY;
// Generate a new service session
- agentCircuit.ServiceSessionID = region.ServerURI + ";" + UUID.Random();
+ agentCircuit.ServiceSessionID = "http://" + region.ExternalHostName + ":" + region.HttpPort + ";" + UUID.Random();
TravelingAgentInfo old = UpdateTravelInfo(agentCircuit, region);
- m_log.Debug("region ServerURI -> " + region.ServerURI);
-
bool success = false;
string myExternalIP = string.Empty;
- string gridName = gatekeeper.ServerURI;
+ string gridName = "http://" + gatekeeper.ExternalHostName + ":" + gatekeeper.HttpPort;
if (m_GridName == gridName)
success = m_GatekeeperService.LoginAgent(agentCircuit, finalDestination, out reason);
else
@@ -164,7 +159,7 @@ namespace OpenSim.Services.HypergridService
if (!success)
{
m_log.DebugFormat("[USER AGENT SERVICE]: Unable to login user {0} {1} to grid {2}, reason: {3}",
- agentCircuit.firstname, agentCircuit.lastname, region.ServerURI, reason);
+ agentCircuit.firstname, agentCircuit.lastname, region.ExternalHostName + ":" + region.HttpPort, reason);
// restore the old travel info
lock (m_TravelingAgents)
@@ -215,7 +210,7 @@ namespace OpenSim.Services.HypergridService
m_TravelingAgents[agentCircuit.SessionID] = travel;
}
travel.UserID = agentCircuit.AgentID;
- travel.GridExternalName = region.ServerURI;
+ travel.GridExternalName = "http://" + region.ExternalHostName + ":" + region.HttpPort;
travel.ServiceToken = agentCircuit.ServiceSessionID;
if (old != null)
travel.ClientIPAddress = old.ClientIPAddress;
diff --git a/OpenSim/Services/Interfaces/IGridService.cs b/OpenSim/Services/Interfaces/IGridService.cs
index 6d3bff7..77230a3 100644
--- a/OpenSim/Services/Interfaces/IGridService.cs
+++ b/OpenSim/Services/Interfaces/IGridService.cs
@@ -115,20 +115,8 @@ namespace OpenSim.Services.Interfaces
///
public string ServerURI
{
- get {
- if ( m_serverURI != string.Empty ) {
- return m_serverURI;
- } else {
- return "http://" + m_externalHostName + ":" + m_httpPort + "/";
- }
- }
- set {
- if ( value.EndsWith("/") ) {
- m_serverURI = value;
- } else {
- m_serverURI = value + '/';
- }
- }
+ get { return m_serverURI; }
+ set { m_serverURI = value; }
}
protected string m_serverURI;
@@ -176,7 +164,6 @@ namespace OpenSim.Services.Interfaces
public GridRegion()
{
- m_serverURI = string.Empty;
}
public GridRegion(int regionLocX, int regionLocY, IPEndPoint internalEndPoint, string externalUri)
diff --git a/OpenSim/Services/LLLoginService/LLLoginResponse.cs b/OpenSim/Services/LLLoginService/LLLoginResponse.cs
index f985ab2..0da1715 100644
--- a/OpenSim/Services/LLLoginService/LLLoginResponse.cs
+++ b/OpenSim/Services/LLLoginService/LLLoginResponse.cs
@@ -333,7 +333,34 @@ namespace OpenSim.Services.LLLoginService
private void FillOutSeedCap(AgentCircuitData aCircuit, GridRegion destination, IPEndPoint ipepClient)
{
- SeedCapability = destination.ServerURI + CapsUtil.GetCapsSeedPath(aCircuit.CapsPath);
+ string capsSeedPath = String.Empty;
+
+ // Don't use the following! It Fails for logging into any region not on the same port as the http server!
+ // Kept here so it doesn't happen again!
+ // response.SeedCapability = regionInfo.ServerURI + capsSeedPath;
+
+ #region IP Translation for NAT
+ if (ipepClient != null)
+ {
+ capsSeedPath
+ = "http://"
+ + NetworkUtil.GetHostFor(ipepClient.Address, destination.ExternalHostName)
+ + ":"
+ + destination.HttpPort
+ + CapsUtil.GetCapsSeedPath(aCircuit.CapsPath);
+ }
+ else
+ {
+ capsSeedPath
+ = "http://"
+ + destination.ExternalHostName
+ + ":"
+ + destination.HttpPort
+ + CapsUtil.GetCapsSeedPath(aCircuit.CapsPath);
+ }
+ #endregion
+
+ SeedCapability = capsSeedPath;
}
private void SetDefaultValues()
--
cgit v1.1