diff options
author | Tom Grimshaw | 2010-05-18 03:24:43 -0700 |
---|---|---|
committer | Tom Grimshaw | 2010-05-18 03:24:43 -0700 |
commit | 1c040d8c1ed5ee1ba1e80aa1d248a9b06d1790a5 (patch) | |
tree | c85d36357a2ae9f7a81d8e81b23039b5bdf06d08 /OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs | |
parent | Missed a nullref in the previous commit (diff) | |
download | opensim-SC-1c040d8c1ed5ee1ba1e80aa1d248a9b06d1790a5.zip opensim-SC-1c040d8c1ed5ee1ba1e80aa1d248a9b06d1790a5.tar.gz opensim-SC-1c040d8c1ed5ee1ba1e80aa1d248a9b06d1790a5.tar.bz2 opensim-SC-1c040d8c1ed5ee1ba1e80aa1d248a9b06d1790a5.tar.xz |
Fix to the scenario where we send an agent to a neighbouring sim (via teleport), then tell our neighbours to close the agents.. thereby disconnecting the user. Added a new CloseChildAgent method in lieu of CloseAgent. This has been a long standing problem - with any luck this will cure it.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs index ff0dd7e..8e0063b 100644 --- a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs +++ b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs | |||
@@ -442,7 +442,7 @@ namespace OpenSim.Services.Connectors.Simulation | |||
442 | return true; | 442 | return true; |
443 | } | 443 | } |
444 | 444 | ||
445 | public bool CloseAgent(GridRegion destination, UUID id) | 445 | private bool CloseAgent(GridRegion destination, UUID id, bool ChildOnly) |
446 | { | 446 | { |
447 | string uri = string.Empty; | 447 | string uri = string.Empty; |
448 | try | 448 | try |
@@ -459,6 +459,8 @@ namespace OpenSim.Services.Connectors.Simulation | |||
459 | 459 | ||
460 | WebRequest request = WebRequest.Create(uri); | 460 | WebRequest request = WebRequest.Create(uri); |
461 | request.Method = "DELETE"; | 461 | request.Method = "DELETE"; |
462 | if (ChildOnly) | ||
463 | request.Method += "CHILD"; | ||
462 | request.Timeout = 10000; | 464 | request.Timeout = 10000; |
463 | 465 | ||
464 | StreamReader sr = null; | 466 | StreamReader sr = null; |
@@ -491,6 +493,16 @@ namespace OpenSim.Services.Connectors.Simulation | |||
491 | return true; | 493 | return true; |
492 | } | 494 | } |
493 | 495 | ||
496 | public bool CloseChildAgent(GridRegion destination, UUID id) | ||
497 | { | ||
498 | return CloseAgent(destination, id, true); | ||
499 | } | ||
500 | |||
501 | public bool CloseAgent(GridRegion destination, UUID id) | ||
502 | { | ||
503 | return CloseAgent(destination, id, false); | ||
504 | } | ||
505 | |||
494 | #endregion Agents | 506 | #endregion Agents |
495 | 507 | ||
496 | #region Objects | 508 | #region Objects |