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 | |
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 '')
-rw-r--r-- | OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs | 3 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs | 33 |
2 files changed, 21 insertions, 15 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs index 3d28518..f980f68 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs | |||
@@ -226,13 +226,13 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation | |||
226 | return m_remoteConnector.RetrieveAgent(destination, id, out agent); | 226 | return m_remoteConnector.RetrieveAgent(destination, id, out agent); |
227 | 227 | ||
228 | return false; | 228 | return false; |
229 | |||
230 | } | 229 | } |
231 | 230 | ||
232 | public bool QueryAccess(GridRegion destination, UUID id, Vector3 position, out string version, out string reason) | 231 | public bool QueryAccess(GridRegion destination, UUID id, Vector3 position, out string version, out string reason) |
233 | { | 232 | { |
234 | reason = "Communications failure"; | 233 | reason = "Communications failure"; |
235 | version = "Unknown"; | 234 | version = "Unknown"; |
235 | |||
236 | if (destination == null) | 236 | if (destination == null) |
237 | return false; | 237 | return false; |
238 | 238 | ||
@@ -245,7 +245,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation | |||
245 | return m_remoteConnector.QueryAccess(destination, id, position, out version, out reason); | 245 | return m_remoteConnector.QueryAccess(destination, id, position, out version, out reason); |
246 | 246 | ||
247 | return false; | 247 | return false; |
248 | |||
249 | } | 248 | } |
250 | 249 | ||
251 | public bool ReleaseAgent(UUID origin, UUID id, string uri) | 250 | public bool ReleaseAgent(UUID origin, UUID id, string uri) |
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; |