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); GridRegion info = m_scene.GridService.GetRegionByName(m_scene.RegionInfo.ScopeID, mapName);
if (info != null) regionInfos.Add(info); 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>(); List<MapBlockData> blocks = new List<MapBlockData>();
MapBlockData data; MapBlockData data;

View File

@ -162,6 +162,7 @@ namespace OpenSim.Services.GridService
#region Link Region #region Link Region
// from map search
public GridRegion LinkRegion(UUID scopeID, string regionDescriptor) public GridRegion LinkRegion(UUID scopeID, string regionDescriptor)
{ {
string reason = string.Empty; string reason = string.Empty;
@ -171,7 +172,7 @@ namespace OpenSim.Services.GridService
private static Random random = new Random(); 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) public GridRegion TryLinkRegionToCoords(UUID scopeID, string mapName, int xloc, int yloc, out string reason)
{ {
return TryLinkRegionToCoords(scopeID, mapName, xloc, yloc, UUID.Zero, out reason); return TryLinkRegionToCoords(scopeID, mapName, xloc, yloc, UUID.Zero, out reason);
@ -180,6 +181,10 @@ namespace OpenSim.Services.GridService
public GridRegion TryLinkRegionToCoords(UUID scopeID, string mapName, int xloc, int yloc, UUID ownerID, out string reason) public GridRegion TryLinkRegionToCoords(UUID scopeID, string mapName, int xloc, int yloc, UUID ownerID, out string reason)
{ {
reason = string.Empty; reason = string.Empty;
GridRegion regInfo = null;
if (!mapName.StartsWith("http"))
{
string host = "127.0.0.1"; string host = "127.0.0.1";
string portstr; string portstr;
string regionName = ""; string regionName = "";
@ -202,24 +207,23 @@ namespace OpenSim.Services.GridService
regionName = parts[2]; 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); bool success = TryCreateLink(scopeID, xloc, yloc, regionName, port, host, ownerID, out regInfo, out reason);
if (success) if (success)
{ {
regInfo.RegionName = mapName; regInfo.RegionName = mapName;
return regInfo; return regInfo;
} }
}
else
{
string[] parts = mapName.Split(new char[] {' '});
string regionName = String.Empty;
if (parts.Length > 1)
regionName = parts[1];
if (TryCreateLink(scopeID, xloc, yloc, regionName, 0, null, parts[0], ownerID, out regInfo, out reason))
return regInfo;
}
return null; 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) 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), ((serverURI == null) ? (externalHostName + ":" + externalPort) : serverURI),
remoteRegionName, xloc / Constants.RegionSize, yloc / Constants.RegionSize); remoteRegionName, xloc / Constants.RegionSize, yloc / Constants.RegionSize);
@ -324,7 +328,7 @@ namespace OpenSim.Services.GridService
regInfo.TerrainImage = m_GatekeeperConnector.GetMapImage(regionID, imageURL, m_MapTileDirectory); regInfo.TerrainImage = m_GatekeeperConnector.GetMapImage(regionID, imageURL, m_MapTileDirectory);
AddHyperlinkRegion(regInfo, handle); 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; return true;
} }