* Refactored out Create() methods to ensure proper transformation between RegionProfileData and RegionInfo

* Created ToRegionInfo method, still not using it pending peer review. 
* This is a preparatory commit for a subsequent login service refactoring.
0.6.5-rc1
lbsa71 2009-03-10 09:05:06 +00:00
parent 973ba9c9b7
commit 1b34b94331
4 changed files with 62 additions and 30 deletions

View File

@ -280,5 +280,29 @@ namespace OpenSim.Data
set { originUUID = value; } set { originUUID = value; }
} }
public RegionInfo ToRegionInfo( )
{
return RegionInfo.Create(UUID, regionName, regionLocX, regionLocY, serverIP, httpPort, serverPort, remotingPort);
}
public static RegionProfileData Create(UUID regionID, string regionName, uint locX, uint locY, string externalHostName, uint regionPort, uint httpPort, uint remotingPort, string serverUri)
{
RegionProfileData regionProfile;
regionProfile = new RegionProfileData();
regionProfile.regionLocX = locX;
regionProfile.regionLocY = locY;
regionProfile.regionHandle =
Utils.UIntsToLong((regionProfile.regionLocX * Constants.RegionSize),
(regionProfile.regionLocY*Constants.RegionSize));
regionProfile.serverIP = externalHostName;
regionProfile.serverPort = regionPort;
regionProfile.httpPort = httpPort;
regionProfile.remotingPort = remotingPort;
regionProfile.serverURI = serverUri;
regionProfile.httpServerURI = "http://" + externalHostName + ":" + httpPort + "/";
regionProfile.UUID = regionID;
regionProfile.regionName = regionName;
return regionProfile;
}
} }
} }

View File

@ -56,20 +56,17 @@ namespace OpenSim.Data
if (!responseData.ContainsKey("error")) if (!responseData.ContainsKey("error"))
{ {
simData = new RegionProfileData(); uint locX = Convert.ToUInt32((string)responseData["region_locx"]);
simData.regionLocX = Convert.ToUInt32((string) responseData["region_locx"]); uint locY = Convert.ToUInt32((string)responseData["region_locy"]);
simData.regionLocY = Convert.ToUInt32((string) responseData["region_locy"]); string externalHostName = (string)responseData["sim_ip"];
simData.regionHandle = uint simPort = Convert.ToUInt32((string)responseData["sim_port"]);
Utils.UIntsToLong((simData.regionLocX * Constants.RegionSize), uint httpPort = Convert.ToUInt32((string)responseData["http_port"]);
(simData.regionLocY*Constants.RegionSize)); uint remotingPort = Convert.ToUInt32((string)responseData["remoting_port"]);
simData.serverIP = (string) responseData["sim_ip"]; string serverUri = (string)responseData["server_uri"];
simData.serverPort = Convert.ToUInt32((string) responseData["sim_port"]); UUID regionID = new UUID((string)responseData["region_UUID"]);
simData.httpPort = Convert.ToUInt32((string) responseData["http_port"]); string regionName = (string)responseData["region_name"];
simData.remotingPort = Convert.ToUInt32((string) responseData["remoting_port"]);
simData.serverURI = (string) responseData["server_uri"]; simData = RegionProfileData.Create(regionID, regionName, locX, locY, externalHostName, simPort, httpPort, remotingPort, serverUri);
simData.httpServerURI = "http://" + (string)responseData["sim_ip"] + ":" + simData.httpPort.ToString() + "/";
simData.UUID = new UUID((string) responseData["region_UUID"]);
simData.regionName = (string) responseData["region_name"];
} }
return simData; return simData;

View File

@ -675,5 +675,18 @@ namespace OpenSim.Framework
if (args["proxy_url"] != null) if (args["proxy_url"] != null)
proxyUrl = args["proxy_url"].AsString(); proxyUrl = args["proxy_url"].AsString();
} }
public static RegionInfo Create(UUID regionID, string regionName, uint regX, uint regY, string externalHostName, uint httpPort, uint simPort, uint remotingPort)
{
RegionInfo regionInfo;
IPEndPoint neighbourInternalEndPoint = new IPEndPoint(Util.GetHostFromDNS(externalHostName), (int)simPort);
regionInfo = new RegionInfo(regX, regY, neighbourInternalEndPoint, externalHostName);
regionInfo.RemotingPort = remotingPort;
regionInfo.RemotingAddress = externalHostName;
regionInfo.HttpPort = httpPort;
regionInfo.RegionID = regionID;
regionInfo.RegionName = regionName;
return regionInfo;
}
} }
} }

View File

@ -405,24 +405,22 @@ namespace OpenSim.Region.Communications.OGS1
uint regX = Convert.ToUInt32((string) responseData["region_locx"]); uint regX = Convert.ToUInt32((string) responseData["region_locx"]);
uint regY = Convert.ToUInt32((string) responseData["region_locy"]); uint regY = Convert.ToUInt32((string) responseData["region_locy"]);
string externalHostName = (string) responseData["sim_ip"]; string externalHostName = (string) responseData["sim_ip"];
uint port = Convert.ToUInt32(responseData["sim_port"]); uint simPort = Convert.ToUInt32(responseData["sim_port"]);
string regionName = (string)responseData["region_name"];
UUID regionID = new UUID((string)responseData["region_UUID"]);
uint remotingPort = Convert.ToUInt32((string)responseData["remoting_port"]);
uint httpPort = 9000;
if (responseData.ContainsKey("http_port"))
{
httpPort = Convert.ToUInt32((string)responseData["http_port"]);
}
// string externalUri = (string) responseData["sim_uri"]; // string externalUri = (string) responseData["sim_uri"];
//IPEndPoint neighbourInternalEndPoint = new IPEndPoint(IPAddress.Parse(internalIpStr), (int) port); //IPEndPoint neighbourInternalEndPoint = new IPEndPoint(IPAddress.Parse(internalIpStr), (int) port);
IPEndPoint neighbourInternalEndPoint = new IPEndPoint(Util.GetHostFromDNS(externalHostName), (int)port); regionInfo = RegionInfo.Create(regionID, regionName, regX, regY, externalHostName, httpPort, simPort, remotingPort);
regionInfo = new RegionInfo(regX, regY, neighbourInternalEndPoint, externalHostName);
regionInfo.RemotingPort = Convert.ToUInt32((string) responseData["remoting_port"]);
regionInfo.RemotingAddress = externalHostName;
if (responseData.ContainsKey("http_port"))
{
regionInfo.HttpPort = Convert.ToUInt32((string) responseData["http_port"]);
}
regionInfo.RegionID = new UUID((string) responseData["region_UUID"]);
regionInfo.RegionName = (string) responseData["region_name"];
lock (m_remoteRegionInfoCache) lock (m_remoteRegionInfoCache)
{ {