aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-05-25 02:37:22 +0100
committerJustin Clark-Casey (justincc)2012-05-25 02:37:22 +0100
commit96cde407ab0d40856fb10b3b9f304433ffe734a2 (patch)
tree776c55bf6ad21506626fb2c636abfb2cf2146ed0 /OpenSim/Services
parentStop it being possible for an agent to teleport back to its source region bef... (diff)
downloadopensim-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')
-rw-r--r--OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs33
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;