Fix bug where a failed QueryAccess to a remove region would always have the reason "Communications failure" no matter what the destination region actually returned
parent
40c78b0624
commit
96cde407ab
|
@ -226,13 +226,13 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
|
||||||
return m_remoteConnector.RetrieveAgent(destination, id, out agent);
|
return m_remoteConnector.RetrieveAgent(destination, id, out agent);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool QueryAccess(GridRegion destination, UUID id, Vector3 position, out string version, out string reason)
|
public bool QueryAccess(GridRegion destination, UUID id, Vector3 position, out string version, out string reason)
|
||||||
{
|
{
|
||||||
reason = "Communications failure";
|
reason = "Communications failure";
|
||||||
version = "Unknown";
|
version = "Unknown";
|
||||||
|
|
||||||
if (destination == null)
|
if (destination == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -245,7 +245,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
|
||||||
return m_remoteConnector.QueryAccess(destination, id, position, out version, out reason);
|
return m_remoteConnector.QueryAccess(destination, id, position, out version, out reason);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool ReleaseAgent(UUID origin, UUID id, string uri)
|
public bool ReleaseAgent(UUID origin, UUID id, string uri)
|
||||||
|
|
|
@ -328,25 +328,32 @@ namespace OpenSim.Services.Connectors.Simulation
|
||||||
if (data["version"] != null && data["version"].AsString() != string.Empty)
|
if (data["version"] != null && data["version"].AsString() != string.Empty)
|
||||||
version = data["version"].AsString();
|
version = data["version"].AsString();
|
||||||
|
|
||||||
m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: QueryAccess to {0} returned {1} version {2} ({3})", uri, success, version, data["version"].AsString());
|
m_log.DebugFormat(
|
||||||
|
"[REMOTE SIMULATION CONNECTOR]: QueryAccess to {0} returned {1}, reason {2}, version {3} ({4})",
|
||||||
|
uri, success, reason, version, data["version"].AsString());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!success)
|
if (!success)
|
||||||
{
|
{
|
||||||
if (result.ContainsKey("Message"))
|
// If we don't check this then OpenSimulator 0.7.3.1 and some period before will never see the
|
||||||
|
// actual failure message
|
||||||
|
if (!result.ContainsKey("_Result"))
|
||||||
{
|
{
|
||||||
string message = result["Message"].AsString();
|
if (result.ContainsKey("Message"))
|
||||||
if (message == "Service request failed: [MethodNotAllowed] MethodNotAllowed") // Old style region
|
|
||||||
{
|
{
|
||||||
m_log.Info("[REMOTE SIMULATION CONNECTOR]: The above web util error was caused by a TP to a sim that doesn't support QUERYACCESS and can be ignored");
|
string message = result["Message"].AsString();
|
||||||
return true;
|
if (message == "Service request failed: [MethodNotAllowed] MethodNotAllowed") // Old style region
|
||||||
|
{
|
||||||
|
m_log.Info("[REMOTE SIMULATION CONNECTOR]: The above web util error was caused by a TP to a sim that doesn't support QUERYACCESS and can be ignored");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
reason = result["Message"];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
reason = "Communications failure";
|
||||||
}
|
}
|
||||||
|
|
||||||
reason = result["Message"];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
reason = "Communications failure";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -356,7 +363,7 @@ namespace OpenSim.Services.Connectors.Simulation
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
m_log.WarnFormat("[REMOTE SIMULATION CONNECTOR] QueryAcess failed with exception; {0}",e.ToString());
|
m_log.WarnFormat("[REMOTE SIMULATION CONNECTOR] QueryAcesss failed with exception; {0}",e.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue