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.

This commit is contained in:
Tom Grimshaw
2010-05-18 03:24:43 -07:00
parent ed1cfb5245
commit 1c040d8c1e
8 changed files with 103 additions and 7 deletions

View File

@@ -442,7 +442,7 @@ namespace OpenSim.Services.Connectors.Simulation
return true;
}
public bool CloseAgent(GridRegion destination, UUID id)
private bool CloseAgent(GridRegion destination, UUID id, bool ChildOnly)
{
string uri = string.Empty;
try
@@ -459,6 +459,8 @@ namespace OpenSim.Services.Connectors.Simulation
WebRequest request = WebRequest.Create(uri);
request.Method = "DELETE";
if (ChildOnly)
request.Method += "CHILD";
request.Timeout = 10000;
StreamReader sr = null;
@@ -491,6 +493,16 @@ namespace OpenSim.Services.Connectors.Simulation
return true;
}
public bool CloseChildAgent(GridRegion destination, UUID id)
{
return CloseAgent(destination, id, true);
}
public bool CloseAgent(GridRegion destination, UUID id)
{
return CloseAgent(destination, id, false);
}
#endregion Agents
#region Objects