diff options
author | Justin Clark-Casey (justincc) | 2012-05-25 02:37:22 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-05-25 02:37:22 +0100 |
commit | 96cde407ab0d40856fb10b3b9f304433ffe734a2 (patch) | |
tree | 776c55bf6ad21506626fb2c636abfb2cf2146ed0 /OpenSim/Services/Connectors | |
parent | Stop it being possible for an agent to teleport back to its source region bef... (diff) | |
download | opensim-SC-96cde407ab0d40856fb10b3b9f304433ffe734a2.zip opensim-SC-96cde407ab0d40856fb10b3b9f304433ffe734a2.tar.gz opensim-SC-96cde407ab0d40856fb10b3b9f304433ffe734a2.tar.bz2 opensim-SC-96cde407ab0d40856fb10b3b9f304433ffe734a2.tar.xz |
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
Diffstat (limited to 'OpenSim/Services/Connectors')
-rw-r--r-- | OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs index 032beb5..95c4f87 100644 --- a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs +++ b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs | |||
@@ -328,25 +328,32 @@ namespace OpenSim.Services.Connectors.Simulation | |||
328 | if (data["version"] != null && data["version"].AsString() != string.Empty) | 328 | if (data["version"] != null && data["version"].AsString() != string.Empty) |
329 | version = data["version"].AsString(); | 329 | version = data["version"].AsString(); |
330 | 330 | ||
331 | m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: QueryAccess to {0} returned {1} version {2} ({3})", uri, success, version, data["version"].AsString()); | 331 | m_log.DebugFormat( |
332 | "[REMOTE SIMULATION CONNECTOR]: QueryAccess to {0} returned {1}, reason {2}, version {3} ({4})", | ||
333 | uri, success, reason, version, data["version"].AsString()); | ||
332 | } | 334 | } |
333 | 335 | ||
334 | if (!success) | 336 | if (!success) |
335 | { | 337 | { |
336 | if (result.ContainsKey("Message")) | 338 | // If we don't check this then OpenSimulator 0.7.3.1 and some period before will never see the |
339 | // actual failure message | ||
340 | if (!result.ContainsKey("_Result")) | ||
337 | { | 341 | { |
338 | string message = result["Message"].AsString(); | 342 | if (result.ContainsKey("Message")) |
339 | if (message == "Service request failed: [MethodNotAllowed] MethodNotAllowed") // Old style region | ||
340 | { | 343 | { |
341 | 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"); | 344 | string message = result["Message"].AsString(); |
342 | return true; | 345 | if (message == "Service request failed: [MethodNotAllowed] MethodNotAllowed") // Old style region |
346 | { | ||
347 | 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"); | ||
348 | return true; | ||
349 | } | ||
350 | |||
351 | reason = result["Message"]; | ||
352 | } | ||
353 | else | ||
354 | { | ||
355 | reason = "Communications failure"; | ||
343 | } | 356 | } |
344 | |||
345 | reason = result["Message"]; | ||
346 | } | ||
347 | else | ||
348 | { | ||
349 | reason = "Communications failure"; | ||
350 | } | 357 | } |
351 | 358 | ||
352 | return false; | 359 | return false; |
@@ -356,7 +363,7 @@ namespace OpenSim.Services.Connectors.Simulation | |||
356 | } | 363 | } |
357 | catch (Exception e) | 364 | catch (Exception e) |
358 | { | 365 | { |
359 | m_log.WarnFormat("[REMOTE SIMULATION CONNECTOR] QueryAcess failed with exception; {0}",e.ToString()); | 366 | m_log.WarnFormat("[REMOTE SIMULATION CONNECTOR] QueryAcesss failed with exception; {0}",e.ToString()); |
360 | } | 367 | } |
361 | 368 | ||
362 | return false; | 369 | return false; |