public bool LinkRegion(string regionName, out UUID regionID, out ulong regionHandle, out string externalName, out string imageURL, out string reason)
{
regionID = UUID.Zero;
regionHandle = 0;
externalName = m_ExternalName + ((regionName != string.Empty) ? " " + regionName : "");
imageURL = string.Empty;
reason = string.Empty;
GridRegion region = null;
MainConsole.Instance.DebugFormat ("[GATEKEEPER SERVICE]: Request to link to {0}", (regionName == string.Empty) ? "default region" : regionName);
if (!m_AllowTeleportsToAnyRegion || regionName == string.Empty)
{
if(!m_foundDefaultRegion)
m_DefaultGatewayRegion = FindDefaultRegion();
if (m_DefaultGatewayRegion != null)
region = m_DefaultGatewayRegion;
else
{
reason = "Grid setup problem. Try specifying a particular region here.";
return false;
}
}
else
{
region = m_GridService.GetRegionByName(null, regionName);
if (region == null)
{
if(!m_foundDefaultRegion)
m_DefaultGatewayRegion = FindDefaultRegion();
if (m_DefaultGatewayRegion != null)
region = m_DefaultGatewayRegion;
if (region == null)
{
reason = "Region not found";
return false;
}
}
}
regionID = region.RegionID;
regionHandle = region.RegionHandle;
string regionimage = "regionImage" + regionID.ToString ();
regionimage = regionimage.Replace ("-", "");
imageURL = region.ServerURI + "/" + "index.php?method=" + regionimage;
return true;
}