Make HG map search consistent with new syntax for link-region, i.e. http://foo.org. Old syntax (foo.org) is still supported, but has surprising results when ppl search again, because internally the HG link names start with http.

viewer-2-initial-appearance
Diva Canto 2011-01-07 11:38:54 -08:00
parent c18bcf3d8d
commit 8c0e156b4d
2 changed files with 43 additions and 39 deletions

View File

@ -102,7 +102,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
GridRegion info = m_scene.GridService.GetRegionByName(m_scene.RegionInfo.ScopeID, mapName);
if (info != null) regionInfos.Add(info);
}
m_log.DebugFormat("[MAPSEARCHMODULE]: search returned {0} regions", regionInfos.Count);
m_log.DebugFormat("[MAPSEARCHMODULE]: search {0} returned {1} regions", mapName, regionInfos.Count);
List<MapBlockData> blocks = new List<MapBlockData>();
MapBlockData data;

View File

@ -162,6 +162,7 @@ namespace OpenSim.Services.GridService
#region Link Region
// from map search
public GridRegion LinkRegion(UUID scopeID, string regionDescriptor)
{
string reason = string.Empty;
@ -171,7 +172,7 @@ namespace OpenSim.Services.GridService
private static Random random = new Random();
// From the command line link-region
// From the command line link-region (obsolete) and the map
public GridRegion TryLinkRegionToCoords(UUID scopeID, string mapName, int xloc, int yloc, out string reason)
{
return TryLinkRegionToCoords(scopeID, mapName, xloc, yloc, UUID.Zero, out reason);
@ -180,45 +181,48 @@ namespace OpenSim.Services.GridService
public GridRegion TryLinkRegionToCoords(UUID scopeID, string mapName, int xloc, int yloc, UUID ownerID, out string reason)
{
reason = string.Empty;
string host = "127.0.0.1";
string portstr;
string regionName = "";
uint port = 0;
string[] parts = mapName.Split(new char[] { ':' });
if (parts.Length >= 1)
GridRegion regInfo = null;
if (!mapName.StartsWith("http"))
{
host = parts[0];
string host = "127.0.0.1";
string portstr;
string regionName = "";
uint port = 0;
string[] parts = mapName.Split(new char[] { ':' });
if (parts.Length >= 1)
{
host = parts[0];
}
if (parts.Length >= 2)
{
portstr = parts[1];
//m_log.Debug("-- port = " + portstr);
if (!UInt32.TryParse(portstr, out port))
regionName = parts[1];
}
// always take the last one
if (parts.Length >= 3)
{
regionName = parts[2];
}
bool success = TryCreateLink(scopeID, xloc, yloc, regionName, port, host, ownerID, out regInfo, out reason);
if (success)
{
regInfo.RegionName = mapName;
return regInfo;
}
}
if (parts.Length >= 2)
else
{
portstr = parts[1];
//m_log.Debug("-- port = " + portstr);
if (!UInt32.TryParse(portstr, out port))
string[] parts = mapName.Split(new char[] {' '});
string regionName = String.Empty;
if (parts.Length > 1)
regionName = parts[1];
}
// always take the last one
if (parts.Length >= 3)
{
regionName = parts[2];
}
//// Sanity check.
//try
//{
// Util.GetHostFromDNS(host);
//}
//catch
//{
// reason = "Malformed hostname";
// return null;
//}
GridRegion regInfo;
bool success = TryCreateLink(scopeID, xloc, yloc, regionName, port, host, ownerID, out regInfo, out reason);
if (success)
{
regInfo.RegionName = mapName;
return regInfo;
if (TryCreateLink(scopeID, xloc, yloc, regionName, 0, null, parts[0], ownerID, out regInfo, out reason))
return regInfo;
}
return null;
@ -231,7 +235,7 @@ namespace OpenSim.Services.GridService
public bool TryCreateLink(UUID scopeID, int xloc, int yloc, string remoteRegionName, uint externalPort, string externalHostName, string serverURI, UUID ownerID, out GridRegion regInfo, out string reason)
{
m_log.DebugFormat("[HYPERGRID LINKER]: Link to {0}:{1}, in {2}-{3}",
m_log.DebugFormat("[HYPERGRID LINKER]: Link to {0} {1}, in {2}-{3}",
((serverURI == null) ? (externalHostName + ":" + externalPort) : serverURI),
remoteRegionName, xloc / Constants.RegionSize, yloc / Constants.RegionSize);
@ -324,7 +328,7 @@ namespace OpenSim.Services.GridService
regInfo.TerrainImage = m_GatekeeperConnector.GetMapImage(regionID, imageURL, m_MapTileDirectory);
AddHyperlinkRegion(regInfo, handle);
m_log.InfoFormat("[HYPERGRID LINKER]: Successfully linked to region_uuid {0} with image {1}", regInfo.RegionID, regInfo.TerrainImage);
m_log.InfoFormat("[HYPERGRID LINKER]: Successfully linked to region {0} with image {1}", regInfo.RegionName, regInfo.TerrainImage);
return true;
}