Permalink
Browse files

Fix bug where a failed QueryAccess to a remove region would always ha…

…ve the reason "Communications failure" no matter what the destination region actually returned
  • Loading branch information...
1 parent 40c78b0 commit 96cde407ab0d40856fb10b3b9f304433ffe734a2 @justincc justincc committed May 25, 2012
@@ -226,13 +226,13 @@ public bool RetrieveAgent(GridRegion destination, UUID id, out IAgentData agent)
return m_remoteConnector.RetrieveAgent(destination, id, out agent);
return false;
-
}
public bool QueryAccess(GridRegion destination, UUID id, Vector3 position, out string version, out string reason)
{
reason = "Communications failure";
version = "Unknown";
+
if (destination == null)
return false;
@@ -245,7 +245,6 @@ public bool QueryAccess(GridRegion destination, UUID id, Vector3 position, out s
return m_remoteConnector.QueryAccess(destination, id, position, out version, out reason);
return false;
-
}
public bool ReleaseAgent(UUID origin, UUID id, string uri)
@@ -328,25 +328,32 @@ public bool QueryAccess(GridRegion destination, UUID id, Vector3 position, out s
if (data["version"] != null && data["version"].AsString() != string.Empty)
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 (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 (message == "Service request failed: [MethodNotAllowed] MethodNotAllowed") // Old style region
+ if (result.ContainsKey("Message"))
{
- 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;
+ string message = result["Message"].AsString();
+ 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;
@@ -356,7 +363,7 @@ public bool QueryAccess(GridRegion destination, UUID id, Vector3 position, out s
}
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;

0 comments on commit 96cde40

Please sign in to comment.