Mantis#2811. Thank you kindly, Diva for a patch that resolves

some of our DNS/dotted decimal issues that plague teleporting.
We are increasing the MajorInterfaceVersion from 1 to 2 in the
gridserver, so sims will need to be updated on various grids.
0.6.1-post-fixes
Charles Krinke 2008-12-13 16:25:20 +00:00
parent 40bbf886f2
commit 6cf0b81864
4 changed files with 16 additions and 19 deletions

View File

@ -161,7 +161,7 @@ namespace OpenSim.Data
simData.httpPort = Convert.ToUInt32((string) responseData["http_port"]);
simData.remotingPort = Convert.ToUInt32((string) responseData["remoting_port"]);
simData.serverURI = (string) responseData["server_uri"];
simData.httpServerURI = "http://" + (string)responseData["sim_host"] + ":" + simData.httpPort.ToString() + "/";
simData.httpServerURI = "http://" + (string)responseData["sim_ip"] + ":" + simData.httpPort.ToString() + "/";
simData.UUID = new UUID((string) responseData["region_UUID"]);
simData.regionName = (string) responseData["region_name"];
}

View File

@ -48,6 +48,6 @@ namespace OpenSim
/// of the code that is too old.
///
/// </value>
public readonly static int MajorInterfaceVersion = 1;
public readonly static int MajorInterfaceVersion = 2;
}
}

View File

@ -563,8 +563,7 @@ namespace OpenSim.Grid.GridServer
foreach (RegionProfileData aSim in neighbours)
{
NeighbourBlock = new Hashtable();
NeighbourBlock["sim_host"] = aSim.serverIP;
NeighbourBlock["sim_ip"] = Util.GetHostFromDNS(aSim.serverIP.ToString()).ToString();
NeighbourBlock["sim_ip"] = aSim.serverIP;
NeighbourBlock["sim_port"] = aSim.serverPort.ToString();
NeighbourBlock["region_locx"] = aSim.regionLocX.ToString();
NeighbourBlock["region_locy"] = aSim.regionLocY.ToString();
@ -594,8 +593,7 @@ namespace OpenSim.Grid.GridServer
(uint)(sim.regionLocY + y) * Constants.RegionSize));
NeighbourBlock = new Hashtable();
NeighbourBlock["sim_host"] = neighbour.serverIP;
NeighbourBlock["sim_ip"] = Util.GetHostFromDNS(neighbour.serverIP).ToString();
NeighbourBlock["sim_ip"] = neighbour.serverIP;
NeighbourBlock["sim_port"] = neighbour.serverPort.ToString();
NeighbourBlock["region_locx"] = neighbour.regionLocX.ToString();
NeighbourBlock["region_locy"] = neighbour.regionLocY.ToString();
@ -813,8 +811,7 @@ namespace OpenSim.Grid.GridServer
{
m_log.Info("[DATA]: found " + (string)simData.regionName + " regionHandle = " +
(string)requestData["region_handle"]);
responseData["sim_ip"] = Util.GetHostFromDNS(simData.serverIP).ToString();
responseData["sim_host"] = simData.serverIP;
responseData["sim_ip"] = simData.serverIP;
responseData["sim_port"] = simData.serverPort.ToString();
responseData["server_uri"] = simData.serverURI;
responseData["http_port"] = simData.httpPort.ToString();
@ -881,7 +878,7 @@ namespace OpenSim.Grid.GridServer
// For Sugilite compatibility
simProfileBlock["regionhandle"] = aSim.regionHandle.ToString();
simProfileBlock["sim_ip"] = aSim.serverIP.ToString();
simProfileBlock["sim_ip"] = aSim.serverIP;
simProfileBlock["sim_port"] = aSim.serverPort.ToString();
simProfileBlock["sim_uri"] = aSim.serverURI.ToString();
simProfileBlock["uuid"] = aSim.UUID.ToString();
@ -1044,7 +1041,7 @@ namespace OpenSim.Grid.GridServer
respstring += "<sim>";
respstring += "<uuid>" + TheSim.ToString() + "</uuid>";
respstring += "<regionname>" + TheSim.regionName + "</regionname>";
respstring += "<sim_ip>" + Util.GetHostFromDNS(TheSim.serverIP).ToString() + "</sim_ip>";
respstring += "<sim_ip>" + TheSim.serverIP + "</sim_ip>";
respstring += "<sim_port>" + TheSim.serverPort.ToString() + "</sim_port>";
respstring += "<region_locx>" + TheSim.regionLocX.ToString() + "</region_locx>";
respstring += "<region_locy>" + TheSim.regionLocY.ToString() + "</region_locy>";

View File

@ -410,16 +410,17 @@ namespace OpenSim.Region.Communications.OGS1
uint regX = Convert.ToUInt32((string) responseData["region_locx"]);
uint regY = Convert.ToUInt32((string) responseData["region_locy"]);
string internalIpStr = (string) responseData["sim_ip"];
string externalHostName = (string) responseData["sim_ip"];
uint port = Convert.ToUInt32(responseData["sim_port"]);
// string externalUri = (string) responseData["sim_uri"];
IPEndPoint neighbourInternalEndPoint = new IPEndPoint(IPAddress.Parse(internalIpStr), (int) port);
// string neighbourExternalUri = externalUri;
regionInfo = new RegionInfo(regX, regY, neighbourInternalEndPoint, internalIpStr);
//IPEndPoint neighbourInternalEndPoint = new IPEndPoint(IPAddress.Parse(internalIpStr), (int) port);
IPEndPoint neighbourInternalEndPoint = new IPEndPoint(Util.GetHostFromDNS(externalHostName), (int)port);
regionInfo = new RegionInfo(regX, regY, neighbourInternalEndPoint, externalHostName);
regionInfo.RemotingPort = Convert.ToUInt32((string) responseData["remoting_port"]);
regionInfo.RemotingAddress = internalIpStr;
regionInfo.RemotingAddress = externalHostName;
if (responseData.ContainsKey("http_port"))
{
@ -437,11 +438,11 @@ namespace OpenSim.Region.Communications.OGS1
}
}
}
catch
catch (Exception e)
{
m_log.Error("[OGS1 GRID SERVICES]: " +
"Region lookup failed for: " + regionHandle.ToString() +
" - Is the GridServer down?");
" - Is the GridServer down?" + e.ToString());
return null;
}
}
@ -1551,8 +1552,7 @@ namespace OpenSim.Region.Communications.OGS1
bool available = false;
bool timed_out = true;
IPAddress ia;
IPAddress.TryParse(address, out ia);
IPAddress ia = Util.GetHostFromDNS(address);
IPEndPoint m_EndPoint;
try
{