Merge branch 'master' into careminster-presence-refactor

This commit is contained in:
Melanie
2010-09-03 03:37:18 +01:00
14 changed files with 234 additions and 92 deletions

View File

@@ -86,13 +86,8 @@ namespace OpenSim.Services.Connectors.Hypergrid
paramList.Add(hash);
XmlRpcRequest request = new XmlRpcRequest("link_region", paramList);
IPEndPoint ext = info.ExternalEndPoint;
string uri = "";
if (ext != null)
{
uri = "http://" + ext.Address + ":" + info.HttpPort + "/";
}
//m_log.Debug("[GATEKEEPER SERVICE CONNECTOR]: Linking to " + uri);
string uri = "http://" + ((info.ServerURI == string.Empty) ? info.ExternalEndPoint.Address + ":" + info.HttpPort + "/" : info.ServerURI);
m_log.Debug("[GATEKEEPER SERVICE CONNECTOR]: Linking to " + uri);
XmlRpcResponse response = null;
try
{
@@ -193,12 +188,7 @@ namespace OpenSim.Services.Connectors.Hypergrid
paramList.Add(hash);
XmlRpcRequest request = new XmlRpcRequest("get_region", paramList);
IPEndPoint ext = gatekeeper.ExternalEndPoint;
string uri = "";
if (ext != null)
{
uri = "http://" + ext.Address + ":" + gatekeeper.HttpPort + "/";
}
string uri = "http://" + ((gatekeeper.ServerURI == string.Empty) ? gatekeeper.ExternalEndPoint.Address + ":" + gatekeeper.HttpPort + "/" : gatekeeper.ServerURI);
m_log.Debug("[GATEKEEPER SERVICE CONNECTOR]: contacting " + uri);
XmlRpcResponse response = null;
try

View File

@@ -51,15 +51,16 @@ namespace OpenSim.Services.Connectors.Hypergrid
MethodBase.GetCurrentMethod().DeclaringType);
string m_ServerURL;
Uri m_Uri;
public UserAgentServiceConnector(string url)
{
m_ServerURL = url;
// Doing this here, because XML-RPC or mono have some strong ideas about
// caching DNS translations.
try
{
m_Uri = new Uri(m_ServerURL);
Uri m_Uri = new Uri(m_ServerURL);
IPAddress ip = Util.GetHostFromDNS(m_Uri.Host);
m_ServerURL = "http://" + ip.ToString() + ":" + m_Uri.Port;
m_ServerURL = m_ServerURL.Replace(m_Uri.Host, ip.ToString()); ;
}
catch (Exception e)
{

View File

@@ -104,17 +104,23 @@ namespace OpenSim.Services.Connectors.Simulation
return false;
}
// Eventually, we want to use a caps url instead of the agentID
string uri = string.Empty;
try
// HACK -- Simian grid make it work!!!
if (destination.ServerURI != string.Empty)
uri = "http://" + destination.ServerURI + AgentPath() + aCircuit.AgentID + "/";
else
{
uri = "http://" + destination.ExternalEndPoint.Address + ":" + destination.HttpPort + AgentPath() + aCircuit.AgentID + "/";
}
catch (Exception e)
{
m_log.Debug("[REMOTE SIMULATION CONNECTOR]: Unable to resolve external endpoint on agent create. Reason: " + e.Message);
reason = e.Message;
return false;
try
{
uri = "http://" + destination.ExternalEndPoint.Address + ":" + destination.HttpPort + AgentPath() + aCircuit.AgentID + "/";
}
catch (Exception e)
{
m_log.Debug("[REMOTE SIMULATION CONNECTOR]: Unable to resolve external endpoint on agent create. Reason: " + e.Message);
reason = e.Message;
return false;
}
}
//Console.WriteLine(" >>> DoCreateChildAgentCall <<< " + uri);

View File

@@ -158,7 +158,7 @@ namespace OpenSim.Services.GridService
string host = "127.0.0.1";
string portstr;
string regionName = "";
uint port = 9000;
uint port = 0;
string[] parts = mapName.Split(new char[] { ':' });
if (parts.Length >= 1)
{
@@ -177,18 +177,16 @@ namespace OpenSim.Services.GridService
regionName = parts[2];
}
// Sanity check.
//IPAddress ipaddr = null;
try
{
//ipaddr = Util.GetHostFromDNS(host);
Util.GetHostFromDNS(host);
}
catch
{
reason = "Malformed hostname";
return null;
}
//// Sanity check.
//try
//{
// Util.GetHostFromDNS(host);
//}
//catch
//{
// reason = "Malformed hostname";
// return null;
//}
GridRegion regInfo;
bool success = TryCreateLink(scopeID, xloc, yloc, regionName, port, host, out regInfo, out reason);
@@ -217,6 +215,11 @@ namespace OpenSim.Services.GridService
regInfo.RegionLocY = yloc;
regInfo.ScopeID = scopeID;
// Big HACK for Simian Grid !!!
// We need to clean up all URLs used in OpenSim !!!
if (externalHostName.Contains("/"))
regInfo.ServerURI = externalHostName;
try
{
regInfo.InternalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), (int)0);

View File

@@ -293,13 +293,35 @@ namespace OpenSim.Services.InventoryService
public virtual bool AddFolder(InventoryFolderBase folder)
{
InventoryFolderBase check = GetFolder(folder);
if (check != null)
return false;
XInventoryFolder xFolder = ConvertFromOpenSim(folder);
return m_Database.StoreFolder(xFolder);
}
public virtual bool UpdateFolder(InventoryFolderBase folder)
{
return AddFolder(folder);
XInventoryFolder xFolder = ConvertFromOpenSim(folder);
InventoryFolderBase check = GetFolder(folder);
if (check == null)
return AddFolder(folder);
if (check.Type != -1 || xFolder.type != -1)
{
if (xFolder.version > check.Version)
return false;
check.Version = (ushort)xFolder.version;
xFolder = ConvertFromOpenSim(check);
return m_Database.StoreFolder(xFolder);
}
if (xFolder.version < check.Version)
xFolder.version = check.Version;
xFolder.folderID = check.ID;
return m_Database.StoreFolder(xFolder);
}
public virtual bool MoveFolder(InventoryFolderBase folder)